@dasehak

Discord py не работает help, почему?

Код комманды(Я убирал help)
@bot.command(pass_context = True)
async def help(ctx, arg):
    emb = discord.Embed(title = 'Помощь', colour = 0x2e2d2d)

    if arg == 'poll':
        emb.add_field(name = f"{PREFIX}poll", value = f"Использовать:\nder poll (название голосования), (первый параметр), (второй параметр), (и так до 9 раз)\nПример создания голосования:\npoll test, 1, 2")
        await ctx.send(embed = emb)

    else:
        emb.add_field(name = f"{PREFIX}poll", value = f"Создание голосовния.")
        await ctx.send(embed = emb)

Ошибка:
Ignoring exception in command help:
Traceback (most recent call last):
  File "D:\f\lib\site-packages\discord\ext\commands\bot.py", line 903, in invoke
    await ctx.command.invoke(ctx)
  File "D:\f\lib\site-packages\discord\ext\commands\core.py", line 847, in invoke
    await self.prepare(ctx)
  File "D:\f\lib\site-packages\discord\ext\commands\core.py", line 784, in prepare
    await self._parse_arguments(ctx)
  File "D:\f\lib\site-packages\discord\ext\commands\core.py", line 699, in _parse_arguments
    kwargs[name] = await self.transform(ctx, param)
  File "D:\f\lib\site-packages\discord\ext\commands\core.py", line 535, in transform
    raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: arg is a required argument that is missing.
  • Вопрос задан
  • 383 просмотра
Решения вопроса 1
Аргумент arg у вас не имеет стандартного значения. Аргументы без стандартного значения считаются обязательными аргументами.

Добавьте стандартное значение аргумента или сделайте аргумент типа Optional.

@bot.command()  # pass_context НЕ существует в текущей версии discord.py: https://discordpy.readthedocs.io/en/v1.4.1/migrating.html#context-changes
async def help(ctx, arg = None):
    emb = discord.Embed(title = 'Помощь', colour = 0x2e2d2d)

    if arg == 'poll':
        emb.add_field(name = f"{ctx.prefix}poll", value = f"Использовать:\nder poll (название голосования), (первый параметр), (второй параметр), (и так до 9 раз)\nПример создания голосования:\npoll test, 1, 2")
        await ctx.send(embed = emb)

    else:
        emb.add_field(name = f"{ctx.prefix}poll", value = f"Создание голосовния.")
        await ctx.send(embed = emb)


или

from typing import Optional

@commands.command()
async def cmd(ctx, arg: Optional[str]): ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы