如何在discord.py中将此列表作为一条消息发送? [英] How can I send this list as one message in discord.py?

查看:75
本文介绍了如何在discord.py中将此列表作为一条消息发送?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚尝试在不和谐的bot上添加listrole命令,该命令列出了具有特定角色的每个用户.但是,我似乎找不到一种解决方案,我的机器人将整个列表作为一条消息发送,将列表中的每个成员作为一条消息发送出去,这使大量的成员感到烦恼.

I just tried adding a listrole command on my discord bot which lists every user with a certain role. However I can't seem to find a solution where my bot sends the whole list as one single message, it sends out every single member in the list as one message, which gets annoying with a large amount of members.

到目前为止,这是我的代码:

Here's my code so far:

@bot.command()
@commands.has_permissions(administrator=True)
async def listrole(ctx, role:discord.Role):
    members = role.members
    if len(members) > 100:
        await ctx.send("Too many members to list")
    else:
        for member in members:
            memberlist = ''.join(f"{member.display_name}#{member.discriminator}")
            await ctx.send(memberlist)

非常感谢您的帮助,我一般对Python还是陌生的

Help is greatly appreciated, I'm very new to Python in general

推荐答案

在循环之前定义您的成员列表,并将其追加到循环之后.然后,将该列表中的所有项目连接到一个由换行符分隔的长字符串中,并在循环完成后 发送给它:

Define your memberlist before the loop, and append to it. Then, join all the items in that list into one long string separated by newlines, and send it after the loop completes:

memberlist = []
for member in members:
    memberlist.append(f"{member.display_name}#{member.discriminator}")
await ctx.send('\n'.join(memberlist))

这篇关于如何在discord.py中将此列表作为一条消息发送?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆