【问题标题】:How to check if a person pinged themselves discord.js如何检查一个人是否对自己进行了 ping 操作 discord.js
【发布时间】:2020-12-18 07:37:52
【问题描述】:

我想检查一个人是否 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)

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

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2021-07-07
        • 2021-10-14
        • 2021-05-02
        • 2020-09-06
        • 2012-11-16
        • 1970-01-01
        • 2014-11-29
        • 1970-01-01
        • 2019-01-24
        相关资源
        最近更新 更多