discord.py-channel.members不给频道中的成员

时间:2020-10-16 16:47:33

标签: python discord.py

对于命令,我试图将每个成员从特定类别内的每个通道移动到另一个通道,并删除该类别中的所有通道。我已经测试了代码,并且所有工作都与channel.members部分分开。每次我运行命令时,print(channel.members)返回一个空列表[]。知道我在做什么错吗?

我知道获取公会ID会阻止此操作,但是我在代码中的任何地方都没有这样做。

#Delete all channels in Ongoing Matches
@client.command()
async def comm(ctx):
    general = discord.utils.get(ctx.guild.channels, name='Vibing')
    category = discord.utils.get(ctx.guild.categories, name='Ongoing Matches')
    channels = category.channels
    for channel in channels:
        print(channel.members)
        for member in channel.members:
            print(member)
            await member.move_to(general)
        await channel.delete()

1 个答案:

答案 0 :(得分:0)

这都是关于 discord.Intents() 前往您的开发者门户 > 您的项目 > Bot 并打开“SERVER MEMBERS INTENT”。然后在您的项目中使用

将意图添加到您的机器人
# create intents before creating bot/client instance
intents = discord.Intents().default()
intents.members = True
# create the instance
client = discord.Client(intents=intents)

如果您使用的是 discord.ext.commands.Bot,过程类似,只需将 intents=intents 添加到构造函数即可。