我对此有点陌生,但我有这个
const Discord = require('discord.js');
const auth = require("./auth.json");
const client = new Discord.Client();
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`);
});
client.on('message', msg => {
console.log(msg.guild.roles.get);
if (msg.content === 'ping') {
msg.reply('Pong!');
}
});
client.login(auth.token);
但是当它console.logs它时,我得到未定义
。如何获取刚刚发消息的用户的 Angular 色。我在线查看了所有示例,感觉它们使用的是旧版 API,其中 .get
方法可以正常工作。
最佳答案
您无需引用在线示例。只需阅读documentation - 开发人员花费了大量精力编写它来有效地回答这些确切的问题。
您正在查找“刚刚发送消息的用户的 Angular 色”。您可以通过 msg.author
或 msg.member
属性获取刚刚发送消息的用户。不知道更好,你可以简单地 check the docs了解这两个属性,看看您能从中得到什么。在本例中,您需要用户的公会特定数据,因此您需要该公会的 GuildMember
对象 - 即 msg.member
。
查看docs for GuildMember
您可以观察您可以访问的所有属性。那里有一个 roles
属性,其类型为 GuildMemberRoleManager
。该类型有一个 .cache
属性,其中包含缓存 Angular 色的集合。
将它们放在一起,您将得到:msg.member.roles.cache
。这是一个集合,因此您可以通过集合支持的任何方式对其进行迭代(for..of
、.forEach()
等)。
关于javascript - 如何获取在 Discord.js 中发消息的用户的角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60745551/