在一条消息中列出角色成员 - discord.py 重写
Listing role members in one single message - discord.py rewrite
我做了一个列出角色成员的命令(在我们的服务器上称为帮派)。
@bot.command(pass_context=True)
async def gangmembers(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("Not an existing gang, sorry about that.")
return
for member in server.members:
if role_id in member.roles:
await ctx.send(f"{member.display_name} - {member.id}")
它的工作是正确的,但我想让它在同一封邮件中列出角色成员,而不是为每个角色成员列出 1 封邮件。那可能吗?如果是这样,解决方案是什么?谢谢
您可以将它们添加到列表中,请记住消息中的字符数限制为 2000
。超过会报错
@bot.command(pass_context=True)
async def gangmembers(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("Not an existing gang, sorry about that.")
return
data = []
for member in server.members:
if role_id in member.roles:
data.append(f"{member.display_name} - {member.id}")
await ctx.send('\n'.join(data))
我做了一个列出角色成员的命令(在我们的服务器上称为帮派)。
@bot.command(pass_context=True)
async def gangmembers(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("Not an existing gang, sorry about that.")
return
for member in server.members:
if role_id in member.roles:
await ctx.send(f"{member.display_name} - {member.id}")
它的工作是正确的,但我想让它在同一封邮件中列出角色成员,而不是为每个角色成员列出 1 封邮件。那可能吗?如果是这样,解决方案是什么?谢谢
您可以将它们添加到列表中,请记住消息中的字符数限制为 2000
。超过会报错
@bot.command(pass_context=True)
async def gangmembers(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("Not an existing gang, sorry about that.")
return
data = []
for member in server.members:
if role_id in member.roles:
data.append(f"{member.display_name} - {member.id}")
await ctx.send('\n'.join(data))