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

Nextcord开发Discord机器人:斜杠命令无法删除问题求助

解决Nextcord机器人斜杠命令残留/不同步问题

一、手动删除单个残留命令

  1. 开启Discord开发者模式(设置→高级→开发者模式),右键残留命令复制其ID。
  2. 在机器人代码中执行删除操作:
    • 全局命令删除:
      await bot.application_commands.delete("命令ID")
      
    • 服务器专属命令删除:
      guild = bot.get_guild(你的服务器ID)
      await guild.commands.delete("命令ID")
      

二、批量同步(推荐多cogs场景)

直接调用同步命令,Nextcord会自动对比本地已注册命令与Discord端的差异,删除本地不存在的命令:

  • 全局命令同步:
    await bot.sync_application_commands()
    
    注:全局命令同步生效通常需要1-2小时,若之前等待4小时未生效,大概率是未正确触发同步,可重启机器人后重新执行。
  • 服务器专属命令同步(生效更快,几分钟内完成):
    await bot.sync_application_commands(guild_ids=[你的服务器ID])
    

三、多cogs场景的额外注意事项

  • 确认已彻底卸载废弃的cog:调用bot.remove_cog("CogName"),且机器人重启时不再加载该cog。
  • 检查所有cogs中的命令,避免重复注册同一命令(多个cogs中不要用相同的@app_commands.command(name="xxx"))。

四、强制清空后重新同步(极端情况)

如果上述方法无效,可先清空Discord端所有命令,再重新同步本地命令:

# 清空全局命令
global_cmds = await bot.application_commands.fetch_commands()
for cmd in global_cmds:
    await cmd.delete()

# 清空指定服务器命令(按需执行)
guild = bot.get_guild(你的服务器ID)
guild_cmds = await guild.commands.fetch_commands()
for cmd in guild_cmds:
    await cmd.delete()

# 重新同步本地命令
await bot.sync_application_commands()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 22:45:37