python-3.x - Discord bot 没有发送 if not, else 语句的 else 部分?
问题描述
我正在尝试为我的机器人创建一个调平部分,但是它没有读取此代码中的 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)
解决方案
错误在线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)
推荐阅读
- c# - Veracode 在 Actionresult 中传递模型的输入验证不足问题
- ios - 如何在uitableviewcell中更新约束动画
- java - 启动层初始化期间发生错误:java.lang.module.ResolutionException
- pandas - 拆分熊猫对象
- git - GIT 忽略之前添加的文件夹
- swift - 有没有办法将泛型协议用作函数中的数据类型?
- php - 将自定义正则表达式规则转换为 Laravel 验证器
- python-3.x - cx_Oracle 中批量处理的性能改进
- c# - 如何在桌面应用程序的 Toast 通知中正确使用自定义音频?
- android - 如何禁用顶部透明层的触摸?