(Discord.js) 机器人没有响应

Posted

技术标签:

【中文标题】(Discord.js) 机器人没有响应【英文标题】:(Discord.js) Bot does not respond 【发布时间】:2020-08-09 12:00:47 【问题描述】:

我已经制作了一个机器人,并且我有这个清除功能,它在我添加检查用户角色的if 之前工作。无论我是否有角色,它都不会给我任何错误并且根本不会回复。

代码:

client.on("message", message => 
if (message.content.startsWith(prefix("purge")))  
    if (!message.guild.member.roles.cache.get('703727486009213048') || !message.guild.member.roles.cache.get('702847833241550859') || !message.guild.member.roles.cache.get('703727579328151562')) 
      console.log('ssadd')
      return message.reply('you can\'t use that command!')
    ;
    const args = message.content.slice(prefix.length).split(" ");
    const amount = args[1];
    if (!amount) 
      return message.reply("please specify the number of messages to purge!");
    
    if (isNaN(amount * 1)) 
      return message.reply(
        "you'll need to specify a number, not whatever \"" +
          `$amount` +
          '" is.'
      );
    

    message.delete();
    message.channel.bulkDelete(amount * 1 + 1);
  ;
);
client.login(process.env.token);```

【问题讨论】:

【参考方案1】:

如果它从未回复任何内容,则意味着机器人未登录或从未通过第一个 if 条件。要检查机器人是否登录,只需执行client.on("ready", () => console.log("ready"))

但我认为它更有可能只是没有满足第一个条件,前缀是一个函数吗? prefix("purge") 应该是 prefix + "purge"

您的代码中还有其他一些缺陷。这里只是重做,如果您需要我解释任何事情,请 lmk。

client.on("message", msg => 
    if (msg.author.bot || !msg.content.startsWith(prefix)) return;

    const args = msg.content.slice(1).split(" ");
    //later on you should move to modules but for now this is fine ig
    if (args[0] === "purge") 

        //other flags here https://discord.js.org/#/docs/main/stable/class/Permissions?scrollTo=s-FLAGS
        if (!msg.member.hasPermission("ADMINISTRATOR")) 
            return msg.reply("you can't use that command!")
        

        const amount = args[1] && parseInt(args[1]);

        if (!amount) 
            return msg.reply("please specify an integer of messages to purge!");
        

        msg.delete();
        msg.channel.bulkDelete(amount);
    ;
);

client.login(process.env.token);

【讨论】:

以上是关于(Discord.js) 机器人没有响应的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js - Discord 机器人停止响应命令

Discord.js 命令处理程序机器人不响应

机器人不响应命令(discord.js v12)

具有不同响应的命令上的 discord.js-commando 参数

discord.js 机器人不响应命令[重复]

Discord.js 机器人在提及时做出响应