Activité & niveaux
Système d'XP gagné par messages et activité vocale. Les membres montent de niveau, débloquent des rôles automatiques par palier, et se comparent via leaderboard et carte de rang.
Activer :
/setup→ bouton Activité, ou/config module nom:activity actif:true
Privileged Intent requis :
Message Content Intentpour le comptage XP messages.
Comment l'XP est gagnée
Messages
- Cooldown 60 secondes par user et par channel — un message dans le même salon dans la minute = pas d'XP supplémentaire
- Pondération par longueur avec plafond — un message long donne plus, mais pas linéairement
- Aucun XP pour les bots ni pour les commandes slash
Vocal
- Compté en continu tant que l'user est :
- Connecté à un vocal (pas AFK channel)
- Pas mute / pas deafened (auto-coupe l'XP si ça change)
- Avec ≥1 autre humain dans le salon (pas d'XP en solo)
Streak
Un compteur séparé streak enregistre les jours consécutifs d'activité (au moins 1 message ou 1 minute de vocal par jour). Reset à 0 après 1 jour d'inactivité.
Commandes membres
/rank [membre]
Affiche le profil d'un membre :
- Niveau, XP, barre de progression
- Rang messages, rang vocal, total messages, total vocal
- Streak en cours
Premium : la commande génère une carte de rang en image (PNG via Canvas) avec avatar, niveau, barre, et background custom uploadable côté dashboard.
/leaderboard [type]
Classement paginé (10 par page) :
messages(défaut) — top par nombre de messagesvoice— top par durée vocale
Boutons ◀ / ▶ pour naviguer, et boutons Messages/Vocal pour switcher.
Commandes admin
/levels list
Liste les paliers configurés et leur rôle associé.
/levels top [limit]
Top XP du serveur (1–25, défaut 10).
/levels set palier role
Associe un rôle à un palier de niveau :
/levels set palier:5 role:@Niveau-5
/levels set palier:10 role:@Niveau-10
/levels set palier:25 role:@Vétéran
Permission requise : Manage Server.
⚠️ Le rôle du bot doit être plus haut que le rôle à attribuer, sinon le bot ne pourra pas l'assigner.
/levels remove palier
Retire le rôle associé à un palier.
/levels channel [salon]
Définit le salon où poster les annonces de level-up. Vide = annonce dans le salon où le level-up survient.
/levels announce actif
Active/désactive les annonces de level-up.
Formule de level
xp_pour_niveau(N) = floor(C * sqrt(N))
Calculée incrémentalement pour rester rapide. Voir src/services/xp.js pour le détail.
Dashboard
/servers/<guildId>/levels— gestion des paliers, salon d'annonce, toggle annonces/servers/<guildId>/rank-card— upload du background custom (Premium)/servers/<guildId>/analytics— heatmap activité, top users/servers/<guildId>/members/<userId>— fiche détaillée d'un membre
Reset / saisons
Pas encore de reset saisonnier automatique (à venir). En attendant, l'XP cumule à vie.