如何从每个服务器中的用户删除角色? Discord.py

How to remove roles from a user in every server? Discord.py

我正在制作一个验证机器人,我想执行一个命令,如果有人取消链接他们的 Roblox 帐户,那么它会从他们所在的所有服务器中删除他们的已验证角色。我知道如何在一个单一的这样的服务器:

role1 = discord.utils.get(ctx.guild.roles, name='Verified')
await ctx.author.remove_roles(role1)   

但是我将如何在成员与机器人所在的所有服务器上执行此操作。谢谢!!!

每个公会的角色都是唯一的,您需要遍历每个公会,获取成员和角色,然后将其删除。

for guild in bot.guilds:
    member = guild.get_member(member_id) # Change the ID accordingly
  
    if member is not None:
        role = discord.utils.get(guild.roles, name='Verified')

        await member.remove_roles(role)

此代码遍历机器人所在的每个公会,尝试获取成员,如果它不是非类型(因为成员不必与机器人共享该特定公会),它会获取角色 obj并将其删除。

参考:

你还需要intents.guildsintents.members