guild.members 无法正常工作discord.py

Hyp*_*per 3 python discord.py

我正在尝试使用以下命令获取服务器中的成员列表discord.py

我的代码是:

@client.command()
async def members(ctx):
    
    members = ctx.guild.members

    for member in members:

        await ctx.send(member.name)

    await ctx.send("done")
Run Code Online (Sandbox Code Playgroud)

但问题是它只发送机器人的名称。如果您找出代码中的问题,那么您能帮我吗,我想要所有成员的名字。

Bil*_*lly 5

我给你一个简短的回答,以便你能够很好地理解。

在某种程度上,意图与权限相同

那么它们有什么用呢? 如果您想在服务器中发生某些事件,则需要意图。有些可以仅通过脚本启用,而有些意图(例如存在成员) 需要前往 Discord 开发人员门户并手动启用+在脚本中启用

因此,您只需打开脚本并转到顶部,添加以下行:

from discord.ext import commands
intents = discord.Intents(messages=True, members=True)
client = commands.Bot(command_prefix=commands.when_mentioned_or('prefix_here'), intents=intents)
Run Code Online (Sandbox Code Playgroud)

它使用命令,但您也可以将其与discord.client方法一起使用,这可以通过..

import discord

intents = discord.Intents.all()
client = discord.Client(intents=intents)
Run Code Online (Sandbox Code Playgroud)

现在你尝试用这些来运行你的脚本:)