【问题标题】:How to make a bot ping a user using discord.js如何使用 discord.js 让机器人 ping 用户
【发布时间】:2020-12-10 23:07:02
【问题描述】:

我对机器人开发有点陌生,但我创建了一个名为 &pat 的命令,我希望它像这样工作: 你 &pat @user 我希望它像这样回应:@user-executing-the-command,你已经成功地拍了@user-提到-in-the-command。到目前为止,我已经提出了这段代码,除了 ping 被拍的人之外,它运行良好。我确实 ping了他们,但它显示了@invalid-user,并且知道如何解决这个问题。我的代码:

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

    if(!pattedone) return message.reply('please mention the one who should be patted');
    
    message.reply(`you have successfully patted ${pattedone}`);
    

你知道如何解决@invalid-user 的问题吗?谢谢。 Here is screenshot of the bot's response

【问题讨论】:

    标签: javascript discord.js


    【解决方案1】:

    根据Discord.js Documentation

    Discord 使用特殊语法在消息中嵌入提及。对于用户提及,它是用户的 ID,以 结尾,如下所示:

    考虑到这一点。简单地改变

    message.reply(`you have successfully patted ${pattedone}`);
    

    到这里

    message.reply(`you have successfully patted <@${pattedone.id}>`);
    

    编辑

    您还需要更新

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

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

    【讨论】:

    • 它有点工作,但前提是被拍的人是执行命令的人。如果我执行它并提及我自己,它会显示正确,但如果我提及其他任何人,它仍然会显示无效用户。我什至复制了你的代码行以确保我没有搞砸,但它就是这样工作的。 :/ 其他一切都保持不变。知道为什么它是半断的吗?更新:仅在移动设备上损坏了一半,PC(至少是网络浏览器版本)显示正确。那可能是手机版和PC版之间的一些区别?但是idk,欢迎任何帮助或回答:)
    • 我只是看了我的一个代码示例。您可能还需要更改另一条线路。让我更新我的答案@mkpanda
    • 我把会员改成在线用户了,但还是只能在PC上使用。我不认为在标签之后有一个表情符号会在移动设备上破坏它,但我不知道。 @克里斯
    • 提及和表情符号之间是否有空格?如果没有,那可能会破坏事情。
    • 行长这样,有个空格:message.reply(you have successfully patted &lt;@${pattedone.id}&gt; &lt;:viprinpat:746051047876984903&gt;);
    【解决方案2】:

    您可以使用以下“方法”提及用户:

    let mention = `<@${userId}>`;
    

    【讨论】:

      【解决方案3】:

      Discord 提及的工作方式如下:&lt;@user-id&gt;。只需将user-id 替换为“受害者”的 ID。您还可以使用&lt;&amp;channel-id&gt; 提及角色或使用&lt;#channel-id&gt; 提及文本频道。

      【讨论】:

        猜你喜欢
        • 2022-10-13
        • 2022-11-11
        • 2019-07-15
        • 1970-01-01
        • 2019-03-21
        • 2018-04-04
        • 1970-01-01
        • 2021-07-27
        • 1970-01-01
        相关资源
        最近更新 更多