我需要帮助制作一个不和谐的机器人直接向某人发送命令

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

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

/dm @PLAYER#000 [message_goes_here]

请帮忙!!

让我们一步一步来:

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

首先,您需要将消息与命令分开: 使用 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
    }
})

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