You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord bot配置has_permissions时报ban_member无效错误如何修复

问题原因

报错是因为discord.ext.commands的has_permissions装饰器不识别你传入的ban_member权限字段,discord.py中所有权限字段均采用复数形式命名,封禁成员的正确权限字段为ban_members。

修复方案

将代码第42行的装饰器替换为正确的权限字段即可:

@commands.has_permissions(ban_members=True)

修复后的完整命令代码如下:

def write_json(data,filename="blacklistedWords.json"):
    with open(filename,"w") as f:
        json.dump(data,f,indent=4)

@bot.command(aliases=['awb'])
@commands.has_permissions(ban_members=True)
async def addtoblacklist(ctx,*,word):
    with open("blacklistedWords.json") as json_file:
        data = json.load(json_file)
        temp = data["blacklistedWords"]
        temp.append(word)
    write_json(data)
    await ctx.send(f"已成功将 `{word}` 加入黑名单词库")

额外优化建议

  • 你可以增加权限不足的错误捕获逻辑,避免无权限用户调用命令时直接抛出控制台报错:
@addtoblacklist.error
async def addtoblacklist_error(ctx, error):
    if isinstance(error, commands.MissingPermissions):
        await ctx.send("你没有封禁成员权限,无法使用该命令", delete_after=5)
  • 运行前确认你的bot本身已经被服务器授予了封禁成员权限,避免命令执行时出现权限冲突。

内容的提问来源于stack exchange,提问作者Soumyajoy Das

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 05:24:01