import asyncio import contextlib import discord from redbot.core import commands class StatusRotator(commands.Cog): """Bot status rotation.""" def __init__(self, bot): self.bot = bot self._task = None async def cog_load(self): self._task = asyncio.create_task(self.status_loop()) async def cog_unload(self): if self._task: self._task.cancel() with contextlib.suppress(asyncio.CancelledError): await self._task async def status_loop(self): await self.bot.wait_until_ready() while not self.bot.is_closed(): await self.bot.change_presence( activity=discord.Game(name="❓ Prefix: .help") ) await asyncio.sleep(60) await self.bot.change_presence( activity=discord.Game(name="💻 I support 100+ commands") ) await asyncio.sleep(30)