如何在命令中获得第二次提及的用户ID

时间:2020-08-26 02:28:59

标签: node.js discord.js

因此,我正在尝试创建一个可以使某人执行-kill @firstUser @secondUser的命令。这将使第一个用户的杀戮增加1,并为提到的第二个用户添加角色。我可以通过执行const firstUser = message.mentions.users.first();来访问提到的第一个用户。但我不确定第二个用户该怎么做。

我尝试访问message.mentions.users集合并将其转换为数组(并尝试访问该数组),但是我无法使其正常工作。

const firstUser = message.mentions.users.get(0); 
const secondUser = message.mentions.users.get(1);

如何从多次提及的消息中获取用户类别?

2 个答案:

答案 0 :(得分:1)

I Tested this some time ago.

我发现的是,它返回一个对象,而不是提及,并且由于您无法发送对象,它将作为空消息错误返回。
因此,要发送提及,您可以发送:

// Getting the first and second users
const allMentioned = message.mentions.users.array()
// First User `[0]`
const firstUser = allMentioned[0];
// Second User `[1]`
const secondUser = allMentioned[1];
// And so on and so forth...

// Add `<@` to the begginning of the id and `>` to the end of it to make a mention.
const mentionSecondUser = "<@" + secondUser.id + ">";
// Sending a message using the fetched property
message.channel.send(`Hey ${mentionSecondUser}, or whatever.`);

或者,您可以尝试使用从获取属性时收到的以下格式使用其他提取的属性,例如secondUser

User {
  id: '<secondUser's id>',
  username: '<secondUser's username>',
  bot: <true if secondUser a bot>,
  discriminator: '<secondUser's discriminator>',
  avatar: '<secondUser's avatarId>',
  lastMessageID: <secondUser's lastMessageId>,
  lastMessageChannelID: <secondUser's lastMessageChannelId>,
  flags: UserFlags { bitfield: 0 }
}

一个例子就是上面的图片。

答案 1 :(得分:0)

您可以使用:

message.mentions.users.array()[1]

获取消息中的第二个用户。适当地,将[2]用于第三,将[3]用于第四,依此类推。