当我试图从我的 discord 服务器获取成员列表时,djsv12 返回一个列表,但它只有 1 个条目。
事实上,应该有 23 个条目,因为这是器上的成员数量。
我不明白什么是错的。你可以在找到我的代码:
const Guild = client.guilds.cache.first(); // My one server
const Members = Guild.members.cache.map(member => member.id);
console.log(Members);
控制台:
[ '578565698461106204' ]
也许是因为只有一个成员被缓存。首先尝试fetch
所有成员。
members.fetch()
从 Discord 中获取成员,即使它们处于脱机状态并返回解析为GuildMember
集合的 promise:
const guild = client.guilds.cache.first(); // My one server
const members = await guild.members.fetch();
const memberIDs = members.map((member) => member.id);
console.log(memberIDs);
PS:当我使用await
关键字时,请确保您位于async
function中。
我相信您遇到的问题与question中提到的问题相同。
由于 Discord 一直在实施特权意图,这意味着您必须授予机器人访问某些数据的权限。默认情况下,此权限处于关闭状态。
要打开它,只需转到Discord Developer Portal。然后选择您的应用程序,然后转到左侧的机器人部分并向下滚动。您应该看到两个选项"Presence Intent"
和"Server Members Intent"
。
Resources:
None of my discord.js guildmember events are emitting,my user caches are basically empty,and my functions are timing out? Discord.js Guide-Gateway Intents本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(22条)