如何解决在一条消息中列出角色成员-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))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。