From 3b0a0b311d8ea3eeea4cccbcd29de2c079decba7 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sun, 19 May 2024 10:46:43 +0000 Subject: [PATCH] feat: add missing info.configSchemas --- backend/src/plugins/AutoDelete/info.ts | 2 ++ backend/src/plugins/AutoReactions/info.ts | 2 ++ backend/src/plugins/Automod/info.ts | 2 ++ backend/src/plugins/Cases/info.ts | 2 ++ backend/src/plugins/Censor/info.ts | 2 ++ backend/src/plugins/CompanionChannels/info.ts | 2 ++ backend/src/plugins/ContextMenus/info.ts | 2 ++ backend/src/plugins/CustomEvents/info.ts | 2 ++ backend/src/plugins/GuildConfigReloader/info.ts | 2 ++ backend/src/plugins/GuildConfigReloader/types.ts | 4 ++++ backend/src/plugins/GuildInfoSaver/info.ts | 2 ++ backend/src/plugins/GuildInfoSaver/types.ts | 4 ++++ backend/src/plugins/GuildMemberCache/info.ts | 2 ++ backend/src/plugins/GuildMemberCache/types.ts | 4 ++++ backend/src/plugins/InternalPoster/info.ts | 2 ++ backend/src/plugins/InternalPoster/types.ts | 4 ++++ backend/src/plugins/MessageSaver/info.ts | 2 ++ backend/src/plugins/RoleManager/info.ts | 2 ++ backend/src/plugins/UsernameSaver/info.ts | 2 ++ 19 files changed, 46 insertions(+) diff --git a/backend/src/plugins/AutoDelete/info.ts b/backend/src/plugins/AutoDelete/info.ts index 8a4438a3..dc4ac730 100644 --- a/backend/src/plugins/AutoDelete/info.ts +++ b/backend/src/plugins/AutoDelete/info.ts @@ -1,8 +1,10 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zAutoDeleteConfig } from "./types.js"; export const autoDeletePluginInfo: ZeppelinPluginInfo = { showInDocs: true, prettyName: "Auto-delete", description: "Allows Zeppelin to auto-delete messages from a channel after a delay", configurationGuide: "Maximum deletion delay is currently 5 minutes", + configSchema: zAutoDeleteConfig, }; diff --git a/backend/src/plugins/AutoReactions/info.ts b/backend/src/plugins/AutoReactions/info.ts index 05a41b74..a2817502 100644 --- a/backend/src/plugins/AutoReactions/info.ts +++ b/backend/src/plugins/AutoReactions/info.ts @@ -1,5 +1,6 @@ import { ZeppelinPluginInfo } from "../../types.js"; import { trimPluginDescription } from "../../utils.js"; +import { zAutoReactionsConfig } from "./types.js"; export const autoReactionsInfo: ZeppelinPluginInfo = { showInDocs: true, @@ -7,4 +8,5 @@ export const autoReactionsInfo: ZeppelinPluginInfo = { description: trimPluginDescription(` Allows setting up automatic reactions to all new messages on a channel `), + configSchema: zAutoReactionsConfig, }; diff --git a/backend/src/plugins/Automod/info.ts b/backend/src/plugins/Automod/info.ts index 7dd94560..5c3efeaf 100644 --- a/backend/src/plugins/Automod/info.ts +++ b/backend/src/plugins/Automod/info.ts @@ -1,9 +1,11 @@ import { ZeppelinPluginInfo } from "../../types.js"; import { trimPluginDescription } from "../../utils.js"; +import { zAutomodConfig } from "./types.js"; export const automodPluginInfo: ZeppelinPluginInfo = { showInDocs: true, prettyName: "Automod", + configSchema: zAutomodConfig, description: trimPluginDescription(` Allows specifying automated actions in response to triggers. Example use cases include word filtering and spam prevention. `), diff --git a/backend/src/plugins/Cases/info.ts b/backend/src/plugins/Cases/info.ts index fa446a24..4cda78db 100644 --- a/backend/src/plugins/Cases/info.ts +++ b/backend/src/plugins/Cases/info.ts @@ -1,9 +1,11 @@ import { ZeppelinPluginInfo } from "../../types.js"; import { trimPluginDescription } from "../../utils.js"; +import { zCasesConfig } from "./types.js"; export const casesPluginInfo: ZeppelinPluginInfo = { showInDocs: true, prettyName: "Cases", + configSchema: zCasesConfig, description: trimPluginDescription(` This plugin contains basic configuration for cases created by other plugins `), diff --git a/backend/src/plugins/Censor/info.ts b/backend/src/plugins/Censor/info.ts index 888cea1d..3cb0cc5f 100644 --- a/backend/src/plugins/Censor/info.ts +++ b/backend/src/plugins/Censor/info.ts @@ -1,10 +1,12 @@ import { ZeppelinPluginInfo } from "../../types.js"; import { trimPluginDescription } from "../../utils.js"; +import { zCensorConfig } from "./types.js"; export const censorPluginInfo: ZeppelinPluginInfo = { showInDocs: true, legacy: true, prettyName: "Censor", + configSchema: zCensorConfig, description: trimPluginDescription(` Censor words, tokens, links, regex, etc. For more advanced filtering, check out the Automod plugin! diff --git a/backend/src/plugins/CompanionChannels/info.ts b/backend/src/plugins/CompanionChannels/info.ts index c482618b..d4fb7860 100644 --- a/backend/src/plugins/CompanionChannels/info.ts +++ b/backend/src/plugins/CompanionChannels/info.ts @@ -1,9 +1,11 @@ import { ZeppelinPluginInfo } from "../../types.js"; import { trimPluginDescription } from "../../utils.js"; +import { zCompanionChannelsConfig } from "./types.js"; export const companionChannelsPluginInfo: ZeppelinPluginInfo = { showInDocs: true, prettyName: "Companion channels", + configSchema: zCompanionChannelsConfig, description: trimPluginDescription(` Set up 'companion channels' between text and voice channels. Once set up, any time a user joins one of the specified voice channels, diff --git a/backend/src/plugins/ContextMenus/info.ts b/backend/src/plugins/ContextMenus/info.ts index d67eb711..508ca811 100644 --- a/backend/src/plugins/ContextMenus/info.ts +++ b/backend/src/plugins/ContextMenus/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zContextMenusConfig } from "./types.js"; export const contextMenuPluginInfo: ZeppelinPluginInfo = { showInDocs: false, prettyName: "Context menu", + configSchema: zContextMenusConfig, }; diff --git a/backend/src/plugins/CustomEvents/info.ts b/backend/src/plugins/CustomEvents/info.ts index 4825cc36..f9a8cec0 100644 --- a/backend/src/plugins/CustomEvents/info.ts +++ b/backend/src/plugins/CustomEvents/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zCustomEventsConfig } from "./types.js"; export const customEventsPluginInfo: ZeppelinPluginInfo = { prettyName: "Custom events", showInDocs: false, + configSchema: zCustomEventsConfig, }; diff --git a/backend/src/plugins/GuildConfigReloader/info.ts b/backend/src/plugins/GuildConfigReloader/info.ts index 2aa6cacd..00aaa653 100644 --- a/backend/src/plugins/GuildConfigReloader/info.ts +++ b/backend/src/plugins/GuildConfigReloader/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zGuildConfigReloaderPlugin } from "./types.js"; export const guildConfigReloaderPluginInfo: ZeppelinPluginInfo = { prettyName: "Guild config reloader", showInDocs: false, + configSchema: zGuildConfigReloaderPlugin, }; diff --git a/backend/src/plugins/GuildConfigReloader/types.ts b/backend/src/plugins/GuildConfigReloader/types.ts index 58b439c4..15222e7d 100644 --- a/backend/src/plugins/GuildConfigReloader/types.ts +++ b/backend/src/plugins/GuildConfigReloader/types.ts @@ -1,8 +1,12 @@ import { BasePluginType } from "knub"; import { Configs } from "../../data/Configs.js"; import Timeout = NodeJS.Timeout; +import { z } from "zod"; + +export const zGuildConfigReloaderPlugin = z.strictObject({}); export interface GuildConfigReloaderPluginType extends BasePluginType { + config: z.infer; state: { guildConfigs: Configs; unloaded: boolean; diff --git a/backend/src/plugins/GuildInfoSaver/info.ts b/backend/src/plugins/GuildInfoSaver/info.ts index 362873c1..7256e8cc 100644 --- a/backend/src/plugins/GuildInfoSaver/info.ts +++ b/backend/src/plugins/GuildInfoSaver/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zGuildInfoSaverConfig } from "./types.js"; export const guildInfoSaverPluginInfo: ZeppelinPluginInfo = { prettyName: "Guild info saver", showInDocs: false, + configSchema: zGuildInfoSaverConfig, }; diff --git a/backend/src/plugins/GuildInfoSaver/types.ts b/backend/src/plugins/GuildInfoSaver/types.ts index 4ff63cba..7b40ee2a 100644 --- a/backend/src/plugins/GuildInfoSaver/types.ts +++ b/backend/src/plugins/GuildInfoSaver/types.ts @@ -1,6 +1,10 @@ import { BasePluginType } from "knub"; +import { z } from "zod"; + +export const zGuildInfoSaverConfig = z.strictObject({}); export interface GuildInfoSaverPluginType extends BasePluginType { + config: z.infer; state: { updateInterval: NodeJS.Timeout; }; diff --git a/backend/src/plugins/GuildMemberCache/info.ts b/backend/src/plugins/GuildMemberCache/info.ts index 290a6921..8b2da421 100644 --- a/backend/src/plugins/GuildMemberCache/info.ts +++ b/backend/src/plugins/GuildMemberCache/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zGuildMemberCacheConfig } from "./types.js"; export const guildMemberCachePluginInfo: ZeppelinPluginInfo = { prettyName: "Guild member cache", showInDocs: false, + configSchema: zGuildMemberCacheConfig, }; diff --git a/backend/src/plugins/GuildMemberCache/types.ts b/backend/src/plugins/GuildMemberCache/types.ts index e38eb6fb..3e7a7654 100644 --- a/backend/src/plugins/GuildMemberCache/types.ts +++ b/backend/src/plugins/GuildMemberCache/types.ts @@ -1,7 +1,11 @@ import { BasePluginType } from "knub"; import { GuildMemberCache } from "../../data/GuildMemberCache.js"; +import { z } from "zod"; + +export const zGuildMemberCacheConfig = z.strictObject({}); export interface GuildMemberCachePluginType extends BasePluginType { + config: z.infer; state: { memberCache: GuildMemberCache; saveInterval: NodeJS.Timeout; diff --git a/backend/src/plugins/InternalPoster/info.ts b/backend/src/plugins/InternalPoster/info.ts index 37bab5f0..35870b23 100644 --- a/backend/src/plugins/InternalPoster/info.ts +++ b/backend/src/plugins/InternalPoster/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zInternalPosterConfig } from "./types.js"; export const internalPosterPluginInfo: ZeppelinPluginInfo = { prettyName: "Internal poster", showInDocs: false, + configSchema: zInternalPosterConfig, }; diff --git a/backend/src/plugins/InternalPoster/types.ts b/backend/src/plugins/InternalPoster/types.ts index cf747353..baf20d3d 100644 --- a/backend/src/plugins/InternalPoster/types.ts +++ b/backend/src/plugins/InternalPoster/types.ts @@ -2,8 +2,12 @@ import { WebhookClient } from "discord.js"; import { BasePluginType } from "knub"; import { Queue } from "../../Queue.js"; import { Webhooks } from "../../data/Webhooks.js"; +import { z } from "zod"; + +export const zInternalPosterConfig = z.strictObject({}); export interface InternalPosterPluginType extends BasePluginType { + config: z.infer; state: { queue: Queue; webhooks: Webhooks; diff --git a/backend/src/plugins/MessageSaver/info.ts b/backend/src/plugins/MessageSaver/info.ts index 2a9b9bda..7d62a72a 100644 --- a/backend/src/plugins/MessageSaver/info.ts +++ b/backend/src/plugins/MessageSaver/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zMessageSaverConfig } from "./types.js"; export const messageSaverPluginInfo: ZeppelinPluginInfo = { prettyName: "Message saver", showInDocs: false, + configSchema: zMessageSaverConfig, }; diff --git a/backend/src/plugins/RoleManager/info.ts b/backend/src/plugins/RoleManager/info.ts index 7bc9571e..9b532990 100644 --- a/backend/src/plugins/RoleManager/info.ts +++ b/backend/src/plugins/RoleManager/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zRoleManagerConfig } from "./types.js"; export const roleManagerPluginInfo: ZeppelinPluginInfo = { prettyName: "Role manager", showInDocs: false, + configSchema: zRoleManagerConfig, }; diff --git a/backend/src/plugins/UsernameSaver/info.ts b/backend/src/plugins/UsernameSaver/info.ts index 7f9afb5f..68a65f31 100644 --- a/backend/src/plugins/UsernameSaver/info.ts +++ b/backend/src/plugins/UsernameSaver/info.ts @@ -1,6 +1,8 @@ import { ZeppelinPluginInfo } from "../../types.js"; +import { zUsernameSaverConfig } from "./types.js"; export const usernameSaverPluginInfo: ZeppelinPluginInfo = { showInDocs: false, prettyName: "Username saver", + configSchema: zUsernameSaverConfig, };