Discord python如何获得所有被禁止的用户?

时间:2020-02-22 22:06:27

标签: discord.py discord.py-rewrite

我正在查看API参考,发现fetch_ban(user)。我如何检查用户是否被禁止访问服务器,我正在阅读它返回了BanEntry并获取布尔值?我也可以使用会员还是需要获得用户? 谢谢您的答复。

2 个答案:

答案 0 :(得分:2)

提示:始终链接您在说什么。

fetch_ban BanEntry(discord.py源代码)

如果您遍历了源代码,您将很快在第一行中找到它: BanEntry = namedtuple('BanEntry', 'reason user')

如果用户被禁止,则返回 ,否则返回NotFound Exception。 因此,要检查用户是否被禁止,只需执行以下操作:

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

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

BanEntry是一个命名的元组(如果您需要对这些here进行复习)。

答案 1 :(得分:0)

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

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)