python - Discord.py 成员的 ID
问题描述
我有一个 id 列表,我想获取成员列表。我该怎么做?我确实试过这个
id_list=[]
for i in amounts :
if amounts[i] == 0 :
id_list.append(i)
for id in id_list:
members = [discord.utils.get(bot.get_all_members(), id=id) for id in id_list]
for member in members :
await remove(member , mover ) #probleme here mover is a role
async def remove( member: discord.Member, role: discord.Role):
await member.remove_roles(role)
解决方案
您的问题与您提供的代码不同。要获取特定成员,您可以执行以下操作:
member = discord.utils.get(bot.get_all_members(), id=MEMBER_ID_HERE)
或者,如果您有 ID 列表:
id_list = [112233445566778899, 224466881133557799 # etc...
members = [m for m in bot.get_all_members() if m.id in id_list]
后期编辑:
您可以让公会中没有特定角色的所有成员,并像这样删除角色:
@bot.command()
async def remove(ctx, role: discord.Role):
members = [m for m in ctx.guild.members if role in m.roles]
for m in members:
await m.remove_roles(role)
await ctx.send(f"Successfully removed {role.mention} from all users!")
从命令调用另一个异步函数:
async def remove(role: discord.Role):
id_list = [112233445566778899, 224466881133557799 # etc...
members = [m for m in bot.get_all_members() if m.id in id_list]
for m in members:
await m.remove_roles(role)
@bot.command()
async def cmd(ctx, role: discord.Role = None):
if not role:
role = discord.utils.get(ctx.guild.roles, id=112233445566778899)
await remove(role) # you can also pass ctx if you need it in the function
参考:
推荐阅读
- push-notification - 推送通知操作类别在终止状态 iOS 中不起作用
- javascript - ReactJS - 加载资源失败:服务器响应状态为 404(未找到)
- python - 如何将带有外键的 .csv 表导入 django 数据库
- php - aes-256-cbc encryption decryption with initial vector in nodejs
- android - 使用键盘的自动更正部分获取软键盘高度
- javascript - 即使在从 ts 编译到 js 之后如何保持类型安全
- docker - Kubernetes ImagePullBackOff
- java - 将 JSON 对象数组转换为列表
- python - 在 Flask 中哪个 arg 覆盖 request.values 中的另一个?(获取或发布)
- python - 根据元组的第二项从元组列表中删除列表项