【问题标题】:discord.py restart the commanddiscord.py 重启命令
【发布时间】:2021-06-15 19:41:41
【问题描述】:

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

@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 一样。

【问题讨论】:

    标签: discord command discord.py bots


    【解决方案1】:

    您可以使用简单的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()来阻止它

    参考:

    【讨论】:

    • 您不会一直想将存在更改为相同的,对吧?它将首先更改为 Streaming 存在,等待 5 秒将其更改为 Watching 存在,等待 5 秒更改为 Streaming 存在...您也可以将延迟更改为 12 秒,作为速率限制更改状态是每 60 秒 5 个请求
    • 是的,但为什么还要等待 asyncio.sleep(5) 呢?我们已经有了 seconds=5 好的,没关系,我又读了一遍整本书?谢谢!
    • 如果有帮助记得采纳答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2021-07-15
    • 2020-12-31
    • 2019-10-23
    • 2020-05-03
    • 2020-11-06
    • 2021-03-30
    相关资源
    最近更新 更多