Нужна помощь с библиотекой Discord.py

Помогите пожалуйста с моим кусочком кода на python: По задумке, код из себя представляет 2 функции-команды: первая просто отправляет в чат то, что отправили после >repeat, а вторая является рекурсионной и получает на вход аргументы, нужные для 1 функции и выполняет её, используя все нужные для нее аргументы.

@bot.command()
async def repeat(ctx, *, arg):
    await ctx.send(arg)

@bot.command()
async def comand(ctx, *, arg):
    await repeat(ctx, arg)

Тем не менее, при вызове второй функции появляется ошибка: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: repeat() takes 1 positional argument but 2 were given

Попробовал записать вторую функцию следующим образом:

@bot.command()
async def comand(ctx, *, arg):
    await ctx.repeat(arg)

Но стала вылазить другая ошибка: discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Context' object has no attribute 'repeat'

Пожалуйста, помогите кто - чем может, заранее всех благодарю :3.


Ответы (1 шт):

Автор решения: RTXAuSIDE

Если вы хотите вызвать из команды совсем другую команду, то это работает не так, как вы хотите. Вообще не так.

Есть специальный метод для вызова других команд. По логике это должно работать следующим образом:

@bot.command()
async def first(ctx: commands.Context, *, arg1):
    await ctx.send(arg1)


@bot.command()
async def second(ctx: commands.Context, *, arg2):
    await ctx.invoke(first, arg1=arg2) # Аргументы после * считаются кваргами
→ Ссылка