【问题标题】:Discord bot doesnt respond to the command with user inputDiscord bot 不响应用户输入的命令
【发布时间】:2020-12-22 10:16:05
【问题描述】:

我想发出命令,以便显示有关用户向机器人发出的邀请的信息。 但是当我尝试 r!invitecheck 时,机器人没有响应,或者给出错误。 我试过在有人帮助的编码不和谐服务器上询问,但仍然没有用。

这里是代码

const args = msg.content.slice(prefix.length).trim().split(/ +/);
const command = args.shift();

switch (args[0]) {
    case 'invitecheck':
        if (!args.length) {
            return msg.channel.send(`You didn't provide any arguments, ${message.author}!`);
        }
        client.fetchInvite(args[1])
            .then(invite => {
                const test12 = new Discord.MessageEmbed()
                    .setAuthor(invite.guild.name)
                    .addField(`Inviter`, ` ${invite.inviter.username} (<@${invite.inviter.id})>`)
                    .addField(`Total members`, invite.memberCount)
                    .addField(`Owner`, ` ${invite.guild.owner} (<@${invite.guild.ownerID}>)`)
                    .addField(`Region`, ` ${invite.guild.region}`)
                    .addField(`Verification level`, ` ${invite.guild.verificationLevel}`)
                console.log(invite)
                msg.channel.send(test12)
            })
        break;
}    

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    这是因为您声明命令的方式,Array.shift() 删除了数组的第一个元素,如果您改为检查命令,它应该可以工作:

    const args = msg.content.slice(prefix.length).trim().split(/ +/);
    const command = args.shift();
    
    switch (command) {
        case 'invitecheck':
            if (!args.length) 
                return msg.channel.send(`You didn't provide any arguments, ${message.author}!`);
            client.fetchInvite(args[0])
                .then(invite => {
                    const test12 = new Discord.MessageEmbed()
                        .setAuthor(invite.guild.name)
                        .addField(`Inviter`, ` ${invite.inviter.username} (<@${invite.inviter.id})>`)
                        .addField(`Total members`, invite.memberCount)
                        .addField(`Owner`, ` ${invite.guild.owner} (<@${invite.guild.ownerID}>)`)
                        .addField(`Region`, ` ${invite.guild.region}`)
                        .addField(`Verification level`, ` ${invite.guild.verificationLevel}`)
                    console.log(invite)
                    msg.channel.send(test12)
                })
            break;
    } 
    

    【讨论】:

      猜你喜欢
      • 2020-12-15
      • 2021-08-28
      • 2021-02-17
      • 2023-03-09
      • 2021-04-17
      • 2022-10-23
      • 2021-10-23
      相关资源
      最近更新 更多