微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在创建一个“杀死”人的命令。我希望机器人返回消息“哈!你以为!@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.`);
      }
    },};

解决方法

您可以使用 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,bot) 
// ...

enter image description here enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。