Skip to content

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 :

CategorieSalons crees
Nekobotcommands (help public), suggestions, clips
Staffadmin-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.

NiveauNomCouleur
1🌱 Level 1Gris
5⭐ Level 5Bleu
10💎 Level 10Vert
15🔥 Level 15Orange
20⚡ Level 20Jaune
50🏆 Level 50Rouge
100👑 Level 100Violet
200🌟 Level 200Turquoise
250💀 Level 250Sombre
300🐉 Level 300Rouge fonce
500🌌 Level 500Violet fonce
750✨ Level 750Or
1000:sports_medal: Level 1000Or 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-commandeChamp GuildConfigDescription
birthday-channelbirthdayChannelIdSalon des messages d'anniversaire
thursday-channelthursdayChannelIdSalon du rappel du jeudi
welcome-channelwelcomeChannelIdSalon de bienvenue
modlog-channelmoderationLogChannelIdSalon des logs de moderation
log-channellogChannelIdSalon des logs admin
help-channelhelpChannelIdSalon du guide public
staff-channelstaffChannelIdSalon du guide staff
suggestion-channelsuggestionChannelIdSalon des suggestions
clip-channelclipChannelIdSalon 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 HEAD avec origin/main via git fetch

/admin update

Met a jour le bot depuis GitHub. Les etapes sont executees sequentiellement :

  1. git pull origin main
  2. npm ci --omit=dev
  3. npx prisma generate
  4. npx prisma migrate deploy
  5. npm 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.

ParametreTypeRequisDefaut
#channelSalonNonSalon 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 ### Titre et 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.

ParametreTypeRequisDescription
nombreEntierOuiNombre de messages a supprimer (1-100)
@userUtilisateurNonFiltrer 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.