[英]get list of all members with specific role discord bot
我希望机器人向所有成员发送名为 weed 的角色,但它只发送机器人名称
我的代码:
@commands.command(pass_context=True)
@commands.has_permissions(manage_messages=True)
async def mom(self,ctx, *args):
server = ctx.message.guild
role_name = (' '.join(args))
role_id = server.roles[0]
for role in server.roles:
if role_name == role.name:
role_id = role
break
else:
await ctx.send("Role doesn't exist")
return
for member in server.members:
if role_id in member.roles:
await ctx.send(f"{member.display_name} - {member.id}")
您可以简单地使用role.members
@commands.command() # ↓ This will make sure that the argument passed is a discord.Role object
async def mom(self, ctx, role: discord.Role):
members = role.members
for member in members:
await ctx.send(f'{member.display_name} - {member.id}')
参考:
我相信有一个叫做role.members
东西,它返回所有具有“角色”角色的成员。 以下是代码示例:
@commands.command(pass_context=True)
@commands.has_permissions(manage_messages=True)
async def mom(self,ctx, *args):
server = ctx.message.guild
role_name = (' '.join(args))
role_id = server.roles[0]
for role in server.roles:
if role_name == role.name:
role_id = role
break
else:
await ctx.send("Role doesn't exist")
return
for member in role.members:
await ctx.send(f"{member.display_name} - {member.id}")
尝试用此命令替换您的命令。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.