这是我用于显示角色成员的代码。但是,当我为有很多成员的角色调用此命令时,它只返回我的名字。我该如何修复它? V12
let role;
if(message.mentions.roles.first() || message.guild.roles.cache.get(args[0])) {
role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
if(!role)
return message.reply("I can't find this role!");
} else {
let choosenRole = args.slice(0).join(" ");
if(!choosenRole)
return message.reply("Please type a role name to check.");
role = message.guild.roles.cache.find(r => r.name === choosenRole);
if(!role)
return message.reply("I can't find this role!");
}
let inrole = new Discord.MessageEmbed()
.setColor("#09ba87")
.setAuthor(`${role.name}(${role.members.size})`)
.setDescription(`\n・` + role.members.map(m => m.user.username + "#" + m.user.discriminator).join("\n・"))
let m = await message.channel.send(inrole);
嘿,您的问题是因为最近 Discord Api 的网关发生了变化,Guild
缓存为空,您需要启用意图,这里有一个修复程序 -
- 前往Discord 开发者门户 https://discord.com/developers/applications/
- 选择您的应用程序
- 在 - 的里面
bot
如果你向下滚动一点,你会看到一个名为Privileged Gateway Intents
- 启用
SERVER MEMBERS INTENT
然后重新启动机器人,你会发现你的缓存不限于小数!
如果这仍然不起作用,请尝试获取所有公会成员 -message.guild.members.fetch()
了解有关意图的更多信息,请访问Discord.js https://discordjs.guide/popular-topics/intents.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)