discord.py如何获取所有命令或指定命令的别名列表
Discord.py 获取命令对应别名列表实现
discord.py 框架的命令对象自带aliases属性,存储该命令配置的所有别名,直接基于你现有获取命令的逻辑扩展即可。
获取所有命令对应的别名
你可以直接遍历bot.commands集合,拉取每个命令的别名,按需组装成你需要的结构:
# 生成「命令主名: 别名列表」的映射字典 command_alias_dict = {cmd.name: cmd.aliases for cmd in self.bot.commands} # 如果需要获取全量不重复的别名集合 all_aliases = set() for cmd in self.bot.commands: all_aliases.update(cmd.aliases)
获取指定命令的别名
如果只需要查单个命令的别名,先拿到对应命令对象再读取aliases属性即可:
# 传入你要查询的命令主名/别名 target_command = self.bot.get_command("要查询的命令名") if target_command: # 读取到的就是该命令的别名列表,无别名时返回空列表 target_aliases = target_command.aliases else: # 处理命令不存在的逻辑 target_aliases = []
提示:aliases属性返回值始终为列表类型,命令未配置别名时返回空列表,无需额外做None值判断。
内容的提问来源于stack exchange,提问作者hzswdef
相关产品推荐
相关产品推荐

