vd-plugins/plugins/all-in-one/index.ts
kmmiio99o cd4d414a0c Add KonoChan image commands and improve list handling
- Add konoself and konosend commands for fetching images from KonoChan -
Improve plugin/theme list commands to use showAlert for long lists -
Refactor sendMessage to handle async and prevent double sending - Add
showAlert utility for error toasts
2025-09-27 20:04:06 +02:00

58 lines
1.6 KiB
TypeScript

import { registerCommand } from "@vendetta/commands";
import { storage } from "@vendetta/plugin";
import {
catFactCommand,
dogFactCommand,
uselessFactCommand,
} from "./src/commands/facts";
import { pluginListCommand, themeListCommand } from "./src/commands/lists";
import { petPetCommand } from "./src/commands/petpet";
import { konoSelfCommand, konoSendCommand } from "./src/commands/konochan";
import settings from "./settings";
// Initialize storage with default values
if (!storage.factSettings) {
storage.factSettings = {
sendAsReply: true,
includeCitation: false,
};
}
if (!storage.listSettings) {
storage.listSettings = {
pluginListAlwaysDetailed: false,
themeListAlwaysDetailed: false,
};
}
// Store registered commands for cleanup
let commands: Array<() => void> = [];
export default {
onLoad: () => {
console.log("[All-In-One Commands] Loading plugin...");
// Register all commands
commands = [
registerCommand(catFactCommand),
registerCommand(dogFactCommand),
registerCommand(uselessFactCommand),
registerCommand(petPetCommand),
registerCommand(pluginListCommand),
registerCommand(themeListCommand),
registerCommand(konoSelfCommand),
registerCommand(konoSendCommand),
];
console.log("[All-In-One Commands] Plugin loaded successfully!");
},
onUnload: () => {
console.log("[All-In-One Commands] Unloading plugin...");
commands.forEach((unregister) => unregister());
commands = [];
console.log("[All-In-One Commands] Plugin unloaded successfully!");
},
settings,
};