给用户私信

Private messaging a user

我目前正在使用 discord.js 库和 node.js 制作一个具有一项功能的 discord 机器人 - 私信人员。

我希望这样当用户在频道中说“/talkto @bob#2301”之类的话时,机器人会向@bob#2301 发送一条消息。

所以我想知道的是...如何让机器人向特定用户发送消息(我目前只知道如何向“/talkto”的作者发送消息),以及如何实现这样机器人就可以找到它需要在命令中发送消息的用户。 (这样 /talkto @ryan 消息 ryan,和 /talkto @daniel 消息 daniel 等)

我当前的(错误代码)是这样的:

client.on('message', (message) => {
    if(message.content == '/talkto') {
        if(messagementions.users) { //It needs to find a user mention in the message
            message.author.send('Hello!'); //It needs to send this message to the mentioned user
    }
}

我已经阅读了文档,但我觉得它很难理解,我将不胜感激!

send 方法可以在 User 对象中找到。因此为什么可以使用 message.author.send... message.author 指的是用户对象发送消息的人。您需要做的只是发送给指定的用户。此外,使用 if(message.content == "/talkto") 意味着如果整个消息是 /talkto,它只会转到 运行。意思是,你不能/talkto @me。使用 message.content.startsWith().

client.on('message', (message) => {
    if(message.content.startsWith("/talkto")) {
        let messageToSend = message.content.split(" ").slice(2).join(" ");
        let userToSend = message.mentions.users.first();

        //sending the message
        userToSend.send(messagToSend);
    }
}

使用示例:

/talkto @wright 你好,这是私信!