diff --git a/backend/src/pluginUtils.ts b/backend/src/pluginUtils.ts index 488ae2b0..7998787f 100644 --- a/backend/src/pluginUtils.ts +++ b/backend/src/pluginUtils.ts @@ -3,14 +3,12 @@ */ import { Member, TextChannel } from "eris"; -import { configUtils, helpers, PluginData, PluginOptions } from "knub"; -import { - decodeAndValidateStrict, - StrictValidationError, -} from "./validatorUtils"; +import { configUtils, helpers, Knub, PluginData, PluginOptions } from "knub"; +import { decodeAndValidateStrict, StrictValidationError } from "./validatorUtils"; import { deepKeyIntersect, errorMessage, successMessage } from "./utils"; import { ZeppelinPluginClass } from "./plugins/ZeppelinPluginClass"; import { ZeppelinPluginBlueprint } from "./plugins/ZeppelinPluginBlueprint"; +import { IZeppelinGlobalConfig, IZeppelinGuildConfig, TZeppelinKnub } from "./types"; const { getMemberLevel } = helpers; @@ -24,14 +22,17 @@ export function canActOn(pluginData: PluginData, member1: Member, member2: return allowSameLevel ? ourLevel >= memberLevel : ourLevel > memberLevel; } -export function pluginConfigPreprocessor(this: typeof ZeppelinPluginClass | ZeppelinPluginBlueprint, options: PluginOptions) { +export function pluginConfigPreprocessor( + this: typeof ZeppelinPluginClass | ZeppelinPluginBlueprint, + options: PluginOptions, +) { const decodedConfig = this.configSchema ? decodeAndValidateStrict(this.configSchema, options.config) : options.config; if (decodedConfig instanceof StrictValidationError) { throw decodedConfig; } const decodedOverrides = []; - for (const override of (options.overrides || [])) { + for (const override of options.overrides || []) { const overrideConfigMergedWithBaseConfig = configUtils.mergeConfig(options.config, override.config || {}); const decodedOverrideConfig = this.configSchema ? decodeAndValidateStrict(this.configSchema, overrideConfigMergedWithBaseConfig) @@ -60,3 +61,8 @@ export function sendErrorMessage(pluginData: PluginData, channel, body) { const emoji = pluginData.guildConfig.error_emoji || undefined; channel.createMessage(errorMessage(body, emoji)); } + +export function getBaseUrl(pluginData: PluginData) { + const knub = pluginData.getKnubInstance() as TZeppelinKnub; + return knub.getGlobalConfig().url; +}