繁体   English   中英

我需要帮助在输入命令时让不和谐机器人直接向某人发送消息

[英]I need help making a discord bot direct message someone on typing a command

我目前正在尝试创建一个不和谐的机器人,但被我正在尝试执行的命令难住了。 该命令应该是机器人发送的秘密 DM 消息。 我想知道是否有办法做到这一点? 该命令应该如下所示:

/dm @PLAYER#000 [message_goes_here]

请帮忙!!

让我们一步一步来:

如果提及@Player#0000,您可以使用msg.mentions[0].获取Player#0000 的User对象msg.mentions[0]. 现在向该用户发送消息:

首先,您需要将消息与命令分开:使用msg.toString()您将能够获取消息,其中提及被转换为 <@ID>,这也将考虑用户名中的空格。 现在使用msg.toString().split(' ')拆分消息, shift()两次, join(' ')它,你就会得到消息。

使用User.send()您将能够向该用户发送消息。

下面是最终结果的样子:

bot.on('message', message => {
    if (message.content.startsWith('/dm ') && message.mentions.users.size) {
        var v=message.toString().split(' ').shift().shift().join(' ') // Takes the DM content from the message
        var member=message.mentions.users[0] // The mentioned user
        member.send(v) // send that user a DM
    }
})

请注意,此示例并未真正涵盖错误(以防消息未发送等)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM