136 lines
4.8 KiB
Markdown
136 lines
4.8 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.
|
|
- Utilisez les scripts `test-permissions.sh` et `diagnostic.sh` pour 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 `.env` et `emojis.json`
|
|
- Vérifiez les permissions système |