Попытка получить информацию о пользователе от guild.bans () - PullRequest
0 голосов
/ 09 сентября 2018

Как я могу получить набор / список из "Идентификатор пользователя", "имя" и "дискриминатор" из guild.bans(), который для моего тестового сервера равен [BanEntry(reason=None, user=<User id=240608458888445953 name='xpoes' discriminator='9244' bot=False>), BanEntry(reason=None, user=<User id=298265521185488896 name='Mehvix 2' discriminator='6212' bot=False>)]

Моя цель - чтобы они могли работать с этим кодом

newlist = []
for item in bot:
    if item:
        item = "<:bottag:473742770671058964>"
    else:
        item = ""
    newlist.append(item)
bot = newlist

total = list((zip(userid, name, discriminator, bot)))

# Thanks to happypetsy on StackOverflow for helping me with this!
pretty_list = set()
for details in total:
    data = "• <@{}>{} ({}#{}) ".format(details[0], details[3], details[1], details[2])
    pretty_list.add(data)

await ctx.message.channel.send("**Ban list:** \n{}".format("\n".join(pretty_list)))

1 Ответ

0 голосов
/ 09 сентября 2018

Guild.bans возвращает список BanEntry объектов. BanEntry - это namedtuple (reason, user). Мы просто заинтересованы в поле user.

@bot.command()
async def bans(ctx):
    bans = await ctx.guild.bans()
    pretty_list = ["• {0.id} ({0.name}#{0.discriminator})".format(entry.user) for entry in bans]
    await ctx.send("**Ban list:** \n{}".format("\n".join(pretty_list)))
...