服务器信息命令discord.py

时间:2021-05-04 01:08:11

标签: python discord.py

我在 discord.py 中的服务器信息命令有一些问题。对于 premium_tier (Boost) if 调用,我收到 Undefined variable 'premium_tier'。我相信我收到了缩略图错误,但我没有看到。

代码:

@bot.command()
async def server(ctx, *, server: discord.Guild = None):
    embedVar = discord.Embed(color=0xfaa61a)
    date_format = "%a, %d %b %Y %I:%M %p"
    embedVar.add_field(name="Created at:", value=server.created_at.strftime(date_format))
    embedVar.add_field(name="Humans", value=sum(not member.bot for member in ctx.guild.members))
    embedVar.add_field(name="Bots", value=sum(member.bot for member in ctx.guild.members))

    if premium_tier == "0":
        embedVar.add_field(name="Boost Level", value='None')
    if premium_tier == "1":
        embedVar.add_field(name="Boost Level", value='1')
    if premium_tier == "2":
        embedVar.add_field(name="Boost Level", value='2')
    if premium_tier == "3":
        embedVar.add_field(name="Boost Level", value='3')
    
    embedVar.add_field(name="Owner", value=server.owner)
    embedVar.set_thumbnail(url=server.icon_url)
    return await ctx.send(embed=embedVar)

1 个答案:

答案 0 :(得分:0)

您可能需要定义从何处获取高级层。此外,您将提升视为 string 而不是 int

@bot.command()
async def tier(ctx, *, server: discord.Guild=None):
    if server == None: # don't mind this, it's to ensure it defaults to current guild
        server = ctx.guild

    await ctx.send(server.premium_tier) # this returns an int

上面的命令是这样工作的:

Blitz Server Boost Another Server's Boost

这就是您的命令的外观:

Asker's Command

其他类似问题: