Бот Discord не отправляет else часть выражения if not, else? - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь создать секцию выравнивания для своего бота, но он не читает часть else в этом коде, так как не отправляет встроенное сообщение. Нет ошибок / отслеживания. Код:

@commands.command()
    async def level(self, ctx, member: discord.Member = None):
            member = ctx.author if not member else member
            member_id = str(member.id)
            guild_id = str(ctx.guild.id)

            user = await self.bot.pg_con.fetch("SELECT * FROM users WHERE user_id = $1 AND guild_id = $2", member_id, guild_id)

            if not user:
                await ctx.send(f"{member} doesn't have a level.")
            else:
                embed = discord.Embed(colour=member.colour, timestamp=ctx.message_created_at)

                embed.set_author(name=f"Level - {member}", icon_url=self.bot.user.avatar_url)

                embed.add_field(name="Level", value=user[0]['lvl'])
                embed.add_field(name="XP", value=user[0]['xp'])

                await ctx.send(embed=embed)

1 Ответ

0 голосов
/ 20 июня 2020

Ошибка находится в строке embed = discord.Embed(colour=member.colour, timestamp=ctx.message_created_at) правильно embed = discord.Embed(colour=member.colour, timestamp=ctx.message.created_at) см. Message.created_at Ваш код должен выглядеть следующим образом:

@commands.command()
async def level(self, ctx, member: discord.Member = None):
    member = ctx.author if not member else member
    member_id = str(member.id)
    guild_id = str(ctx.guild.id)

    user = await self.bot.pg_con.fetch("SELECT * FROM users WHERE user_id = $1 AND guild_id = $2", member_id, guild_id)

    if not user:
        await ctx.send(f"{member} doesn't have a level.")
    else:
        embed = discord.Embed(colour=member.colour, timestamp=ctx.message.created_at)

        embed.set_author(name=f"Level - {member}", icon_url=self.bot.user.avatar_url)

        embed.add_field(name="Level", value=user[0]['lvl'])
        embed.add_field(name="XP", value=user[0]['xp'])

        await ctx.send(embed=embed)
...