3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-07 19:17:19 +00:00
zeppelin/backend/src/plugins/GuildConfigReloader/GuildConfigReloaderPlugin.ts
2024-04-09 20:57:18 +03:00

27 lines
807 B
TypeScript

import { globalPlugin } from "knub";
import z from "zod";
import { Configs } from "../../data/Configs.js";
import { reloadChangedGuilds } from "./functions/reloadChangedGuilds.js";
import { GuildConfigReloaderPluginType } from "./types.js";
export const GuildConfigReloaderPlugin = globalPlugin<GuildConfigReloaderPluginType>()({
name: "guild_config_reloader",
configParser: (input) => z.strictObject({}).parse(input),
async beforeLoad(pluginData) {
const { state } = pluginData;
state.guildConfigs = new Configs();
state.highestConfigId = await state.guildConfigs.getHighestId();
},
afterLoad(pluginData) {
reloadChangedGuilds(pluginData);
},
beforeUnload(pluginData) {
clearTimeout(pluginData.state.nextCheckTimeout);
pluginData.state.unloaded = true;
},
});