我试图通过这个代码获得所有在线成员(与bot):
@client.command() async def printstats(ctx):
#define the variables
oc = 0
for user in ctx.guild.members:
if user.status != discord.Status.offline:
oc+=1
然而,所有我得到的结果,是数字1,即使有200个成员在线。我已经搜索了整个互联网,但找不到一个有效的解决方案。你能帮帮我吗?
你有这个问题,因为你的机器人没有使用存在意图,因此机器人只能看到自己在线,而没有其他用户,因此值为1。要解决这个问题,您需要:
- 在开发人员门户 中启用状态意图和服务器成员然后确保在你的代码中像这样启用这个意图:
ents = discord. ents()意图。存在,意图。members = True, Truebot = commands.Bot(command_prefix="?", intents=intents) #无论你的前缀是etc,或者client = discord.Client(intents=intents)