首页 > 解决方案 > 如何检测何时提到机器人

问题描述

在您将其标记为重复之前,我已经尝试过这篇文章:如何检测是否提到了该机器人?

else if (message.mentions.has(client.user)) { 
    message.channel.send("https://images-ext-2.discordapp.net/external/L-agoqC2Qsf2sdz4tdrcD5hUiJe6moglhwHjXPi8McE/https/i.imgflip.com/3ia3r2.png")
    console.log('Bot was mentioned')
 }

当它被提及但没有记录时,我让它记录下来,所以我认为它没有检测到它被提及。是否有不同的方法来检测是否提到了机器人?

标签: discord.js

解决方案


令人讨厌的if (message.mentions.has(...)是,即使提到@everyone 或@here,它也会让机器人做出反应,因此我不建议使用它。

最好的事情,不幸的是,最丑陋的事情是使用 if 语句检查消息是否包含客户提及,这可以使用以下方法完成:

if (message.content.includes(`<@!${client.user.id}>`) console.log('Bot was mentioned!')

推荐阅读