You need to enable JavaScript to run this app. discord.py自定义embed命令运行无响应 问题排查及修复求助
优惠活动
大模型
产品
解决方案
定价
更多

discord.py自定义embed命令运行无响应 问题排查及修复求助

问题排查与修复方案

核心错误点及修复步骤

  • 实例调用错误
    最初代码中使用client.wait_for()调用了全局的client实例,但在cog类的命令方法内,需要使用类绑定的实例对象。如果你初始化cog时传入的bot实例绑定到了self.bot,就改为await self.bot.wait_for();如果绑定的是self.client就用await self.client.wait_for(),否则wait_for方法无法正常接收消息事件,导致输入后无响应。
  • 列表索引越界错误
    Python列表从0开始索引,收集的3个答案对应的索引范围是0-2,最初的代码使用answers[1]、answers[2]、answers[3]会触发IndexError直接终止命令执行,需要改为:
    title = answers[0]
    desc = answers[1]
    colour = answers[2]
    
  • 颜色参数解析错误
    discord.Embed的color参数接收整数类型的十六进制色值,用户输入的通常是十六进制字符串(如ffffff、#ffffff),直接使用int(colour)会按十进制解析报错,需要改为按十六进制解析:
    # 兼容带#和不带#的色值输入
    color = int(colour.lstrip('#'), 16)
    

可选优化

可以增加颜色输入合法性校验,避免用户输入非法字符串时程序报错:

try:
    color = int(colour.lstrip('#'), 16)
except ValueError:
    await ctx.send("输入的颜色格式无效,请输入正确的十六进制色值(如ffffff)")
    return

内容的提问来源于stack exchange,提问作者Miko Tatsu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 21:06:04