discord.py 重启命令

discord.py restart the command

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

@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

from discord.ext import tasks

@tasks.loop(seconds=5)
async def change_status():
    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()
async def status(ctx):
    change_status.start()

change_status函数会每5秒循环一次,改变存在。您可以使用 change_status.stop()

停止它

参考: