# 🥐 Femboy Croissant Bot

Un bot Discord complet et moderne pour la gestion de communauté, incluant modération, système d'XP, tickets avec transcription web, et plus encore.

## 🌟 Fonctionnalités

### 🛡️ Modération
- **Sanctions complètes :** Ban, Kick, Mute (Timeout), Warn.
- **Gestion des sanctions :** `unban`, `unmute`, `untimeout`, `changesanction`, `revokesanction`.
- **Logs détaillés :** Toutes les actions sont enregistrées en base de données et dans un salon de logs.
- **Casier judiciaire :** Visualisez l'historique des sanctions d'un membre avec `/casier`.
- **Auto-Unban/Unmute :** Gestion automatique des expirations de sanctions.

### 🎫 Système de Tickets
- **Types multiples :** Support, Plainte, Candidature, etc.
- **Transcriptions Web :** Génération automatique de pages HTML pour les archives de tickets.
- **Dashboard Web :** Interface pour visualiser et gérer les transcripts (avec authentification Discord).
- **Candidatures :** Formulaire intégré avec questions personnalisées.

### 📈 Système d'XP
- **Progression :** Gain d'XP par message et en vocal.
- **Niveaux :** Annonces de level-up personnalisées.
- **Classement :** Leaderboard global avec `/leaderboard`.
- **Exclusion :** Possibilité d'exclure certains salons du gain d'XP.
- **Bumps :** Récompenses d'XP pour les bumps (Disboard) et rappels automatiques.

### 🛠️ Utilitaires
- **Info :** `/userinfo`, `/serverinfo`, `/profil`.
- **Profils personnalisables :** Signature, anniversaire, badges (détection automatique Nitro/Boost).
- **Dev :** Commandes de maintenance (`/reload`, `/infra`).

## 🚀 Installation

### Prérequis
- Node.js v16.9.0 ou supérieur.
- Une base de données MySQL/MariaDB.
- Un bot Discord créé sur le [Developer Portal](https://discord.com/developers/applications).

### Configuration
1. Clonez le dépôt.
2. Installez les dépendances :
   ```bash
   npm install
   ```
3. Configurez le fichier `.env` (voir `.env.example` ou ci-dessous) :
   ```env
   TOKEN=votre_token_bot
   CLIENT_ID=votre_client_id
   GUILD_ID=id_serveur_principal
   
   DB_HOST=localhost
   DB_USER=root
   DB_PASSWORD=votre_mot_de_passe
   DB_NAME=bot
   
   DISCORD_CLIENT_SECRET=votre_secret_oauth
   DISCORD_CALLBACK_URL=http://localhost:3000/auth/discord/callback
   TRANSCRIPT_PORT=3000
   MODERATOR_IDS=id1,id2
   ```

### Démarrage
1. Déployez les commandes Slash :
   ```bash
   npm run deploy
   ```
2. Lancez le bot :
   ```bash
   npm start
   ```
3. (Optionnel) Lancez le serveur de transcripts :
   ```bash
   npm run server
   ```

## 📂 Structure du Projet

- `/commands` : Commandes Slash organisées par catégorie.
- `/events` : Gestionnaires d'événements Discord (message, interaction, vocal...).
- `/functions` : Logique métier (DB, XP, Modération).
- `/server` : Serveur web Express pour les transcripts.
- `/utils` : Constantes et fonctions utilitaires.

## 🔒 Sécurité
- Les tokens et mots de passe ne doivent **jamais** être partagés.
- Le fichier `.env` est ignoré par Git.
- Le serveur web utilise l'authentification OAuth2 Discord pour protéger les transcripts.

---
*Développé avec ❤️ par Syxpi*