如何在discord.py中获取实际用户并排除机器人?

我正在尝试创建一个命令,为公会中的每个实际用户(不包括机器人)赋予特定的角色。我有代码:


    @commands.command()

    @commands.has_permissions(manage_roles=True)

    async def maddrole(self,ctx,role: discord.Role):

        guild = ctx.guild

        for member in guild.members:

            await member.add_roles(role)

        embed= discord.Embed(description=f'{role} have been given to all users.',color=discord.Color.red())

        await ctx.channel.send(embed=embed)

这会获取公会中的每个人(机器人也是如此)。如何排除机器人并仅获取真实用户?


一只萌萌小番薯
浏览 172回答 2
2回答

达令说

Member对象有一个bot属性,如果用户是机器人,该属性将为 true,因此for member in guild.members:    if member.bot:        continue    await member.add_roles(role)

紫衣仙女

discord.Member对象有一个bot属性,该属性返回True或 ,False具体取决于成员是否是机器人:@commands.command()@commands.has_permissions(manage_roles=True)async def maddrole(self,ctx,role: discord.Role):    guild = ctx.guild    for member in guild.members:        if member.bot:            continue        await member.add_roles(role)    embed= discord.Embed(description=f'{role} have been given to all users.',color=discord.Color.red())    await ctx.channel.send(embed=embed)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python