【问题标题】:Returning 0 instead of 2?返回 0 而不是 2?
【发布时间】:2021-05-16 09:57:17
【问题描述】:
serverCount = str(len(client.guilds))
status = cycle([f'Verified in {serverCount} servers!', ';help'])

@tasks.loop(seconds=15)
async def change_status():
    await client.change_presence(activity=discord.Activity(type=discord.ActivityType.playing, name=next(status)))

@client.event
async def on_ready():
    print('Galactia is prepared for lift off!')
    change_status.start()

我的变量 serverCount 返回 0 而不是 2(它的意思是返回)

【问题讨论】:

    标签: python python-3.x discord.py


    【解决方案1】:

    我会给你一个更好的代码类型。

    这里是:

    @tasks.loop(seconds=20)
    async def status_refresh():
        await phb.wait_until_ready()
        botactivity = discord.Activity(type=discord.ActivityType.playing, name=f"Verified in {len(client.guilds)} server(s)! | ;help")
        await phb.change_presence(status=discord.Status.dnd, activity=botactivity)
    status_refresh.start()
    

    解释:

    • phb.wait_until_ready() 仅当机器人在线时才开始循环。

    这实际上就是你所需要的,因为你知道所有其他的东西。


    这将按照你想要的方式工作。

    谢谢:D

    【讨论】:

      【解决方案2】:

      要获取您的机器人所在的服务器数量,您需要遍历它所在的所有服务器。所以我会做类似的事情

      servers = for guild in client.guilds
      s = len(servers)
      

      然后您可以将其应用于您的状态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-11
        • 2022-12-16
        • 2019-03-19
        相关资源
        最近更新 更多