为我的不和谐机器人创建一个帮助命令

creating a help command for my discord bot

我正在尝试创建一个帮助页面,列出我的 discord 机器人的所有命令...

目前,在不和谐中,一切都以未定义的形式出现,我对原因感到困惑。

这是我的help.js

const fs = require('fs');
const { SlashCommandBuilder } = require('@discordjs/builders');

module.exports = {
    data: new SlashCommandBuilder()
    .setName('help')
    .setDescription('Lists all available commands'),
    async execute(interaction) {
        let str = '';
        const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

        for (const file of commandFiles) {
        const command = require(`./${file}`);
        str += `Name: ${command.name}, Description: ${command.description} \n`;
        }

        return void interaction.reply({
        content: str,
        ephemeral: true,
        });
    },
};

我可以尝试使用 v12 方式,但我正在尝试制作一个与 v13 完全同步的机器人...

假设您所有的命令都像您提供的代码一样结构化,那么您只遗漏了几件事。首先是命令名称和描述将在 command.data 下,而不仅仅是 command。同样使用 let 你可以将它留空(就像我一样)并用任何东西填充它。

const fs = require('fs');
const { SlashCommandBuilder } = require('@discordjs/builders');

module.exports = {
    data: new SlashCommandBuilder()
    .setName('help')
    .setDescription('Lists all available commands'),
    async execute(interaction) {
        let str
        const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));

        for (const file of commandFiles) {
        const command = require(`./${file}`);
        str += `Name: ${command.data.name}, Description: ${command.data.description} \n`;
        }

        return interaction.reply({
        content: str,
        ephemeral: true,
        });
    },
};