如何使机器人在其状态下处于活动状态的服务器上写入数据? (Discord.py重写)

时间:2020-09-05 14:30:18

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

我想要做的实际上是机器人来写我的消息以及有多少服务器在线。

我的代码:

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台服务器上在线。我该如何解决?

1 个答案:

答案 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