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

Discord验证按钮重启后失效问题求助及代码排查

Discord工单脚本重启后Verify按钮失效问题修复

问题现象

  • 首次启动机器人时,通用帮助工单(Ticket按钮)和验证工单(Verify按钮)功能均正常
  • 机器人重启后,仅Ticket按钮能正常触发工单创建,Verify按钮点击无响应,必须删除旧的Verify消息并重新发送才能恢复功能

问题原因

机器人启动时的setup_hook方法中,仅注册了ticket_launcher和main两个View,遗漏了verify_launcher的注册。Discord的持久化View(设置了timeout=None)需要在机器人启动时通过add_view注册,否则重启后无法识别对应按钮的交互事件。

修复方案

修改aclient类的setup_hook方法,添加verify_launcher的注册:

class aclient(discord.Client):
    def __init__(self):
        intents = discord.Intents.default()
        intents.message_content = True
        super().__init__(intents = intents)
        self.synced = False # 避免重复同步命令
        self.ticket_mod = role_id

    async def setup_hook(self):
        self.add_view(ticket_launcher())
        self.add_view(verify_launcher())  # 新增这行,注册Verify按钮的View
        self.add_view(main())

额外注意事项

  • 所有使用了timeout=None的持久化View(比如confirm、call),如果对应的按钮会在旧消息中存在,也需要在setup_hook中注册,避免后续出现类似失效问题
  • 确保所有按钮的custom_id唯一,避免不同View的按钮ID冲突导致交互处理异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:37:09