Help: Add very basic help command

This commit is contained in:
2022-09-29 11:19:16 +02:00
parent cf159c43bc
commit 07b48087b4

62
commands/help.js Normal file
View File

@@ -0,0 +1,62 @@
const { SlashCommandBuilder } = require("discord.js");
const fs = require("fs");
module.exports = {
data: new SlashCommandBuilder()
.setName("help")
.setDescription("List all commands or info about a specific command")
.addStringOption(option =>
option.setName("command")
.setDescription("The command to get info on")
.setRequired(false)
),
permissionLevel: 0,
async execute(interaction) {
await interaction.deferReply();
//reply with a list of all commands
if (!interaction.options.getString("command")) {
let commands = [];
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./${file}`);
if (!command.permissionLevel || command.permissionLevel < 2) {
commands.push(command.data.name);
}
}
interaction.editReply({ content: `Here's a list of all my commands: \n \`${commands.join('`, `')}\`` });
return;
}
//reply with info about a specific command
else {
const commandName = interaction.options.getString("command");
const command = interaction.client.commands.get(commandName);
if (!command) {
await interaction.editReply(`Command /${commandName} does not exist`);
}
else {
let reply = `Name: /${command.data.name}\n` +
`Description: ${command.data.description}\n`+
`Permission Level: ${command.permissionLevel}\n`;
if (command.help) {
reply += `${command.help}\n`;
}
if (command.data.options) {
reply += `Options:\n`;
for (const option of command.data.options) {
reply += `\t${option.name}: ${option.description}\n`;
if (option.type === "SUB_COMMAND") {
reply += `\t\tOptions:\n`;
for (const subOption of option.options) {
reply += `\t\t\t${subOption.name}: ${subOption.description}\n`;
}
}
}
}
await interaction.editReply(reply);
}
}
}
}