私人消息传递给用户

我目前正在使用discord.js库和node.js来制作一个具有一个功能的discord bot - 私人消息传递人员 .

我希望这样当用户在 Channels 中说出“/ talkto @ bob#2301”之类的内容时,机器人PMs @ 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
    }
}

我已阅读文档,但我发现很难理解,我将不胜感激任何帮助!

回答(1)

2 years ago

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你好,这是一个dm!