3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00
zeppelin/backend/src/plugins/AutoReactions/AutoReactionsPlugin.ts
metal baff82015c
dumb commit for @almeidx to see why this is stupid
Signed-off-by: GitHub <noreply@github.com>
2023-03-12 16:20:14 +00:00

63 lines
1.7 KiB
TypeScript

import { PluginOptions } from "knub";
import { GuildAutoReactions } from "../../data/GuildAutoReactions";
import { GuildSavedMessages } from "../../data/GuildSavedMessages";
import { trimPluginDescription } from "../../utils";
import { LogsPlugin } from "../Logs/LogsPlugin";
import { zeppelinGuildPlugin } from "../ZeppelinPluginBlueprint";
import { DisableAutoReactionsCmd } from "./commands/DisableAutoReactionsCmd";
import { NewAutoReactionsCmd } from "./commands/NewAutoReactionsCmd";
import { AddReactionsEvt } from "./events/AddReactionsEvt";
import { AutoReactionsPluginType, ConfigSchema } from "./types";
const defaultOptions: PluginOptions<AutoReactionsPluginType> = {
config: {
can_manage: false,
},
overrides: [
{
level: ">=100",
config: {
can_manage: true,
},
},
],
};
export const AutoReactionsPlugin = zeppelinGuildPlugin<AutoReactionsPluginType>()({
name: "auto_reactions",
showInDocs: true,
info: {
prettyName: "Auto-reactions",
description: trimPluginDescription(`
Allows setting up automatic reactions to all new messages on a channel
`),
},
// prettier-ignore
dependencies: () => [
LogsPlugin,
],
configSchema: ConfigSchema,
defaultOptions,
// prettier-ignore
messageCommands: [
NewAutoReactionsCmd,
DisableAutoReactionsCmd,
],
// prettier-ignore
events: [
AddReactionsEvt,
],
beforeLoad(pluginData) {
pluginData.state.savedMessages = GuildSavedMessages.getGuildInstance(pluginData.guild.id);
pluginData.state.autoReactions = GuildAutoReactions.getGuildInstance(pluginData.guild.id);
pluginData.state.cache = new Map();
},
// FIXME: Proper inherittance from ZeppelinPluginBlueprint
configParser: (o: any) => o,
});