首页 > 解决方案 > 如何检查一个人是否对自己进行了 ping 操作 discord.js

问题描述

我想检查一个人是否对自己进行了 ping 操作。我有一个名为 &pat 的命令,我想做它,这样你就不能拍自己了。我得到了应该这样拍的人,你必须这样做&pat @{user}

var pattedone = message.mentions.members.first();

然后我想检查作者是否没有ping通自己。我尝试了多种方法,但所有这些都以某种方式导致将消息作者设置为被 ping 的用户。

if (`${pattedone}` === `${message.author}`) {
 message.reply(`you can't pat yourself`);
} else {
 message.reply(`can be patted`);
}

然后机器人总是回应说无法拍拍用户,即使我 ping 了我的 alt。它还回复了,如果是我的 alt 发送了消息,所以如果我的用户名是 User#0000 并且我的 alt 是 User#0001,并且我执行 &pat @User#0001,它会回复:@User#0001(我的 alt ),你不能拍拍自己。我也试过用这个:

if(pattedone === message.author)

其余代码与上面相同,但结果相同。

标签: javascriptnode.jsdiscorddiscord.js

解决方案


这是因为message.author返回一个User对象,但message.mentions.members.first()返回一个GuildMember对象。反而:

var pattedone = message.mentions.users.first(); // get a collection of users instead of members
if (pattedone.id === message.author.id) {
   // code...
};

推荐阅读