【问题标题】:Discord.JS Unknown Command not working correctlyDiscord.JS 未知命令无法正常工作
【发布时间】:2020-11-15 18:08:03
【问题描述】:

我正在制作一个 Discord 机器人,我需要一个未知的命令功能。我正在尝试制作一个,它可以工作,但是当您执行正常命令时它也会发送。下面是我的代码。

client.on('message', message=>{
    const prefix = '&'

    if (!message.content.startsWith(prefix)) return
    let [command, ...args] = message.content.slice(prefix).split(/\s+/g)
    
    switch(command) {
        case "help": 
               if(msg.startsWith(`${prefix}help`)) {
        let embedhelp = new Discord.MessageEmbed()
        .setAuthor('Test', 'https://cdn.discordapp.com/attachments/421820457587703812/736328588500140102/264855.png')
        .setTitle('Stock of ABC!')
        .addFields(
            { name: '&gen A:', value: ("Generates A!"), inline: true},
            { name: '&gen B:', value: ("Generates B!"), inline: true},
            { name: '&gen C:', value: ("Generates C!"), inline: true},
            { name: '&gen D:', value: ("Generates D!"), inline: true},
            { name: '&gen E:', value: ("Generates E!"), inline: true},
            { name: '&gen F:', value: ("Generates F!"), inline: true},
            { name: '&gen G:', value: ("Generates G!"), inline: true},
            { name: '&gen H:', value: ("Generates H!"), inline: true},
            { name: '&stock:', value: ("Shows the stock of every Account!"), inline: true},
            { name: '&help:', value: ("Brings this menu up!"), inline: true},
        )
        .setDescription("Test Bot")
        .setFooter("Test Bot")
        .setTimestamp();
    message.channel.send(embedhelp)
    }
        break;
        case "test": 
              message.channel.send('test')
        break;
        default:
              message.channel.send(`run ${prefix}help to get a list of commands`)
        break;
    }
})

这是问题的图片:https://imgur.com/a/Ya82TeA。

【问题讨论】:

标签: node.js discord.js


【解决方案1】:

很遗憾,我无法重现该问题。我已经重写了您的代码,它似乎按预期工作。如果问题仍然存在,请告诉我。

client.on("message", message => {
    const prefix = "&";

    if (!message.content.startsWith(prefix)) return false;
    let [command, ...args] = message.content.slice(prefix.length).split(/\s+/g);

    switch(command) {
        case "help":
            const Embed = new Discord.MessageEmbed()
            .setAuthor('Test', 'https://cdn.discordapp.com/attachments/421820457587703812/736328588500140102/264855.png')
            .setTitle("Stock of ABC!")
            .addFields(
                {name: "&gen A:", value: ("Generates A!"), inline: true},
                {name: "&gen B:", value: ("Generates B!"), inline: true},
                {name: "&gen C:", value: ("Generates C!"), inline: true},
                {name: "&gen D:", value: ("Generates D!"), inline: true},
                {name: "&gen E:", value: ("Generates E!"), inline: true},
                {name: "&gen F:", value: ("Generates F!"), inline: true},
                {name: "&gen G:", value: ("Generates G!"), inline: true},
                {name: "&gen H:", value: ("Generates H!"), inline: true},
                {name: "&stock", value: ("Shows the stock of every account!"), inline: true},
                {name: "&help", value: "Brings this menu up!", inline: true}
            )
            .setDescription("Test Bot")
            .setFooter("Test Bot")
            .setTimestamp();
            message.channel.send(Embed);
            break;
        
        case "test":
            message.channel.send("test");
            break;
        default:
            message.channel.send(`Run ${prefix}help to get a list of commands.`);
            // Note: You don't need to use break in the default case.
    };
});

【讨论】:

  • 嘿!感谢您的帮助,但它仍然产生同样的问题。当我执行常规命令时,会弹出未知命令,并且也会弹出指定给该特定命令的提示。
  • 您还有其他client.on("message") 活动吗?
  • 每个机器人最多应该有一个。您的错误可能是由其他client.on("message") 事件引起的。
  • 哦,我有很多用于 client.on “消息”事件的命令,因为这些命令就像 !gen blah 一样被驱动。
  • 你有什么解决办法吗?
猜你喜欢
  • 1970-01-01
  • 2021-10-06
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多