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

使用Discord.py编写的Discord服务器解封命令无响应该如何解决?

修复方案

存在的问题

  • 缩进错误:遍历封禁列表的for循环定义在unban异步函数外部,函数执行时不会触发这段逻辑
  • 参数类型异常:被封禁用户不属于当前服务器成员,discord.Member类型注解无法完成转换,直接触发参数校验失败导致无响应
  • 错误调用封禁条目属性:discord.guild.Ban实例的对应用户属性为user,而非你写的banned_users
  • 打印日志笔误:日志内容写的是Successfully banned,和实际执行的解封操作不符

修复后代码

@client.command()
@commands.has_permissions(ban_members = True)
async def unban(ctx, *, member : str): 
    banned_users = await ctx.guild.bans()
    member_name, member_discriminator = member.split('#')

    for ban_entry in banned_users:
        user = ban_entry.user
        
        if (user.name, user.discriminator) == (member_name, member_discriminator):
            await ctx.guild.unban(user)
            embed=discord.Embed(title=" ✅ *Sucessfully unbanned*  @" + user.name + '#' + user.discriminator, color=0x00ff4b)
            await ctx.send(embed=embed)
            print(f'[LOGS] Successfully unbanned @{user.name}#{user.discriminator}')

使用说明

调用命令时按命令前缀unban 用户名#识别码格式输入即可,示例:!unban 测试用户#1234

内容的提问来源于stack exchange,提问作者Mohamed Khettab

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:24:07