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
推荐阅读
- java - 如何修复棋盘方格不移动到中间
- c++ - C ++:从指针函数返回是正确的地址,但不是正确的内容
- java - Docker 多模块 Maven 构建 - 将所有 POM 文件复制到适当的目录
- spring - 用于执行 GET HTTP 请求的 Spring RestTemplate API 查询参数编码
- android - 未找到“extractApksForDebug”
- android - 完全移除 Android 应用中的操作栏导航栏等
- tfs - 我如何分支?
- matlab - MATLAB GUI:移动绘图点时更新文本框
- javafx-8 - 我的圈子不会显示。我在这里想念什么?
- flutter - 当 Text 小部件不为空时,在 ListTile 中显示标题