如何在discord.py中将用户列入黑名单和白名单?

时间:2020-11-09 17:07:51

标签: python discord discord.py

嗨,我正在尝试制作白名单和黑名单命令,通过这些命令我可以将用户从我的机器人中黑名单删除,我正在使用postgreSQL,并且我已经成功地制作了该命令来存储用户ID和将用户黑名单的原因,我只想知道如何进行全局检查或类似的检查,以便bot在处理每个命令之前检查blacklisted_users表并返回作者ID是否在列入黑名单的用户中。 抱歉,我无法提供尝试的内容,因为Idk实际上是从哪里开始的。我只想知道这种全局检查的基本语法,我就可以处理剩下的事情。 谢谢。

1 个答案:

答案 0 :(得分:1)

API docsBot.check

一个装饰器,向机器人添加全局检查。

全局检查类似于对每个对象应用的check() 命令基础,但它是在执行任何命令检查之前运行的 已验证并适用于该机器人具有的所有命令。

类似于命令check(),它采用单个类型的参数 上下文,并且只能引发从CommandError继承的异常。

这意味着您首先必须编写一个函数来检查ctx author.id是否在您的blacklist表中,或者编写一个函数来返回列表中黑名单中的每个id list

@Bot.check()
def blacklist_check(ctx):
    blacklisted = [] # Write a function that gets every blacklisted user's ID from your database
    return ctx.author.id not in blacklisted # Checks if the author is in your blacklist