【问题标题】:Discord bot isn't sending the else part of an if not, else statement?Discord bot 没有发送 if not, else 语句的 else 部分?
【发布时间】:2020-10-10 08:29:13
【问题描述】:

我正在尝试为我的机器人创建一个调平部分,但它没有读取此代码中的 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)

【问题讨论】:

  • 我看不到任何明显的问题,请使用 print() 查看它停止的位置。我相信它会在embed.set_author 结束,但这取决于你想要它做什么。

标签: python-3.x postgresql discord discord.py-rewrite pgadmin-4


【解决方案1】:

错误在线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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-20
    • 2012-07-18
    • 1970-01-01
    • 2019-05-28
    • 2019-04-09
    • 1970-01-01
    • 2013-12-02
    • 1970-01-01
    相关资源
    最近更新 更多