Discord-Raid-bot/cogs/guide.py
LE BERRE Mickael 85942723ab feat: rebrand RTF→TEA, clan detection via Discord roles
Replaces display-name prefix parsing ([RTF]/[RTFC]/[RTFR]) with
Discord role-based clan detection (TEAI/TEAF/TEAC/TEACO).

- config: new CLAN_CONFIG with 4 TEA clans, CLAN_ROLE_IDS, CLAN_MIGRATION
- helpers: get_user_clan() replaced by get_clan_from_member()
- DatabaseManager: adds clan column on startup, auto-migrates existing
  records from old username prefixes, filters leaderboard by clan column
- pb_handler: detects clan from roles on submission, passes it to DB
- leaderboard_handler: reads clan from DB column instead of username
- top10: new commands !teai*/!teaf*/!teac*/!teaco* (removes !rtf*)
- guide: updated command list and bot title

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 10:51:26 +02:00

119 lines
4.6 KiB
Python

# -*- coding: utf-8 -*-
import discord
from discord.ext import commands
from config import AUTHORIZED_CHANNEL_ID
class Guide(commands.Cog):
"""Affiche la liste des commandes disponibles"""
def __init__(self, bot):
self.bot = bot
@commands.command(name="guide")
async def guide(self, ctx):
"""Affiche toutes les commandes disponibles avec les difficultés"""
if ctx.channel.id != AUTHORIZED_CHANNEL_ID:
return
embed = discord.Embed(
title="🧐 TEA Bot - Commands Guide",
description="Here are all available commands for tracking your Personal Bests!",
color=0x00bfff
)
# Info sur les formats de dégâts
embed.add_field(
name="💠 Damage Formats",
value="**Accepted formats:** `1500000`, `1.5M`, `500K`, `2B`\n"
"**Suffixes:** K = thousands, M = millions, B = billions\n"
"**Shortcuts:** `nm` = Nightmare, `unm` = Ultra Nightmare",
inline=False
)
# Commandes PB Hydra
embed.add_field(
name="🐍 Hydra Commands",
value="**Difficulties:** Normal | Hard | Brutal | Nightmare (nm)\n"
"`!pbhydra <difficulty> <damage>` - Submit PB + screenshot\n"
"`!pbhydra <difficulty>` - Show your PB\n"
"`!pbhydra <difficulty> <user>` - Show user's PB",
inline=False
)
# Commandes PB Chimera
embed.add_field(
name="🦁 Chimera Commands",
value="**Difficulties:** Easy | Normal | Hard | Brutal | Nightmare (nm) | Ultra (unm)\n"
"`!pbchimera <difficulty> <damage>` - Submit PB + screenshot\n"
"`!pbchimera <difficulty>` - Show your PB\n"
"`!pbchimera <difficulty> <user>` - Show user's PB",
inline=False
)
# Commandes PB CvC
embed.add_field(
name="⚔️ CvC Commands",
value="`!pbcvc <damage>` - Submit PB + screenshot\n"
"`!pbcvc` - Show your PB\n"
"`!pbcvc <username>` - Show user's PB",
inline=False
)
# Commandes Mercy
embed.add_field(
name="🎲 Mercy Commands",
value="`!mercy show` - Show your current mercy pulls\n"
"`!mercy add <nb> <type>` - Add pulls to a shard type\n"
"`!mercy reset <type>` - Reset pulls for a shard type\n"
"**Available types:** ancient, void, sacred, primal, remnant",
inline=False
)
# Classements globaux
embed.add_field(
name="🌍 Global Leaderboards",
value="`!top10hydra <difficulty>` - Global Hydra rankings\n"
"`!top10chimera <difficulty>` - Global Chimera rankings\n"
"`!top10cvc` - Global CvC rankings",
inline=False
)
# Classements par clan
embed.add_field(
name="🏆 Clan Leaderboards",
value="**🔥 TEAI (Inferno):** `!teaihydra <diff>` `!teaichimera <diff>` `!teaicvc`\n"
"**🛡️ TEAF (Flame):** `!teafhydra <diff>` `!teafchimera <diff>` `!teafcvc`\n"
"**⚔️ TEAC (Cinder):** `!teachydra <diff>` `!teachimera <diff>` `!teaccvc`\n"
"**👑 TEACO (Corrupted Olympians):** `!teacohydra <diff>` `!teacochimera <diff>` `!teacocvc`",
inline=False
)
# Stats et aide
embed.add_field(
name="📈 Stats & Info",
value="`!mystats` - View all your PBs\n"
"`!mystats <username>` - View someone's PBs\n"
"`!guide` - Show this help message",
inline=False
)
# Instructions
embed.add_field(
name="⚡ Examples",
value="`!pbhydra brutal 1.5M` - Submit Brutal Hydra PB\n"
"`!pbchimera unm 500K` - Submit Ultra Nightmare PB\n"
"`!pbcvc 2.3M` - Submit CvC PB\n"
"`!mercy add 50 primal` - Add 50 pulls to Primal shard\n"
"`!mercy show` - Show your mercy pulls\n"
"`!teaihydra nm` - TEAI clan Nightmare rankings\n"
"**Always attach screenshot when submitting PBs!**",
inline=False
)
embed.set_footer(text="🎮 Old screenshots are automatically deleted when you set new PBs!")
await ctx.send(embed=embed)
async def setup(bot):
await bot.add_cog(Guide(bot))