Discord python 我怎样才能得到所有被禁止的用户?

Discord python how can I get all the banned users?

我在查看 API 参考资料时发现了 fetch_ban(user)。我如何检查用户是否被服务器禁止,我读到它 returns BanEntry,并得到一个布尔值?我也可以使用会员还是我需要获得用户? 感谢您的任何回复。

提示:总是link你在说什么。

fetch_ban BanEntry(discord.py源代码)

如果你浏览源代码,你会很快在第一行找到这个: BanEntry = namedtuple('BanEntry', 'reason user')

如果用户被禁止,则返回一个 BanEntry 对象,否则returns一个 NotFound 异常。 因此,要检查用户是否被禁止,只需执行以下操作:

async def is_banned(guild, user):
    try:
        entry = await guild.fetch_ban(user)
    except discord.NotFound:
        return False
    return True

这也适用于成员,因为它们基本上是具有一些额外功能的用户对象。

BanEntry 是一个命名元组(如果您需要复习那些 here)。

如果你想命令发送被禁用户列表

async def banlist(self, ctx):
    bans = await ctx.guild.bans()
    loop = [f"{u[1]} ({u[1].id})" for u in bans]
    _list = "\r\n".join([f"[{str(num).zfill(2)}] {data}" for num, data in enumerate(loop, start=1)])
    await ctx.send(f"```ini\n{_list}```")

它给出了这样的列表

[01] 尸仁长仈乃冂仨#0529 (269800030300033098)
[02] Yako#1001 (294113773333557952)
[03] Ping#9216 (46804048093530418)
[04] Vasky#6978 (494069478291921344)