# Bot Discord - Gestion Serveur Minecraft Ce bot Discord permet de gérer la whitelist et le contrôle d'un serveur Minecraft hébergé sur un VPS. **Important : Pour que le bot fonctionne correctement, il doit être hébergé sur le même serveur que le serveur Minecraft.** ## Fonctionnalités - Système de demande d'accès automatique avec bouton et gestion des rôles - Ajout et suppression de joueurs dans la whitelist avec récupération automatique de l'UUID - Rechargement automatique de la whitelist sur le serveur - Démarrage, arrêt, redémarrage du serveur Minecraft - Envoi de commandes directes au serveur via screen - Consultation des logs et sauvegarde du monde - Mise à jour automatique du statut serveur dans Discord - Interface personnalisable via emojis.json ## Prérequis - Node.js v16 ou supérieur - Un serveur Minecraft (Fabric, Paper, Vanilla, etc.) - Un serveur Discord et un bot Discord - Accès sudo sur le VPS - Le bot et le serveur Minecraft doivent être sur la même machine ## Installation 1. **Cloner le projet et installer les dépendances** ```bash git clone cd mc-acces-bot npm install ``` 2. **Configurer le fichier .env** - Copiez `.env.example` en `.env` et remplissez toutes les variables selon votre configuration (token Discord, IDs, chemins, etc.) - Exemple : ```bash cp .env.example .env nano .env ``` 3. **Configurer le fichier emojis.json** - Copiez `emojis.json.example` en `emojis.json` et personnalisez les valeurs si besoin. - Exemple : ```bash cp emojis.json.example emojis.json nano emojis.json ``` 4. **Lancer le bot** ```bash node start.js ``` ## Utilisation ### Démarrage - Le bot envoie automatiquement un message de demande d'accès dans le canal configuré. - Les utilisateurs peuvent cliquer sur le bouton pour demander l'accès et remplir leur pseudo Minecraft. - Le bot attribue le rôle "Waiter" à l'utilisateur et envoie la demande au staff. - Le staff peut accepter ou refuser la demande via des boutons. - Si accepté, le joueur est ajouté à la whitelist et reçoit le rôle "Verified". - Si refusé, le rôle "Waiter" est retiré. ### Commandes administrateur Seul l'utilisateur OWNER_ID peut utiliser ces commandes : - `/minecraft list` : Affiche la liste des joueurs whitelistés - `/minecraft add ` : Ajoute un joueur à la whitelist - `/minecraft remove ` : Retire un joueur de la whitelist - `/minecraft reload` : Recharge la whitelist sur le serveur - `/minecraft status` : Affiche le statut du serveur Minecraft - `/minecraft start` : Démarre le serveur Minecraft - `/minecraft stop` : Arrête le serveur Minecraft - `/minecraft restart` : Redémarre le serveur Minecraft - `/minecraft logs [lines]` : Affiche les logs du serveur - `/minecraft command ` : Envoie une commande au serveur - `/minecraft backup` : Sauvegarde le monde du serveur - `/minecraft setup` : Configure automatiquement le serveur pour le bot ## Structure du projet ``` mc-acces-bot/ ├── start.js ├── package.json ├── .env.example ├── .env ├── emojis.json.example ├── emojis.json └── src/ ├── commands/ │ └── minecraft.js ├── events/ │ └── ready.js ├── handlers/ │ └── interactionHandler.js └── utils/ ├── whitelistManager.js ├── minecraftServer.js ├── serverControlManager.js ├── autoMessageManager.js └── emojiManager.js ``` ## Configuration - `.env.example` contient toutes les variables à renseigner pour le bot et le serveur Minecraft. - `emojis.json.example` contient la structure des emojis personnalisés à utiliser dans les embeds Discord. - Adaptez les chemins, IDs et tokens à votre environnement. ## Dépannage - Vérifiez que le bot et le serveur Minecraft sont sur la même machine. - Vérifiez les permissions sudo pour les commandes systemctl et screen. - Vérifiez que le fichier `whitelist.json` est accessible en lecture/écriture. - Consultez les logs du bot et du serveur Minecraft pour toute erreur. ## Notes importantes - Le bot doit avoir accès aux fichiers et dossiers du serveur Minecraft. - Les rôles Discord doivent être correctement configurés et renseignés dans `.env`. - Le serveur Minecraft doit être lancé via screen ou systemctl selon la configuration. - Les commandes envoyées par le bot utilisent la session screen existante. - Pour toute modification, redémarrez le bot pour appliquer la nouvelle configuration. ## Support En cas de problème : - Vérifiez les logs du bot et du serveur - Vérifiez la configuration des fichiers `.env` et `emojis.json` - Vérifiez les permissions système