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

我怎样才能让我的 Discord 机器人在被提及时识别它?

如何解决我怎样才能让我的 Discord 机器人在被提及时识别它?

我正在考虑例如我有一个命令可以给每个用户提供面包,但我想这样做如果有人标记机器人然后它会说不同的消息,所以我为此做了一个不同的功能,但是不幸的是,我不知道如何让我的机器人识别出用户已经标记了机器人或用户...谁能帮忙?

client.on("message",function(message) {
  if (message.content === `give bread to <@${client.id}>`) {
    message.channel.send(`I cant give bread to my self...`) 
 }
  return;
});

解决方法

您可以检查 message.mentions.users 并将 has() 与机器人的 ID 一起使用,这将是 client.user.id,因为我们想要机器人的 User 对象。

client.on("message",function(message) {
  if (message.content.startsWith('give bread to')) {
    
    const mentions = message.mentions.users;
    if (mentions.has(client.user.id)) {
       return message.channel.send(`I cant give bread to my self...`)
    } else {
       // Your code
    }
  }
  return;
});
,

首先,client 对象没有 id 属性。我相信您指的是 userclient 对象属性,它返回一个 User 对象,您可以从中获取客户端的 id。

实现您想要的结果的更优化的方法是检查提到的用户(在您的原始函数中)的 ID 是否等于客户端 ID,如果是,则返回不同的输出:

client.on('message',message => {
  if (!message.content.startsWith(`give bread to `) return
  const mentioned = message.mentions.users.first()
  if (!mentioned) return
  if (mentioned.id === client.user.id) return message.channel.send(`I cant give bread to my self...`)
})

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