Discord 机器人不会向我标记的用户发送消息

Posted

技术标签:

【中文标题】Discord 机器人不会向我标记的用户发送消息【英文标题】:Discord bot doesn't message the user that I tagged 【发布时间】:2021-03-23 12:11:56 【问题描述】:

我对 node js 很陌生,我无法让我的 discord 机器人向我标记的用户发送消息。以下是代码应该如何的示例:

用户:howcool @MyFriend 机器人:@我的朋友是 75% 的酷!

下面是我不成功的代码:

    client.on('message', async message => 
    if (message.author.bot) return;

    let mention = message.mentions.users.first()

    if (msg.startsWith(".pfx howcool") && mention) 
        message.channel.send(`$mention is $Math.floor(Math.random() * 100) + 1% cool!`)
        
     else if (message.content === ".pfx howcool")
        message.channel.send(`You are $Math.floor(Math.random() * 100) + 1% cool!`)
);

【问题讨论】:

当您没有提及用户时,您可能会收到错误 - Cannot read property first of undefined 如果不是这样,请告知错误 【参考方案1】:

而不是(`$mention is $Math.floor(Math.random() * 100) + 1% cool 你可以使用:(``<@mention.id> is $Math.floor(Math.random() * 100) + 1% cool

Mention 是一个 Discord.User 对象,包括 id、系统、语言环境、标志、用户名、机器人、鉴别器、avator、lastmessadeID、lastmessagechannelid 的数据

要 ping 某人,您需要使用以下格式的 id: 这也是 discord 以用户身份 ping 某人时所做的。

    if(message.content.startsWith('.pfx howcool') && mention)
        message.channel.send(`<@$mention.id> is $Math.floor(Math.random() * 100) + 1% cool`)
    
    if(message.content.startsWith('.pfx howcool') && !mention)
        message.channel.send(`You are $Math.floor(Math.random() * 100) + 1% cool!`)
    

【讨论】:

【参考方案2】:

你可以这样做。

client.on('message', async message => 
    if (message.author.bot) return; //Ignore the bot messages

    if(message.content.startsWith(".pfx howcool") //Sorting the command name
      if(message.mention.members) //If there are mentions
          message.channel.send(`<@$message.mention.members.first().id> is $Math.floor(Math.random() * 100) + 1% cool`)
      else if(!message.mention.members) //If there no mentions.
        message.channel.send(`You are $Math.floor(Math.random() * 100) + 1% cool!`)
    

请阅读评论,你会更好地理解我写的代码!

【讨论】:

以上是关于Discord 机器人不会向我标记的用户发送消息的主要内容,如果未能解决你的问题,请参考以下文章

如何正确解析我的 Discord 机器人中的标记用户?

Discord Bot 多次运行

Discord.py 机器人:如何让我的不和谐机器人向我发送对用户在 DM 中使用的命令的响应,例如进行调查?

当用户做出反应时,Discord Bot 不发送消息

发送从 webhook 收到的消息的 Discord 机器人

Discord 嵌入消息无法正常工作