Initial commit

This commit is contained in:
zv
2026-04-22 20:21:30 +02:00
commit 687c68ee41
3 changed files with 69 additions and 0 deletions

28
README.md Normal file
View File

@@ -0,0 +1,28 @@
# StatusRotator
Cog for Red-DiscordBot that rotates the bot's playing status in a simple timed loop.
## What it does
- Sets the bot activity to:
- `❓ Prefix: .help` for 60 seconds
- Then changes it to:
- `💻 I support 100+ commands` for 30 seconds
- Repeats this cycle forever in a loop
- Uses only `Playing` activity for both statuses
## Rotation order
The status loop works like this:
1. `❓ Prefix: .help` for 60 seconds
2. `💻 I support 100+ commands` for 30 seconds
3. Repeat from the beginning
## Installation
1. Put this cog folder in your custom cogs path.
2. In Discord:
```text
[p]load statusrotator

5
__init__.py Normal file
View File

@@ -0,0 +1,5 @@
from .statusrotator import StatusRotator
async def setup(bot):
await bot.add_cog(StatusRotator(bot))

36
statusrotator.py Normal file
View File

@@ -0,0 +1,36 @@
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)