簡體   English   中英

如何在 discord 機器人消息中提及 2 個用戶

[英]How can I mention 2 users in a discord bot message

我正在使用 discord.js。

我正在嘗試制作一個將 output 變為以下 output 的機器人命令:

Welcome, (mentioned user 1) and (mentioned user 2), enjoy your stay!

當語法是:

(prefix) getaroom for (mentioned user 1) (mentioned user 2)

幫助?!

盡管message.mentions.users.first()對於第一個提到的用戶效果很好,但當需要第二個、第三個甚至第四個時,我們開始遇到各種問題。

我更喜歡解決此問題的方法是通過message.mentions.users運行.forEach() function 。

例子:

var prefix = 'yourPrefixHere'; //Defining your prefix
client.on('message', message => { //Adding your event listener
    if (message.content.toLowerCase().startsWith(prefix + 'getaroom') { //When the command is entered
        if (!message.mentions.first()) return message.channel.send(`You have not defined your users.`); //If the message did not include mentioned users
        var count = 0; //To find out what user we're on.
        let user1; //Defining the users
        let user2; //Defining the users
        message.mentions.forEach(user => {
            count++; //Adding one onto the count variable
            if (count >= 3) return; //If the user mentioned more than two users return
            if (count === 1) user1 = message.guild.members.cache.get(user.id); //Getting the first mentioned user
            else user2 = message.guild.members.cache.get(user.id); //Getting the second mentioned user
        });
        //Rest of your code...
    }
}

您可以使用Collection.prototype.keyArray()message.mentions.users集合轉換為用戶 ID 數組。

const [first, second] = message.mentions.users.keyArray();

if (!first || !second)
 return message.channel.send('You need to mention two users!');

message.channel.send(`Welcome, <@${first}> and <@${second}>, enjoy your stay!`);

如果將它們轉換為前面帶有 @ 符號的字符串,它就可以工作。 當我在 python 中研究機器人時,我很確定這曾經有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM