discord.py 让机器人踢出指定角色的用户

时间:2021-02-04 14:03:38

标签: python discord discord.py

我试图让我的机器人通过命令踢出具有指定角色的所有用户。我没有收到任何错误,所以我有点不知道我应该做什么。这是我的代码:

class InactiveCog(commands.Cog):
    def init(self, bot):
        self.bot = bot

    @commands.Cog.listener()
    async def on_ready(self):
        print("KickCog loaded")

    @commands.Cog.listener()
    @has_permissions(administrator=True)
    async def on_message(self, message):
        if message.content.casefold().startswith("kick alle inaktiven rachel"):
            await message.channel.send('Ab geht die Fahrt. See ya Nerds!')
            for member in message.guild.members:
                role_id = 723107103274958908
                if role_id in member.roles:
                    await self.bot.guild.kick(member)

在此先感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

Member.roles 是一个 discord.Role 实例的列表,而不是一个整数列表,所以这个

if role_id in member.roles:

语句无效,您可以使用 discord.Role

获取 Guild.get_role 实例
role = message.guild.get_role(role_id)
if role in member.roles:
    await member.kick()

参考: