如何检查机器人是否正在被 ping 通?

时间:2021-01-28 17:38:09

标签: javascript discord discord.js bots

我正在创建一个“杀死”人的命令。我希望机器人返回消息“哈!你以为!@Author 死了!”如果他们 ping 机器人。 (我如何让机器人查看它是否被 ping 了?)答案已经更新,现在可以正常工作了。

const Discord = require('discord.js');
const bot = new Discord.Client();

module.exports = {
    name: 'kill',
    description: 'kills',
    execute(message, args, bot) {
      message.delete({ timeout: 30000 });
  
      if (message.content.startsWith('-kill')) {
        const target = message.mentions.users.first();
        const memberTarget = message.guild.members.cache.get(target.id);
  
        if (message.mentions.has(bot.user)) {
          return message.channel.send(`HA! SIKE! <@${message.author.id}> died.`);
        }
        message.channel.send(`<@${memberTarget.user.id}> has died!`);
        console.log(`<@${memberTarget.user.id} died.`);
      }
    },
  };

1 个答案:

答案 0 :(得分:2)

您可以使用 message.mentions.has(bot.user) 来检查是否提到了机器人。此外,请确保您将机器人传递给您的 execute() 方法,而不是实例化一个新方法:

module.exports = {
  name: 'kill',
  description: 'kills',
  execute(message, args, bot) {
    message.delete({ timeout: 30000 });

    if (message.content.startsWith('!kill')) {
      const target = message.mentions.users.first();
      const memberTarget = message.guild.members.cache.get(target.id);

      if (message.mentions.has(bot.user)) {
        return message.channel.send(`HA! SIKE! <@${message.author.id}> died.`);
      }
      message.channel.send(`<@${memberTarget.user.id}> has died!`);
      console.log(`<@${memberTarget.user.id} died.`);
    }
  },
};

并在您的主 JS 文件中传递 bot 对象:

// ...
client.commands.get('kill').execute(message, args, bot) 
// ...

enter image description here enter image description here