如何使用 Discord 机器人从列表中删除角色?
How to remove role from list with Discord bot?
我有一个这样的用户名列表:
['Username#0001', 'Username#0002'......]
并且这些用户具有 "x" 角色。
我想使用机器人命令从这些用户中删除 "x" 角色。
有什么想法吗?
我想你搜索过这个
我们先获取公会中的所有用户。我们遍历用户并获得用户拥有的所有角色。当我们拥有用户拥有的所有角色时,我们将遍历角色。然后我们检查角色的名称是否与我们要删除的角色的名称相同。如果它具有相同的名称,我们将其从用户中删除。
role_to_remove = "NAME OF ROLE"
for user in ctx.guild.members:
for role in user.roles:
if role.name == role_to_remove:
await user.remove_roles(role)
此代码将检查服务器中是否有任何用户具有您要删除的角色。
如果您有字符串格式的用户名列表。您首先要将它们转换为成员对象,以便您可以执行前面描述的操作。您可以使用以下方法执行此操作:
userlist = ['Username#0001', 'Username#0002'......]
new_userlist = []
for users in userlist:
new_userlist.append(ctx.guild.get_member_named(users))
userlist = new_userlist
转换用户列表后,将 ctx.guild.members
替换为新的用户列表。
确保阅读文档:
如果您只有角色名称,则需要完成 Guild.roles
for the server in question to get the Role
object, e.g. by using the get
utility function. You'd then need to go similarly through Guild.members
and get the Member
object for each username and discriminator. Alternatively, Guild.get_member_named
为您完成的操作。
然后,对于每个 Member
对象,您可以使用 Member.remove_roles
并将 Role
对象传递给它以从成员中删除角色。
我有一个这样的用户名列表:
['Username#0001', 'Username#0002'......]
并且这些用户具有 "x" 角色。
我想使用机器人命令从这些用户中删除 "x" 角色。
有什么想法吗?
我想你搜索过这个
我们先获取公会中的所有用户。我们遍历用户并获得用户拥有的所有角色。当我们拥有用户拥有的所有角色时,我们将遍历角色。然后我们检查角色的名称是否与我们要删除的角色的名称相同。如果它具有相同的名称,我们将其从用户中删除。
role_to_remove = "NAME OF ROLE"
for user in ctx.guild.members:
for role in user.roles:
if role.name == role_to_remove:
await user.remove_roles(role)
此代码将检查服务器中是否有任何用户具有您要删除的角色。
如果您有字符串格式的用户名列表。您首先要将它们转换为成员对象,以便您可以执行前面描述的操作。您可以使用以下方法执行此操作:
userlist = ['Username#0001', 'Username#0002'......]
new_userlist = []
for users in userlist:
new_userlist.append(ctx.guild.get_member_named(users))
userlist = new_userlist
转换用户列表后,将 ctx.guild.members
替换为新的用户列表。
确保阅读文档:
如果您只有角色名称,则需要完成 Guild.roles
for the server in question to get the Role
object, e.g. by using the get
utility function. You'd then need to go similarly through Guild.members
and get the Member
object for each username and discriminator. Alternatively, Guild.get_member_named
为您完成的操作。
然后,对于每个 Member
对象,您可以使用 Member.remove_roles
并将 Role
对象传递给它以从成员中删除角色。