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