8.2 KiB
Executable file
🤖 Kuby Discord Bot
Un bot Discord avancé et sécurisé développé en Python avec discord.py, conçu pour la gestion de serveurs et l'automatisation.
📋 Table des matières
🚀 Fonctionnalités
✅ Fonctionnalités principales
- Système de whitelist : Contrôle d'accès basé sur une liste blanche
- Logs avancés : Suivi détaillé de toutes les activités du serveur
- Système de bienvenue/au revoir : Messages personnalisés pour les arrivées/départs
- Sécurité renforcée : Protection contre les raids et les utilisateurs malveillants
- Commandes de modération : Outils complets pour les modérateurs
- Sauvegardes automatiques : Backup régulier des données importantes
🎮 Commandes disponibles
| Commande | Description | Usage |
|---|---|---|
!whitelist add @user |
Ajoute un utilisateur à la whitelist | !whitelist add @Kuby |
!whitelist remove @user |
Retire un utilisateur de la whitelist | !whitelist remove @Kuby |
!whitelist list |
Liste tous les utilisateurs whitelistés | !whitelist list |
!setwelcome #channel |
Définit le canal de bienvenue | !setwelcome #bienvenue |
!setgoodbye #channel |
Définit le canal d'au revoir | !setgoodbye #depart |
!security settings |
Affiche les paramètres de sécurité | !security settings |
!snipe |
Récupère le dernier message supprimé | !snipe |
!fun meme |
Envoie un meme aléatoire | !fun meme |
⚙️ Installation
Prérequis
- Python 3.8 ou supérieur
- Un compte Discord avec des permissions d'administrateur
- Un serveur Discord pour tester le bot
Étapes d'installation
-
Cloner le repository
git clone [URL_DU_REPO] cd kuby-bot -
Créer un environnement virtuel
python -m venv venv # Windows venv\Scripts\activate # Linux/Mac source venv/bin/activate -
Installer les dépendances
pip install -r requirements.txt -
Créer le fichier .env
cp .env.example .env -
Configurer les variables d'environnement Éditer le fichier
.envavec vos informations :DISCORD_TOKEN=VOTRE_TOKEN_BOT APPLICATION_ID=VOTRE_APPLICATION_ID -
Lancer le bot
python bot.py
🔧 Configuration
Fichier .env
# Token du bot Discord (obligatoire)
DISCORD_TOKEN=your_bot_token_here
# ID de l'application Discord (optionnel mais recommandé)
APPLICATION_ID=your_application_id_here
# Configuration du logging
LOG_LEVEL=INFO
LOG_FILE_MAX_SIZE=10MB
LOG_BACKUP_COUNT=5
Permissions Discord requises
- Administrator : Pour une gestion complète du serveur
- Manage Server : Pour modifier les paramètres du serveur
- Manage Channels : Pour créer/modifier les canaux
- Manage Roles : Pour gérer les rôles
- Kick Members : Pour expulser des membres
- Ban Members : Pour bannir des membres
- Read Messages : Pour lire les messages
- Send Messages : Pour envoyer des messages
- Embed Links : Pour envoyer des embeds
- Attach Files : Pour envoyer des fichiers
- Add Reactions : Pour ajouter des réactions
📁 Structure du projet
kuby-bot/
├── bot.py # Point d'entrée principal du bot
├── kuby.py # Classe principale MyBot avec événements
├── requirements.txt # Dépendances Python
├── .env # Variables d'environnement (non versionné)
├── .gitignore # Fichiers à ignorer par Git
├── README.md # Ce fichier
├── data/ # Dossier pour les données
│ ├── security_settings.json # Paramètres de sécurité
│ ├── logs/ # Fichiers de logs
│ └── member_logs/ # Logs des membres
├── commandes/ # Extensions (cogs) du bot
│ ├── __init__.py
│ ├── whitelist.py # Gestion de la whitelist
│ ├── whitelist_monitor.py # Surveillance de la whitelist
│ ├── security.py # Commandes de sécurité
│ ├── fun.py # Commandes amusantes
│ ├── snipe.py # Récupération de messages
│ ├── sendbotmessages.py # Envoi de messages via le bot
│ ├── setwelcomechannel.py # Configuration canal bienvenue
│ ├── setgoodbyechannel.py # Configuration canal au revoir
│ └── whitelist_monitor.py # Monitoring de la whitelist
├── src/ # Code source utilitaire
│ ├── logger.py # Configuration du logging
│ └── advanced_logger.py # Logger avancé avec fonctionnalités
└── utils/ # Utilitaires divers
🎯 Utilisation
Premier démarrage
- Invitez le bot sur votre serveur avec les permissions appropriées
- Configurez le canal de bienvenue avec
!setwelcome #channel - Configurez le canal d'au revoir avec
!setgoodbye #channel - Ajoutez les modérateurs à la whitelist avec
!whitelist add @modérateur
Configuration de la sécurité
# Activer la surveillance de la whitelist
!security enable
# Voir les paramètres actuels
!security settings
# Configurer les notifications
!security notifications #channel
🛡️ Sécurité
Système de whitelist
Le bot utilise un système de liste blanche pour contrôler l'accès aux commandes :
- Seuls les utilisateurs whitelistés peuvent utiliser les commandes
- Les administrateurs du serveur sont automatiquement whitelistés
- Les modifications de la whitelist sont loguées
Protection contre les raids
- Détection automatique des arrivées massives
- Notifications aux administrateurs
- Actions automatiques possibles (kick, ban)
Logs de sécurité
Toutes les actions importantes sont enregistrées :
- Connexions/déconnexions
- Modifications de la whitelist
- Arrivées/départs de membres
- Suppressions de messages
- Modifications de rôles
🔍 Logging
Niveaux de logs
- DEBUG : Informations détaillées pour le développement
- INFO : Informations générales sur le fonctionnement
- WARNING : Avertissements sur des comportements potentiellement problématiques
- ERROR : Erreurs qui n'empêchent pas le fonctionnement
- CRITICAL : Erreurs graves qui nécessitent une intervention
Fichiers de logs
Les logs sont stockés dans data/logs/ avec rotation automatique :
kuby.log: Logs principauxsecurity.log: Logs de sécuritécommands.log: Logs des commandes
🐛 Dépannage
Problèmes courants
"Bot ne se connecte pas"
- Vérifiez le token dans
.env - Assurez-vous que le bot a les bonnes permissions
- Vérifiez la connexion Internet
"Commandes ne fonctionnent pas"
- Vérifiez que l'utilisateur est whitelisté
- Vérifiez les permissions du bot
- Consultez les logs pour les erreurs
"Erreur de permissions"
- Vérifiez que le bot a le rôle approprié
- Vérifiez la hiérarchie des rôles
- Assurez-vous que le bot est au-dessus des rôles à gérer
Commandes de debug
# Vérifier l'état du bot
!ping
# Voir les logs récents
!logs recent
# Vérifier la configuration
!config check
🤝 Contribution
Rapport de bugs
Pour signaler un bug :
- Vérifiez les issues existantes
- Créez une nouvelle issue avec :
- Description détaillée
- Étapes pour reproduire
- Logs pertinents
- Environnement (Python version, discord.py version)
📄 Licence
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.
Développé avec Lowei et Gameur ❤️ par l'équipe Omega Kube
Pour toute question ou support, rejoignez notre serveur Discord ou créez une issue sur GitHub.