Как сделать по правильному discord.py?

У меня есть такой код
@bot.command(pass_context=True)
async def exec(ctx, *, text: str):
    exec(text)
    await ctx.send("Code succesfully executed")

Но когда я пишу например *exec await bot.get_channel(айди своего канала).send('123')
То оно пишет ошибки
C:\Users\Admin\Desktop\bot\testbot.py:33: RuntimeWarning: coroutine 'Command.__call__' was never awaited
exec(text)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback
  • Вопрос задан
  • 561 просмотр
Пригласить эксперта
Ответы на вопрос 2
Goverl
@Goverl
Мне 13 лет, и я изучаю программирование.
Я конечно в этом не разбираюсь, но почему вы вызываете функцию exec в самой же функции exec? Насколько я знаю в нынешней версии discord.py можно не писать pass_context=True
Ответ написан
Не используйте названия встроенных функций для собственных функций.

Ваша команда пытается выполнить сама себя.

И я очень надеюсь что Вы выполняете данный код на машине, которую не жалко. Потому что давать доступ к выполнению кода любому пользователю интернета - плохая идея.

@bot.command(name="exec")
@commands.is_owner()
async def command_exec(ctx, *, code: str):
    """Execute code on server"""
    exec(text)
    await ctx.send("Done")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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