mc-access-bot/README.md
2025-10-21 02:13:56 +02:00

133 lines
4.5 KiB
Markdown

# Bot Discord - Accès Serveur Minecraft
Ce bot Discord permet de gérer automatiquement les demandes d'accès à un serveur Minecraft via un système de whitelist.
## Fonctionnalités
### 🎮 Système de demande d'accès
- Message automatique avec bouton pour demander l'accès
- Modal pour saisir le pseudo Minecraft
- Vérification automatique si le joueur est déjà whitelisté
- Envoi de la demande au canal staff avec boutons Accept/Refuse
### ⚙️ Commandes administrateur
- `/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 status` - Affiche le statut du serveur Minecraft
- `/setup-access` - Envoie le message de demande d'accès
## Installation
1. **Cloner le projet et installer les dépendances :**
```bash
npm install
```
2. **Configurer le fichier .env :**
Assurez-vous que votre fichier `.env` contient toutes les variables nécessaires :
```env
TOKEN=votre_token_bot_discord
CLIENT_ID=id_du_bot
OWNER_ID=votre_id_discord
SUPPORT_SERVER_ID=id_du_serveur_discord
CHANNEL_REQUEST_ACCESS_ID=id_canal_demandes_publiques
CHANNEL_ACCESS_STAFF_REQUESTS_ID=id_canal_staff_demandes
ROLE_WAITER_ID=id_role_attente
ROLE_VERIFIED_ID=id_role_verifie
ROLE_ADMIN_ID=id_role_admin
MINECRAFT_SERVER_IP=adresse:port
MINECRAFT_WHITELIST_PATH=/chemin/vers/whitelist.json
```
3. **Lancer le bot :**
```bash
npm start
```
Pour le développement :
```bash
npm run dev
```
## Structure du projet
```
├── start.js # Point d'entrée principal
├── src/
│ ├── commands/
│ │ ├── minecraft.js # Commandes /minecraft
│ │ └── setup-access.js # Commande /setup-access
│ ├── events/
│ │ └── ready.js # Événement de démarrage
│ ├── handlers/
│ │ ├── commandHandler.js # Chargeur de commandes
│ │ ├── eventHandler.js # Chargeur d'événements
│ │ └── interactionHandler.js # Gestionnaire d'interactions
│ └── utils/
│ ├── accessRequestManager.js # Gestionnaire de demandes d'accès
│ ├── minecraftServer.js # Utilitaires serveur Minecraft
│ └── whitelistManager.js # Gestionnaire de whitelist
```
## Utilisation
### Configuration initiale
1. **Inviter le bot sur votre serveur** avec les permissions nécessaires
2. **Utiliser `/setup-access`** dans le canal où vous voulez le message de demande d'accès
3. **Configurer les rôles** dans votre serveur Discord selon les IDs dans le `.env`
### Workflow des demandes
1. **Utilisateur :** Clique sur le bouton "Demander l'accès"
2. **Utilisateur :** Remplit le modal avec son pseudo Minecraft
3. **Système :** Vérifie si le joueur est déjà whitelisté
4. **Système :** Envoie la demande au canal staff
5. **Staff :** Clique sur "Accepter" ou "Refuser"
6. **Système :** Ajoute le joueur à la whitelist (si accepté) et notifie l'utilisateur
### Commandes administrateur
Seul l'OWNER_ID peut utiliser les commandes `/minecraft` :
- **Lister les joueurs :** `/minecraft list`
- **Ajouter un joueur :** `/minecraft add pseudo:NomDuJoueur`
- **Retirer un joueur :** `/minecraft remove pseudo:NomDuJoueur`
- **Status du serveur :** `/minecraft status`
## Permissions requises
Le bot a besoin des permissions Discord suivantes :
- `Send Messages` - Envoyer des messages
- `Use Slash Commands` - Utiliser les commandes slash
- `Embed Links` - Incorporer des liens
- `Manage Messages` - Gérer les messages
- `Read Message History` - Lire l'historique des messages
## Notes importantes
- Le fichier `whitelist.json` doit être accessible en lecture/écriture
- Le serveur Minecraft doit être accessible pour la vérification du statut
- Les IDs Discord dans le `.env` doivent être valides
- Le bot vérifie automatiquement les pseudos via l'API Mojang
## Dépannage
### Le bot ne répond pas aux commandes
- Vérifiez que le TOKEN est correct
- Vérifiez que les permissions sont accordées
- Consultez les logs dans la console
### Erreurs de whitelist
- Vérifiez le chemin vers `whitelist.json`
- Vérifiez les permissions de fichier
- Assurez-vous que le format JSON est valide
### Problèmes de serveur Minecraft
- Vérifiez que l'adresse IP et le port sont corrects
- Assurez-vous que le serveur est en ligne
- Vérifiez les paramètres du pare-feu