首页 > 解决方案 > discord.py on_member_update 删除成员拥有的所有角色

问题描述

我想删除成员拥有的所有角色if game_after

我该怎么办for role in member.roles: await member.remove_roles(role)

我明白404 Not Found (error code: 10011): Unknown Rolefor role in member.roles: await member.remove_roles(role)

@commands.Cog.listener()
async def on_member_update(self, before, after):
    game_after = [i for i in after.activities if str(i.type) == "ActivityType.playing"]
    
        if game_after:
            game_name = game_after[0].name.strip()
            role = discord.utils.get(after.guild.roles, name=game_name)
            await after.add_roles(role)

标签: pythonpython-3.xdiscorddiscord.py

解决方案


问题是您试图删除所有人角色,所以如果这是您现在想要的,但您可以配置它:

@commands.Cog.listener()
async def on_member_update(self, before, after):
    game_after = [i for i in after.activities if str(i.type) == "ActivityType.playing"]
    
        if game_after:
            game_name = game_after[0].name.strip()
            role = discord.utils.get(after.guild.roles, name=game_name)
            roles = after.roles[1:]
            await after.remove_role(*roles)

推荐阅读