【发布时间】:2021-09-13 05:09:20
【问题描述】:
import os
import discord
import json
from discord.ext import commands, check
def check_if_user_has_premium(ctx):
with open("premium_users.json") as f:
premium_users_list = json.load(f)
if ctx.author.id not in premium_users_list:
return False
return True
@bot.command()
@check(check_if_user_has_premium)
async def apremiumcommand(ctx):
await ctx.send("Hello premium user!")
@apremiumcommand.error
async def apremiumcommand_error(ctx, error):
if isinstance(error, commands.CheckFailure):
await ctx.send("Sorry, but you are not a premium user!")
else:
raise error
bot.run(os.getenv("TOKEN"))
我收到此错误:
Traceback(最近一次调用最后一次): 文件“main.py”,第 269 行,在 @check(check_if_user_has_premium) TypeError: 'module' 对象不可调用
【问题讨论】:
-
您的意思可能是
@commands.check(...),而不是@check(...)? -
@AbhishekPratapSingh 不,
json.load用于文件,json.loads用于字符串。等同于json.dump/json.dumps
标签: python discord discord.py