我想要做的实际上是机器人来写我的消息以及有多少服务器在线。
我的代码:
status = cycle([f"I am online on {len(bot.guilds)} servers!","Second Status")
@bot.event
async def on_ready():
print("Logged in as: " + bot.user.name + "\n")
await change_status.start()
@tasks.loop(seconds = 30)
async def change_status():
await bot.change_presence(activity = discord.Game(next(status)))
当我尝试这样做时,Bot状态如下:
我在0台服务器上在线!
并且每次循环重复时,机器人都会说:
我在0台服务器上在线!
但是该漫游器当前在3台服务器上在线。我该如何解决?
答案 0 :(得分:0)
在函数中定义状态,因此它会在机器人准备就绪后不断更新并加载。
status = 0
@bot.event
async def on_ready():
print("Logged in as: " + bot.user.name + "\n")
await change_status.start()
@tasks.loop(seconds = 30)
async def change_status():
statuses = [f"I am online on {len(bot.guilds)} servers!", "Second Status"]
if status + 1 > len(statuses):
status = 0
await bot.change_presence(activity = discord.Game(statuses[status]))
status += 1