mc-access-bot/README.md
2025-10-24 08:00:45 +02:00

135 lines
4.7 KiB
Markdown

# 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 <repo>
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 <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.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