From c6770df30de4639d613208d6f96bc629db0bf014 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 1 Dec 2023 11:07:24 +0100 Subject: [PATCH] Added staff help command --- src/commands/devel.js | 2 +- src/commands/staff.js | 10 +++++++++ src/commands/staff/help.js | 46 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 src/commands/staff/help.js diff --git a/src/commands/devel.js b/src/commands/devel.js index 91763be..99295d4 100644 --- a/src/commands/devel.js +++ b/src/commands/devel.js @@ -1,7 +1,7 @@ const { SlashCommandBuilder, PermissionFlagsBits } = require("discord.js") module.exports = { - name: "admin", + name: "devel", description: "Admin command.", type: "slash", dev: false, diff --git a/src/commands/staff.js b/src/commands/staff.js index 675ace3..cb4761f 100644 --- a/src/commands/staff.js +++ b/src/commands/staff.js @@ -1,6 +1,7 @@ const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js') const { color, devMessage } = require("../../config/options.json") const { beast } = require("./staff/beast.js") +const { help } = require("./staff/help.js") module.exports = { name: "staff", @@ -12,6 +13,10 @@ module.exports = { data: new SlashCommandBuilder() .setName("staff") .setDescription("Subcommands for staff") + .addSubcommand(subcommand => + subcommand + .setName("help") + .setDescription("Get help with staff commands")) .addSubcommand(subcommand => subcommand .setName("beast") @@ -35,6 +40,11 @@ module.exports = { const subcommand = interaction.options.getSubcommand() const embedColor = Number(color.replace("#", "0x")) + if (subcommand === "help") { + help(interaction) + return + } + if (subcommand === "beast") { beast(interaction) return diff --git a/src/commands/staff/help.js b/src/commands/staff/help.js new file mode 100644 index 0000000..bf64e84 --- /dev/null +++ b/src/commands/staff/help.js @@ -0,0 +1,46 @@ +const { color, devMessage } = require("../../../config/options.json") +const fs = require("fs") +const path = require("path") + +/** @param { import("discord.js").ChatInputCommandInteraction } interaction */ + +async function help(interaction) { + + const commands = [] + const commandFiles = fs.readdirSync(path.join(__dirname, "..")).filter(file => file.endsWith(".js")) + for (const file of commandFiles) { + const command = require(`../../commands/${file}`) + if (!command.public) { + commands.push(command) + } + } + const commandList = commands.map((command) => { + return { + name: "**/" + command.name + "**", + value: "`" + command.description + "`" + } + }) + + const embedColor = Number(color.replace("#", "0x")) + const footerText = interaction.guild ? interaction.guild.name : interaction.user.username + const footerIcon = interaction.guild ? interaction.guild.iconURL({ dynamic: true }) : interaction.user.avatarURL({ dynamic: true }) + + await interaction.editReply({ + embeds: [{ + title: "Commands", + description: "List of commands", + fields: commandList, + color: embedColor, + thumbnail: { + url: interaction?.guild?.iconURL({ dynamic: true }) || null + }, + footer: { + icon_url: footerIcon, + text: footerText + " | " + devMessage + } + }] + }) + +} + +module.exports = { help }