🧬Système de Paliers Discord
🎯 Objectif
Ce module permet de récompenser automatiquement l’activité des membres d’un serveur Discord en leur attribuant des rôles selon leur activité textuelle et vocale. Il gère également :
📈 Les montées de paliers automatiques
📉 Les rétrogradations hebdomadaires
🧾 Une carte de progression visuelle
⚙️ Des critères configurables par palier
🔒 Des exceptions de rétrogradation
🪪 Des logs d’actions (montée/rétrogradation)
🧠 Fonctionnement global
💬 Messages
Nombre total
Progression vers les paliers
🎙️ Vocal
Minutes actives
Comptabilisé si non AFK et pas seul
🔁 Mise à jour
Toutes les 60 minutes
Montée automatique
📉 Rétrogradation
Toutes les 24h
Si activité < seuil requis
🗃️ Base de données paliers.db
paliers.db
user_activity
Activité message + vocal par utilisateur
palier_config
Configuration des paliers (critères et rôles)
downgrade_exceptions
Rôles exclus de la rétrogradation
downgrade_threshold
Seuil minimum d'activité pour garder son palier
upgrade_logs
Salon pour logs de montée
downgrade_logs
Salon pour logs de rétrogradation
palier_cards
(optionnel)
Fond personnalisé pour carte visuelle
📈 Montée de palier automatique
⏱ Toutes les heures :
Le bot analyse les données de chaque membre.
Si les critères du palier supérieur sont remplis (messages + temps vocal), le membre :
Perd les rôles de palier inférieurs
Gagne le nouveau rôle 🆙
Reçoit une notification
Est loggé dans le salon configuré
📉 Rétrogradation automatique
🕐 Chaque jour :
Le bot vérifie si les membres gardent une activité suffisante (exprimée en %).
Si un membre est en-dessous du seuil configuré (ex : 60%) :
Il est rétrogradé au palier inférieur 🔻
Reçoit un message privé
Le changement est loggé
💡 Les rôles définis comme "protégés" via /ajouter_exception_downgrade
ne peuvent pas être rétrogradés.
📊 Carte de progression
Commande : /carte
Affiche une embed graphique avec :
Palier actuel
Nombre de messages
Temps vocal (en minutes)
📈 Avancement vers le prochain palier
📉 Pourcentage de maintien du palier actuel
Barre de progression visuelle (ASCII)
🧾 Commandes administratives
/param_paliers
/param_paliers
Associe un rôle à un palier donné (ex: rôle Palier 2). 🛠 Nécessaire pour le bon fonctionnement du système.
/config_palier_criteres
/config_palier_criteres
Définit les critères requis pour chaque palier :
Nombre de messages
Temps vocal (en minutes)
Niveau (optionnel)
/config_seuil_downgrade
/config_seuil_downgrade
Définit le % minimum d’activité pour conserver son rôle. (Ex : 60% d’activité sur les critères = palier conservé ✅)
/ajouter_exception_downgrade
/ajouter_exception_downgrade
Empêche un rôle d’être rétrogradé automatiquement. 🛡 Utilisé pour protéger certains grades manuels ou honorifiques.
/config_logs_paliers
/config_logs_paliers
Définit les salons où seront envoyés les logs de :
📈 Montée de palier
📉 Rétrogradation
/forcer_palier
/forcer_palier
Force un membre à accéder à un palier donné manuellement. Utilisé en cas d’erreur ou de promotion exceptionnelle 🎖️
/liste_paliers
/liste_paliers
Affiche tous les paliers du serveur et leurs critères :
🔢 Numéro du palier
💬 Messages requis
🎙️ Temps vocal requis
🏷️ Rôle associé
🔄 Événements écoutés
on_message
on_message
À chaque message envoyé, le nombre total est stocké dans user_activity
.
on_voice_state_update
on_voice_state_update
Si le membre reste au moins 1 minute en vocal (non muet, non AFK), le temps est ajouté à son total.
Dernière mise à jour