🧬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

Source d'activité
Mesurée en...
Utilisation

💬 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

Table
Contenu

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

Associe un rôle à un palier donné (ex: rôle Palier 2). 🛠 Nécessaire pour le bon fonctionnement du système.


/config_palier_criteres

Définit les critères requis pour chaque palier :

  • Nombre de messages

  • Temps vocal (en minutes)

  • Niveau (optionnel)


/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

Empêche un rôle d’être rétrogradé automatiquement. 🛡 Utilisé pour protéger certains grades manuels ou honorifiques.


/config_logs_paliers

Définit les salons où seront envoyés les logs de :

  • 📈 Montée de palier

  • 📉 Rétrogradation


/forcer_palier

Force un membre à accéder à un palier donné manuellement. Utilisé en cas d’erreur ou de promotion exceptionnelle 🎖️


/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

À chaque message envoyé, le nombre total est stocké dans user_activity.

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