From 4ae3ef477a508b5c8d04900176813fa0bf57ef99 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sat, 10 Oct 2020 15:29:23 +0300 Subject: [PATCH] Include empty config in add_server bot control command --- backend/src/plugins/BotControl/BotControlPlugin.ts | 2 ++ backend/src/plugins/BotControl/commands/AllowServerCmd.ts | 7 +++++++ backend/src/plugins/BotControl/types.ts | 2 ++ 3 files changed, 11 insertions(+) diff --git a/backend/src/plugins/BotControl/BotControlPlugin.ts b/backend/src/plugins/BotControl/BotControlPlugin.ts index c76e2ce7..7ea58173 100644 --- a/backend/src/plugins/BotControl/BotControlPlugin.ts +++ b/backend/src/plugins/BotControl/BotControlPlugin.ts @@ -13,6 +13,7 @@ import { AllowServerCmd } from "./commands/AllowServerCmd"; import { DisallowServerCmd } from "./commands/DisallowServerCmd"; import { AddDashboardUserCmd } from "./commands/AddDashboardUserCmd"; import { RemoveDashboardUserCmd } from "./commands/RemoveDashboardUserCmd"; +import { Configs } from "../../data/Configs"; const defaultOptions = { config: { @@ -40,6 +41,7 @@ export const BotControlPlugin = zeppelinGlobalPlugin()("bo onLoad(pluginData) { pluginData.state.archives = new GuildArchives(0); pluginData.state.allowedGuilds = new AllowedGuilds(); + pluginData.state.configs = new Configs(); if (getActiveReload()) { const [guildId, channelId] = getActiveReload(); diff --git a/backend/src/plugins/BotControl/commands/AllowServerCmd.ts b/backend/src/plugins/BotControl/commands/AllowServerCmd.ts index 996da823..5e7f8888 100644 --- a/backend/src/plugins/BotControl/commands/AllowServerCmd.ts +++ b/backend/src/plugins/BotControl/commands/AllowServerCmd.ts @@ -1,6 +1,7 @@ import { botControlCmd } from "../types"; import { isOwnerPreFilter, sendErrorMessage, sendSuccessMessage } from "../../../pluginUtils"; import { commandTypeHelpers as ct } from "../../../commandTypes"; +import { isSnowflake } from "../../../utils"; export const AllowServerCmd = botControlCmd({ trigger: ["allow_server", "allowserver", "add_server", "addserver"], @@ -20,7 +21,13 @@ export const AllowServerCmd = botControlCmd({ return; } + if (!isSnowflake(args.guildId)) { + sendErrorMessage(pluginData, msg.channel, "Invalid server ID!"); + return; + } + await pluginData.state.allowedGuilds.add(args.guildId); + await pluginData.state.configs.saveNewRevision(`guild-${args.guildId}`, "plugins: {}", msg.author.id); sendSuccessMessage(pluginData, msg.channel, "Server is now allowed to use Zeppelin!"); }, }); diff --git a/backend/src/plugins/BotControl/types.ts b/backend/src/plugins/BotControl/types.ts index e7d495f8..8712a65f 100644 --- a/backend/src/plugins/BotControl/types.ts +++ b/backend/src/plugins/BotControl/types.ts @@ -4,6 +4,7 @@ import { BasePluginType, globalCommand, globalEventListener } from "knub"; import { GuildArchives } from "../../data/GuildArchives"; import { AllowedGuilds } from "../../data/AllowedGuilds"; import { ApiPermissionAssignments } from "../../data/ApiPermissionAssignments"; +import { Configs } from "../../data/Configs"; export const ConfigSchema = t.type({ can_use: t.boolean, @@ -17,6 +18,7 @@ export interface BotControlPluginType extends BasePluginType { archives: GuildArchives; allowedGuilds: AllowedGuilds; apiPermissionAssignments: ApiPermissionAssignments; + configs: Configs; }; }