deadzilla 48ed9aa07b fix: !hp теперь показывает правильные описания команд
Проблема: cmd.__doc__ возвращал docstring класса Command из discord.py
(одинаковый для всех команд), а не docstring callback-функции.

Решение:
- Использовать cmd.help вместо cmd.__doc__ для получения описания
- Скрыть !hp из списка через hidden=True
- Пропускать hidden-команды и команды без описания
- Обновить тесты под новый интерфейс
2026-07-09 09:18:48 +05:00

34 lines
1.3 KiB
Python

from discord.ext import commands
class Help(commands.Cog):
"""Команда !hp — список всех команд бота"""
@commands.command(name="hp", hidden=True)
async def hp(self, ctx: commands.Context) -> None:
"""Показать список доступных команд"""
await self._show_help(ctx)
async def _show_help(self, ctx: commands.Context):
"""Вывести список команд в простом текстовом формате."""
# Собираем команды автоматически из bot.commands
# Используем cmd.help — discord.py берёт docstring из callback функции
commands_list = []
for cmd in ctx.bot.commands:
if cmd.hidden:
continue
name = cmd.name
desc = cmd.help or "Без описания"
if desc == "Без описания":
continue
commands_list.append(f"!{name}{desc}")
commands_list.sort()
message = "Discord Bot — Доступные команды\n"
message += "=" * 40 + "\n\n"
message += "\n".join(commands_list)
message += "\n\n" + "=" * 40
await ctx.send(message)