discord.py重新启动该命令

discord.py重新启动该命令,discord,command,discord.py,bots,Discord,Command,Discord.py,Bots,我正在制作一个discord bot,我试图制作一个状态命令,使我的bot的状态开始改变,所以我认为它工作得很好,直到我意识到我需要它重新启动,我不知道如何做,所以这里是我的代码,没有重新启动部分: @client.command() async def status(ctx): await client.change_presence(activity=discord.Streaming(name='firststatus', url='https://www.twitch.tv/my

我正在制作一个discord bot,我试图制作一个状态命令,使我的bot的状态开始改变,所以我认为它工作得很好,直到我意识到我需要它重新启动,我不知道如何做,所以这里是我的代码,没有重新启动部分:

@client.command()
async def status(ctx):
    await client.change_presence(activity=discord.Streaming(name='firststatus', url='https://www.twitch.tv/my-channel-name'))
    
    await asyncio.sleep(5)
    
    await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name='Secondstatus'))

所以我这么做了,但我不知道最后该放什么,所以它会重新启动。我想它会像client.command.restart一样。

您可以使用一个简单的while循环或内置的discord.py扩展
tasks

来自discord.ext导入任务
@tasks.loop(秒=5)
异步def更改_状态():
等待客户端。更改状态(活动=discord.Streaming(name='firststatus',url='1https://www.twitch.tv/my-channel-name'))
等待异步睡眠(5)
等待客户端。更改状态(activity=discord.activity(type=discord.ActivityType.waiting,name='Secondstatus'))
@client.command()
异步def状态(ctx):
更改\u状态。开始()
change_status
功能将每5秒循环一次,并更改状态。您可以使用
change\u status.stop()

参考:

您不想一直将状态更改为相同的状态,对吗?它将首先更改为
流媒体
状态,等待5秒将其更改为
观看
状态,等待5秒将其更改为
流媒体
状态。。。您还可以将延迟更改为12秒,因为更改状态的速率限制为每60秒5个请求,但为什么要等待asyncio.sleep(5)呢?我们已经有了秒数=5好的,没关系,我只是把整件事再看一遍,如果有帮助,记得接受答案