javascript - 如何检查一个人是否对自己进行了 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)
其余代码与上面相同,但结果相同。
解决方案
这是因为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...
};