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

discord.py中/resyncmessage斜杠命令无法同步问题求助

解决Discord机器人/resyncmessage命令无法同步显示的问题

1. 排查命令定义的语法问题

先确认/resyncmessage的命令代码没有低级错误:

  • 命令名称严格符合Discord规则:只能用小写字母、数字、连字符,你的resyncmessage是合规的,但再核对@app_commands.command(name="resyncmessage")里的名字有没有拼写错误
  • 装饰器顺序是否正确:@app_commands.checks.is_owner()要放在命令装饰器之后,比如:
@app_commands.command(name="resyncmessage")
@app_commands.checks.is_owner()
async def resyncmessage_cmd(interaction: discord.Interaction):
    await interaction.response.send_message("消息同步完成", ephemeral=True)
  • 参数定义是否合法:避免使用Discord不支持的参数类型,参数名也不能有特殊字符

2. 确认命令已正确加入服务器命令树

检查添加命令的代码,确保两个命令都被添加到了目标服务器的命令树中,没有遗漏或注释掉/resyncmessage的添加逻辑:

guild = discord.Object(id=你的服务器ID)
# 假设bot是你的机器人实例
tree = app_commands.CommandTree(bot)
tree.add_command(resync_cmd, guild=guild)
tree.add_command(resyncmessage_cmd, guild=guild)  # 确认这行存在且无误

3. 核对同步操作的细节

  • 同步时必须指定正确的服务器ID:如果ID填错,命令会同步到错误的服务器,自然在目标服务器看不到
  • 确认机器人在目标服务器有应用程序命令权限:进入服务器设置→整合→机器人,检查机器人的「应用程序命令」权限是否开启

4. 清理Discord客户端缓存

有时候是客户端缓存导致命令不显示,试试这些操作:

  • 退出Discord客户端后重新登录
  • 按Ctrl+R(Windows)或Cmd+R(Mac)刷新Discord界面
  • 切换到网页版Discord查看命令是否存在

5. 验证同步结果的真实性

虽然日志显示同步完成,但可以手动打印已同步的命令列表,确认resyncmessage是否真的被提交到Discord API:

await tree.sync(guild=guild)
# 获取服务器已同步的命令列表
synced_cmds = await tree.fetch_commands(guild=guild)
print(f"已同步的服务器命令:{[cmd.name for cmd in synced_cmds]}")

如果输出里有resyncmessage,那就是客户端缓存问题;如果没有,回到前面的步骤重新排查命令定义和添加逻辑。

6. 检查命令冲突

确认目标服务器里没有其他机器人的同名命令,或者你的代码里有没有重复定义resyncmessage命令,导致后定义的覆盖了前一个。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 21:37:12