服务器信息命令discord.py

2024-05-27 11:18:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在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)

Tags: nameaddfieldifservervaluebotlevel
1条回答
网友
1楼 · 发布于 2024-05-27 11:18:18

您可能需要定义从何处获得高级级别。另外,您将这些提升读作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 BoostAnother Server's Boost

下面是您的命令的外观:

Asker's Command

其他问题如下:

相关问题 更多 >

    热门问题