From ba6c9218c148b4ef7d2692b19f950f8707d6aac4 Mon Sep 17 00:00:00 2001 From: Matthew Date: Sun, 17 Nov 2024 00:58:09 -0500 Subject: [PATCH] implement canExecDevCommands todo for eval --- discord/commands/Eval.ts | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/discord/commands/Eval.ts b/discord/commands/Eval.ts index 8b1a1ad..0a8453d 100644 --- a/discord/commands/Eval.ts +++ b/discord/commands/Eval.ts @@ -2,10 +2,11 @@ import DiscordInteractionCommand from "../../util/DiscordInteractionCommand"; import { ChatInputCommandInteraction } from "discord.js"; import { inspect } from "util"; import { discordBotToken } from "../../config.json"; +import { PartnerModel } from "../../database/Partner"; export default class Eval extends DiscordInteractionCommand { // This is a list of IDs that are allowed to use this command. - private listOfAllowedIDs: string[]; + private listOfAllowedIDs: string[] = []; constructor() { super("eval", "Executes arbitrary JS code and returns the output."); @@ -25,10 +26,13 @@ export default class Eval extends DiscordInteractionCommand { option.setName("depth").setDescription("The depth of the inspection.").setRequired(false) ); - // TODO: replace with database entry "canExecuteDevCommands" - this.listOfAllowedIDs = [ - "278620217221971968", // Matthew - ]; + // this checks against the database and adds all of the partners that are "allowed to perform dev commands" + // doing the database check in the initialization prevents us from having to check the database every time this command is ran + PartnerModel.find({ canPerformDevCommands: true }).then((partners) => { + for (const partner of partners) { + this.listOfAllowedIDs.push(partner.discordID as string); + } + }); } public async execute(interaction: ChatInputCommandInteraction) {