如何从每个服务器中的用户删除角色? 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.guilds
和intents.members
我正在制作一个验证机器人,我想执行一个命令,如果有人取消链接他们的 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.guilds
和intents.members