【发布时间】:2020-12-19 20:24:43
【问题描述】:
我正在尝试为 discord bot (python) 编写代码,该代码将显示属于特定角色的成员列表。
抱歉,这个问题太长了,我是编码新手,我正在尝试尽可能全面,因为我正在边做边学。
@client.command()
async def team(ctx): # Always same role, no input needed
guild = ctx.message.guild
tk = guild.get_role(role_id)
tkm = tk.members
# print(type(tkm)) shows it as "list"
for row in tkm:
a = row.name
# print(type(a)) # shows "<class 'discord.member.Member'>" x amount of times
await ctx.send(a)
这确实有效。该机器人在单独的消息中发送该角色中每个成员的名称,但它非常慢,甚至在每次列出 4-5 个成员后“停止”。 搜了一圈,只找到了类似的代码。
我不做 ctx.send(tkm) 的原因是因为它包含太多信息,对于每个成员来说。这个可以一口气发到聊天里。
[<Member id=_________ name='___' discriminator='__' bot=False nick='_____' guild=<Guild i
_______ name='________' shard_id=None chunked=True member_count=28>>,....]
它不会让我做 tkm.name(它是一个列表,并且列表没有属性 'name') 我只对名字感兴趣,因此“a = row.name”确实给了我成员的名字。 但也会导致列表分裂并给我这些对象
<class 'discord.member.Member'>
<class 'discord.member.Member'>
...
...
我被困的地方是: 我似乎做不到 tkm = tk.members.name (再次,因为没有属性'name')
我想从这里得到的是将“a”中的成员重新添加到列表中,然后在聊天中发布新列表。但我似乎无法弄清楚如何。 或者,如果有一种方法可以将“tkm”操作为仅以成员名称开头,那也可以。
谢谢你:)
【问题讨论】:
标签: python discord roles member