如何获取Nextcord Python Discord机器人的所有应用命令及子命令?
获取Nextcord中所有斜杠子命令的方法
get_all_commands()是针对前缀命令设计的,所以无法获取斜杠命令。要拿到所有斜杠子命令,得从客户端的application_commands属性入手——这里存储了所有注册的顶级斜杠命令(包括带子命令的主命令)。
实现代码
# 遍历所有顶级斜杠命令 for main_command in client.application_commands: # 判断当前命令是否包含子命令 if hasattr(main_command, "subcommands"): # 遍历所有子命令 for subcmd in main_command.subcommands: # 提取并打印子命令核心信息 print(f"主命令: {main_command.name}") print(f"子命令名称: {subcmd.name}") print(f"子命令描述: {subcmd.description if subcmd.description else '未设置描述'}") # 若需要更多属性(如命令参数、权限要求等),可直接访问subcmd的对应属性 print("-" * 20)
补充说明
- 若你的命令是针对特定服务器注册的,可改用
client.get_guild(服务器ID).commands来获取对应服务器的命令集合,全局命令直接用application_commands即可。 - 子命令对象还包含
options(命令参数)、default_member_permissions(默认权限)等属性,可根据需求自行提取。
内容的提问来源于stack exchange,提问作者Tornike Bekauri
相关产品推荐
相关产品推荐

