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
-
Cloner le projet et installer les dépendances
git clone <repo> cd mc-acces-bot npm install -
Configurer le fichier .env
- Copiez
.env.exampleen.envet remplissez toutes les variables selon votre configuration (token Discord, IDs, chemins, etc.) - Exemple :
cp .env.example .env nano .env
- Copiez
-
Configurer le fichier emojis.json
- Copiez
emojis.json.exampleenemojis.jsonet personnalisez les valeurs si besoin. - Exemple :
cp emojis.json.example emojis.json nano emojis.json
- Copiez
-
Lancer le bot
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 <pseudo>: Ajoute un joueur à la whitelist/minecraft remove <pseudo>: 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 <cmd>: 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.examplecontient toutes les variables à renseigner pour le bot et le serveur Minecraft.emojis.json.examplecontient 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.jsonest accessible en lecture/écriture. - Consultez les logs du bot et du serveur Minecraft pour toute erreur.
- Utilisez les scripts
test-permissions.shetdiagnostic.shpour vérifier la configuration système.
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
.envetemojis.json - Vérifiez les permissions système