diff --git a/backend/src/plugins/Starboard/StarboardPlugin.ts b/backend/src/plugins/Starboard/StarboardPlugin.ts index 5d251077..fa8c841e 100644 --- a/backend/src/plugins/Starboard/StarboardPlugin.ts +++ b/backend/src/plugins/Starboard/StarboardPlugin.ts @@ -1,5 +1,5 @@ import { PluginOptions } from "knub"; -import { ConfigSchema, StarboardPluginType } from "./types"; +import { ConfigSchema, defaultStarboardOpts, StarboardPluginType } from "./types"; import { zeppelinPlugin } from "../ZeppelinPluginBlueprint"; import { trimPluginDescription } from "src/utils"; import { GuildSavedMessages } from "src/data/GuildSavedMessages"; @@ -89,6 +89,16 @@ export const StarboardPlugin = zeppelinPlugin()("starboard" `), }, + configPreprocessor(options) { + if (options.config?.boards) { + for (const [name, opts] of Object.entries(options.config.boards)) { + options.config.boards[name] = Object.assign({}, defaultStarboardOpts, options.config.boards[name]); + } + } + + return options; + }, + // prettier-ignore commands: [ MigratePinsCmd, diff --git a/backend/src/plugins/Starboard/util/getStarboardOptsForStarboardChannel.ts b/backend/src/plugins/Starboard/util/getStarboardOptsForStarboardChannel.ts deleted file mode 100644 index 1c32b42e..00000000 --- a/backend/src/plugins/Starboard/util/getStarboardOptsForStarboardChannel.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { TStarboardOpts, StarboardPluginType, defaultStarboardOpts } from "../types"; -import { PluginData } from "knub"; - -export function getStarboardOptsForStarboardChannel( - pluginData: PluginData, - starboardChannel, -): TStarboardOpts[] { - const config = pluginData.config.getForChannel(starboardChannel); - - const configs = Object.values(config.boards).filter(opts => opts.channel_id === starboardChannel.id); - configs.forEach(cfg => { - if (cfg.enabled == null) cfg.enabled = defaultStarboardOpts.enabled; - if (cfg.star_emoji == null) cfg.star_emoji = defaultStarboardOpts.star_emoji; - if (cfg.stars_required == null) cfg.stars_required = defaultStarboardOpts.stars_required; - if (cfg.copy_full_embed == null) cfg.copy_full_embed = false; - }); - - return configs; -}