Add pluginUtils.getBaseUrl()

This commit is contained in:
Dragory 2020-07-06 01:54:26 +03:00
parent 951c27374f
commit c423b17399
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1

View file

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