ra9_9ar
@ra9_9ar

Почему не работает команда в discord.py?

Я делаю экономик бота. Все команды кроме shop работают, не знаю в чём дело.
Ошибок нет

@bot.command()
async def shop(ctx):
    embed = discord.Embed(title = 'Магазин', description='ㅤ',  color=discord.Color.gold())
    embed.set_thumbnail(url=ctx.guild.icon_url)

    for row in cursor.execute("SELECT role_id, cost FROM shop WHERE id = {}".format(ctx.guild.id)):
        if ctx.guild.get_role(row[0]) != None:
            embed.add_field(
                name = f"Стоимость **{row[1]} :leaves:**",
                value = f"Вы приобрете роль {ctx.guild.get_role(row[0]).mention}",
                inline = False
            )
        else:
            pass
    await ctx.send(embed=embed)
  • Вопрос задан
  • 65 просмотров
Пригласить эксперта
Ответы на вопрос 2
AlexNest
@AlexNest
Работаю с Python/Django
Почему не работает команда в discord.py?

Потому-что что-то идет не так. Что именно - сказать сложно. У вас идет работа с ролями, уникальными для вашего сервера и базой данных, о данных в которой и о том как они туда добавляются нам не известно. Поэтому единственным ответом может быть - "разбирайтесь сами". Проверяйте значения переменных, с помощью print`ов смотрите, до куда доходит выполнение кода.
Ну и пара подсказок, напрямую не относящихся к вопросу:
1.Никогда не используйте форматирование (format(), f-строки, += и так далее) для подстановки значений Для этого есть специальные инструменты (ну либо найдите ссылку для вашей СУБД, если используете не sqlite).
(Вполне может быть что проблема именно в этом)
2.Используйте асинхронные библиотеки (если используете не sqlite - возьмите асинхронную либу для вашей СУБД) для работы с базами данных.
Ответ написан
Комментировать
Lord_of_Rings
@Lord_of_Rings
Python developer
Может быть надо @bot.message_handler(commands=['shop']) вместо @bot.command()
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы