如何检查某人是否对自己的discord.js进行了ping

时间:2020-08-29 16:51:36

标签: javascript node.js discord 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)

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

2 个答案:

答案 0 :(得分:1)

这是因为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...
};

答案 1 :(得分:1)

要比较两个用户,最好的方法是使用他们的ID,而不是比较对象。

testregexp.js