Discord-Raid-bot/bot.py

82 lines
2.2 KiB
Python
Raw Normal View History

2025-08-26 17:35:54 +00:00
# -*- coding: utf-8 -*-
2025-08-22 13:25:34 +00:00
import discord
2025-08-28 12:31:11 +00:00
import os
import sys
2025-08-22 13:25:34 +00:00
from discord.ext import commands
from config import DISCORD_TOKEN
2025-08-26 17:35:54 +00:00
2025-08-22 13:25:34 +00:00
from utils.DatabaseManager_class import DatabaseManager
from utils.ScreenshotManager_class import ScreenshotManager
2025-08-26 18:07:35 +00:00
from utils.MercyManager_class import MercyManager
from utils.pb_handler import set_managers
from utils.leaderboard_handler import set_db_manager
2025-08-22 13:25:34 +00:00
2025-08-28 12:31:11 +00:00
# Force UTF-8
os.environ["PYTHONIOENCODING"] = "utf-8"
sys.stdout.reconfigure(encoding='utf-8')
2025-08-26 17:35:54 +00:00
# Définir les intents
2025-08-22 13:25:34 +00:00
intents = discord.Intents.default()
2025-08-26 13:02:34 +00:00
intents.message_content = True
2025-08-26 17:35:54 +00:00
2025-08-26 18:07:35 +00:00
# Initialisation des managers
2025-08-22 13:25:34 +00:00
db_manager = DatabaseManager()
screenshot_manager = ScreenshotManager()
2025-08-26 18:07:35 +00:00
mercy_manager = MercyManager()
# Injection des managers dans les handlers
set_managers(db_manager, screenshot_manager) # pb_handler
set_db_manager(db_manager) # leaderboard_handler
2025-08-22 13:25:34 +00:00
2025-08-26 18:07:35 +00:00
# Liste des cogs
2025-08-22 13:25:34 +00:00
initial_cogs = [
"cogs.guide",
"cogs.pbhydra",
"cogs.pbchimera",
"cogs.pbcvc",
"cogs.top10",
"cogs.mystats",
2025-08-24 08:21:54 +00:00
"cogs.mercy",
2025-08-22 13:25:34 +00:00
]
2025-08-28 13:27:38 +00:00
# Liste des dossiers
folders = [
"screenshots/hydra/normal",
"screenshots/hydra/hard",
"screenshots/hydra/brutal",
"screenshots/hydra/nightmare",
"screenshots/chimera/easy",
"screenshots/chimera/normal",
"screenshots/chimera/hard",
"screenshots/chimera/brutal",
"screenshots/chimera/nightmare",
"screenshots/chimera/ultra",
"screenshots/cvc",
]
# Création des dossiers si nécessaire (exist_ok=True évite d'écraser)
for f in folders:
os.makedirs(f, exist_ok=True)
2025-08-26 18:07:35 +00:00
class MyBot(commands.Bot):
def __init__(self):
super().__init__(command_prefix="!", intents=intents)
self.db_manager = db_manager
self.screenshot_manager = screenshot_manager
self.mercy_manager = mercy_manager
async def setup_hook(self):
for cog in initial_cogs:
try:
await self.load_extension(cog)
print(f"[OK] Cog {cog} chargé")
except Exception as e:
print(f"[ERREUR] Impossible de charger {cog}: {e}")
async def on_ready(self):
print(f"{self.user.name} est connecté !")
bot = MyBot()
2025-08-26 17:35:54 +00:00
bot.run(DISCORD_TOKEN)