133 lines
4.5 KiB
Markdown
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 |