使用 discord.js 获取有关提到的用户/消息作者的信息

Posted

技术标签:

【中文标题】使用 discord.js 获取有关提到的用户/消息作者的信息【英文标题】:Get information about the mentioned user / message author with discord.js 【发布时间】:2020-11-18 01:08:05 【问题描述】:

**• Server Roles:** <@&$user._roles.join('> <@&')>, ^^ 无法读取未定义的属性“加入” 我使用了 message.member._roles.join('> `, 但它总是显示编写命令的用户的角色,而不是您提到的用户。

【问题讨论】:

【参考方案1】:

Message.member 是发送此消息的用户。 如果您想获得提及的公会成员,您需要使用message.mentions.members 它返回提到的用户的集合。 您的代码应如下所示:

// To make sure that only one member is mentioned
if(message.mentions.members.size == 1)
    const roles = `<@&$message.mentions.members.first()._roles.join('> <@&')>`
    message.channel.send(roles);

我建议先发送空消息,然后编辑其内容以添加这些提及,以避免 ping 整个服务器。

【讨论】:

(node:9764) UnhandledPromiseRejectionWarning: TypeError: Cannot read property '_roles' of undefined 1.您是否完全使用了我的代码? 2. 你在加入_roles 数组之前检查过message.mentions.members 的大小吗? 3. 你使用最新版本的 od discord.js 吗? (12.2.0) 您可以使用 npm list 命令进行检查 我的命令应该在更大的命令(用户信息)中显示角色,我只需要设法显示标记的用户角色或消息作者的角色。 即使你提到某人也会出现这个错误?如果可能的话,你能回答我上面评论中的问题吗? 我希望它也适用于 message.author :(

以上是关于使用 discord.js 获取有关提到的用户/消息作者的信息的主要内容,如果未能解决你的问题,请参考以下文章

@user 的 discord.js 排名命令

discord.js - 如何在提到的用户之间随机拆分消息?

检查提到的用户是不是在 discord.js 中具有角色

Discord.js:机器人应该提到执行命令的用户

检查用户是不是可以在提到的频道 discord.js 中发送消息

Discord.js v12 角色添加到提到的用户问题