MinZeroMax
@MinZeroMax

Почему role = None?

У меня id роли верный насчёт guld хз но в консоль выводит просто как название сервера

@commands.Cog.listener()
    async def on_message(self, message):
        
        if message.author == self.bot.user:
            return
        
        user_id = message.author.id
        user_name = message.author.name
        xp_amount = 0
        current_time = time.time()

        if message.attachments:
            xp_amount = 150
        else:
            xp_amount = 100

        if user_id in self.last_xp_update:
            time_since_last_update = current_time - self.last_xp_update[user_id]
            if time_since_last_update < self.xp_delay:
                return

        self.last_xp_update[user_id] = current_time
        database.increase_xp(user_id, user_name, xp_amount)
        
        guild_id = message.guild.id
        guild = self.bot.get_guild(guild_id)
        member = guild.get_member(user_id)
        if member:
            print(guild)
            id_role = db_levels.get_id_role(database.get_lvl(user_id, user_name))
            if id_role:
                print(id_role)
                role = guild.get_role(id_role)
                print(role)
                if role:
                    print(3)
                    await member.add_roles(role)
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
MinZeroMax
@MinZeroMax Автор вопроса
Ошибка была в том что я передавал из БД string а нужен был int иcправил это с помощью int(переменная).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Открываем доки, читаем:
get_role(role_id, /)
Parameters
role_id (int) – The ID to search for.
Returns
The role or None if not found.

ID роли вы достаете из собственной фукнции db_levels.get_id_role, следовательно вооружаетесь дебагером или принтами и изучаете, почему оттуда приходит какая-то роль, которую дискорд не может найти.
Ответ написан
Ваш ответ на вопрос

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

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