【问题标题】: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)
然后您可以将其应用于您的状态。