Commandes d'administration
Toutes les commandes /setup et /admin sont reservees au proprietaire du bot (verifie via BOT_OWNER_ID dans le .env). Meme les administrateurs Discord ne peuvent pas les utiliser sans cette verification.
/setup
/setup init
Cree automatiquement les categories et salons necessaires au bot.
Categories creees :
| Categorie | Salons crees |
|---|---|
| Nekobot | commands (help public), suggestions, clips |
| Staff | admin-commands (help staff), logs, admin-logs |
Soit 2 categories et 6 salons textuels au total.
Comportement :
- Si un salon ou une categorie du meme nom existe deja, il est reutilise (pas de doublon).
- Les IDs sont stockes dans
GuildConfig. - Les messages d'aide (public et staff) sont postes automatiquement dans les salons correspondants.
/setup view
Affiche un embed recapitulatif de toute la configuration actuelle du bot : salons, roles, etat de l'XP.
/setup level-roles
Cree automatiquement les 13 roles de niveau du systeme de gamification.
| Niveau | Nom | Couleur |
|---|---|---|
| 1 | 🌱 Level 1 | Gris |
| 5 | ⭐ Level 5 | Bleu |
| 10 | 💎 Level 10 | Vert |
| 15 | 🔥 Level 15 | Orange |
| 20 | ⚡ Level 20 | Jaune |
| 50 | 🏆 Level 50 | Rouge |
| 100 | 👑 Level 100 | Violet |
| 200 | 🌟 Level 200 | Turquoise |
| 250 | 💀 Level 250 | Sombre |
| 300 | 🐉 Level 300 | Rouge fonce |
| 500 | 🌌 Level 500 | Violet fonce |
| 750 | ✨ Level 750 | Or |
| 1000 | :sports_medal: Level 1000 | Or brillant |
Les roles sont crees avec hoist: false et mentionable: false. Si un role du meme nom existe deja, il est reutilise. Le mapping { niveau: roleId } est sauvegarde dans GuildConfig.levelRoles (champ JSON).
Sous-commandes de configuration de salons
Chaque sous-commande associe un salon a une fonction specifique du bot :
| Sous-commande | Champ GuildConfig | Description |
|---|---|---|
birthday-channel | birthdayChannelId | Salon des messages d'anniversaire |
thursday-channel | thursdayChannelId | Salon du rappel du jeudi |
welcome-channel | welcomeChannelId | Salon de bienvenue |
modlog-channel | moderationLogChannelId | Salon des logs de moderation |
log-channel | logChannelId | Salon des logs admin |
help-channel | helpChannelId | Salon du guide public |
staff-channel | staffChannelId | Salon du guide staff |
suggestion-channel | suggestionChannelId | Salon des suggestions |
clip-channel | clipChannelId | Salon des clips |
/setup thursday-role <@role>
Definit le role a pinguer pour le rappel du jeudi.
/admin
/admin status
Affiche un embed avec les informations systeme du bot :
- Version (depuis
package.json) - Commit actuel (hash court)
- Uptime (heures et minutes)
- Memoire (heap en MB)
- Environnement (development / production)
- Membres actifs (nombre dans la DB)
- Mise a jour disponible : compare
HEADavecorigin/mainviagit fetch
/admin update
Met a jour le bot depuis GitHub. Les etapes sont executees sequentiellement :
git pull origin mainnpm ci --omit=devnpx prisma generatenpx prisma migrate deploynpm run build
Chaque etape a un timeout de 30 secondes. En cas de succes, le bot redemarre automatiquement apres 3 secondes (via process.exit(0), pm2 le relance).
/admin restart
Redemarre le bot immediatement. Le bot fait process.exit(0) apres 3 secondes, et pm2 le relance automatiquement.
/admin release [#channel]
Poste les notes de mise a jour dans un salon.
| Parametre | Type | Requis | Defaut |
|---|---|---|---|
#channel | Salon | Non | Salon actuel |
Le bot parse le fichier CHANGELOG.md a la racine du projet :
- Extrait la derniere version (premier bloc
## vX.Y.Z -- date). - Parse les sections
### Titreet les items- contenu. - Construit un ou plusieurs embeds Discord (splitting automatique si le contenu depasse les limites Discord de 25 champs ou 1024 caracteres par champ).
/admin give-xp <@user> <amount>
Donne de l'XP a un membre. L'XP est ajoute a totalXp et weeklyXp. Si le profil n'existe pas, il est cree automatiquement via upsert.
/admin remove-xp <@user> <amount>
Retire de l'XP a un membre. Le total ne descend jamais en dessous de 0.
/admin set-level <@user> <level>
Definit le niveau d'un membre en calculant l'XP necessaire pour atteindre ce niveau et en ecrasant totalXp.
/admin reset-xp <@user>
Remet toutes les valeurs XP d'un membre a zero : totalXp, messageXp, voiceXp, weeklyXp, level.
/admin reset-weekly
Force la remise a zero de l'XP hebdomadaire pour tous les membres du serveur. Met a jour weeklyResetAt.
/admin announce <#channel> <message>
Envoie un message dans le salon specifie via le bot.
/admin dm <@user> <message>
Envoie un message prive a un membre via le bot. Si les DMs sont desactives, une erreur est renvoyee.
/admin clear <nombre> [@user]
Supprime des messages dans le salon actuel.
| Parametre | Type | Requis | Description |
|---|---|---|---|
nombre | Entier | Oui | Nombre de messages a supprimer (1-100) |
@user | Utilisateur | Non | Filtrer par auteur (optionnel) |
Limitations :
- Discord ne permet pas la suppression en masse de messages de plus de 14 jours.
- Si un filtre utilisateur est applique, le bot recupere les 100 derniers messages et filtre les N premiers de cet utilisateur.
Toutes les commandes /admin sont tracees dans l'AuditLog avec l'ID de l'executant et les details de l'action.
