如何移除Discord Bot中残留的Py-cord slash command?
移除遗留的Py-cord Slash命令
方法一:用discord.py v2.0代码删除
Slash命令是存储在Discord服务器端的,需要通过API同步操作才能移除。根据你的latency命令是全局注册还是仅针对特定服务器注册,选择对应操作:
1. 单独删除latency命令
如果只想移除这一个命令、保留其他现有命令,运行以下代码一次即可:
import discord from discord import app_commands intents = discord.Intents.default() client = discord.Client(intents=intents) tree = app_commands.CommandTree(client) @client.event async def on_ready(): print(f'登录成 {client.user} 了') # 替换成你的服务器ID(如果命令是专属某服务器的) target_guild = discord.Object(id=1234567890) # 移除命令:如果是全局命令,直接去掉guild参数 tree.remove_command("latency", guild=target_guild) # 同步变更到Discord服务器 await tree.sync(guild=target_guild) # 全局命令同步用这句:await tree.sync() client.run('你的Bot令牌')
执行完成后,即可注释掉同步相关代码,无需每次启动Bot都重复执行。
2. 清空所有旧命令(谨慎使用)
如果只剩这个遗留命令,想一次性清空所有旧Slash命令,可以使用以下代码:
# 在on_ready事件中添加这段代码 await tree.clear_commands(guild=target_guild) # 全局命令请去掉guild参数 await tree.sync(guild=target_guild)
注意:此操作会删除该服务器/全局的所有Slash命令,确认没有需要保留的命令后再执行。
方法二:手动通过Discord开发者门户删除
不想写代码的话,直接通过Discord开发者门户操作:
- 打开Discord开发者门户,找到你的Bot应用
- 进入应用后切换到Commands标签页
- 在Slash Commands列表中找到
latency命令,点击右侧的删除按钮 - 全局命令删除后可能需要几小时才会在所有服务器生效,服务器专属命令删除后立即生效
操作完成后,刷新Discord客户端或服务器,latency命令就会从slash command选择列表中消失。
内容的提问来源于stack exchange,提问作者Snabba_Snigeln
相关产品推荐
相关产品推荐

