我制作了一个discordbot,并试图使用guild.members.fetch((获取服务器中每个人的姓名/id;
然而,无论我尝试了什么,它总是会发送错误TypeError:无法读取未定义(读取"members"(的属性
这是我使用的代码。
const Discord = require('discord.js');
const { Client, Intents } = require('discord.js');
const client = new Client({ intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.GUILD_MEMBERS] });
const guild = client.guilds.cache.get("Server_ID");
async function fetchmembs() {
const members = await guild.members.fetch();
return members;
}
members = fetchmembs();
console.log(members);
它总是抛出这个错误:
const members = await guild.members.fetch();
^
TypeError: Cannot read properties of undefined (reading 'members')
我几乎尝试了我在网上找到的所有东西,但都无济于事。我对编码和discord机器人制作相对陌生,所以我不确定。我启用了公会成员意图,将其放入异步函数中,并带有等待和启动。
这是我的第一个问题,如果我遗漏了东西或做错了事情,很抱歉提前谢谢。
将guild
声明放入函数中。当函数被调用时,客户端应该已经准备好了,行会将被缓存
async function fetchmembs() {
const guild = client.guilds.cache.get("Server_ID");
const members = await guild.members.fetch();
return members;
}
你的机器人缓存中没有公会。你需要获取它,而不是从公会缓存中获取:
const guild = await client.guilds.fetch('Guild_ID');
记得把它放在异步模块中,否则await
将不可用