circle-exclamation
Base en V1.0.1 Possible bug, merci de rejoindre le serveur Discord !

📚 Guide des commandes

Cette page détaille **toutes les commandes slash** du bot Discord GuerreRP (Admin / Lootbox / Season Pass),

  • leur utilité,

  • les permissions nécessaires,

  • les options attendues,

  • des exemples d’utilisation.

🧰 Commandes générales

/Ping

  • Rôle : Vérifier si le bot répond correctement.

  • Permission : Utilisable uniquement par les IDs listés dans config.perm.

  • Comportement :

    • Répond avec un message simple de type :

      Pong! Bot GuerreRP développé par Ducratif.

    • Peut être utilisé pour vérifier que :

      • le bot est bien en ligne,

      • la connexion au serveur Discord est fonctionnelle.

Exemple d’utilisation :

Utilise /ping après un redémarrage du bot pour vérifier qu’il est opérationnel.

👥 Outils Discord & Bienvenue

Welcome (Automatique)

Ce n’est pas une commande, mais un comportement automatique.

  • Event : guildMemberAdd

  • Comportement :

    1. Lorsqu’un nouveau membre rejoint :

      • Le bot envoie un DM avec config.dmWelcomeMessage (si les MP sont ouverts).

      • Le bot envoie un message dans config.welcomeChannelId avec config.welcomeChannelMessage.

    2. Le placeholder {user} est remplacé par une mention du membre.

Effet visible :

  • DM : “Bienvenue sur GuerreRP ! …”

  • Salon public : “🎉 Bienvenue @Pseudo sur GuerreRP ! …”

/rolebutton

Envoie un embed avec un bouton permettant aux membres d’obtenir (ou retirer) un rôle.

  • Permission requise : Administrateur (ou équivalent, selon Discord).

  • Utilité :

    • Créer un message “Clique pour obtenir le rôle X”.

    • Pratique pour les rôles d’accès, notifications, événements, etc.

Options

Nom
Type
Obligatoire
Description

salon

Salon texte

Salon où sera envoyé l’embed + bouton.

titre

Texte

Titre de l’embed.

description

Texte

Description de l’embed.

couleur

Texte

Couleur hex (ex: #2f3136), sinon config par défaut.

bouton

Texte

Texte affiché sur le bouton.

role

Rôle

Rôle à attribuer. Sinon : config.roleId.

Fonctionnement

  • Le bot envoie un embed dans le salon cible.

  • Un bouton est ajouté sous l’embed.

  • Lorsqu’un membre clique :

    • S’il n’a pas le rôle → le rôle lui est ajouté.

    • S’il a déjà le rôle → le rôle lui est retiré.

Exemple d’utilisation :

/rolebutton salon:#rôles titre:"Notifications" description:"Clique pour recevoir les annonces" bouton:"Recevoir les annonces" role:@Annonces

📦Gestion des caisses (LootBoxes)

Toutes ces commandes sont réservées aux IDs présents dans config.perm.

/createbox

Créer une nouvelle caisse via un formulaire (modal).

  • Utilité :

    • Ajouter une nouvelle lootbox dans la DB (lootboxes) sans passer par SQL.

  • Fonctionnement :

    • Lorsque la commande est exécutée :

      • Le bot ouvre un modal avec plusieurs champs :

        • Nom de la caisse

        • Description courte

        • Description longue

        • Image (URL)

        • Catégorie

        • Tags (séparés par des virgules)

      • Les valeurs sont insérées dans la table lootboxes.

Exemple d’utilisation :

/createbox → remplit le formulaire → valide → la caisse est créée en base.

/editbox

Modifier une caisse existante.

Options

Nom
Type
Obligatoire
Description

id

Nombre

ID de la caisse à modifier.

Fonctionnement

  • Le bot récupère la caisse dans lootboxes.

  • Affiche un embed récapitulatif :

    • Nom, descriptions, image

    • Catégorie

    • Tags

    • Statut (active/inactive)

  • Ajoute une rangée de 3 boutons :

    • ⚙️ Général → modification des infos générales (nom, description, image, etc.).

    • 🎁 Items → gestion des items (lootbox_contents).

    • 💳 Paiements → gestion des moyens de paiement (lootbox_payments).

Les boutons ouvrent chacun un modal géré dans interactionHandler.js.

/duplicatebox

Dupliquer une caisse et l’ensemble de son contenu/paiements.

Options

Nom
Type
Obligatoire
Description

id

Nombre

ID de la caisse à dupliquer.

Fonctionnement

  • Copie la ligne lootboxes correspondante.

  • Copie les lignes associées dans :

    • lootbox_contents

    • lootbox_payments

  • La caisse dupliquée est généralement :

    • Marquée comme inactive par défaut.

    • Renommée (ex : ajouter “(Dupliquée)”).

Exemple d’utilisation :

/duplicatebox id:12 → crée une nouvelle caisse basée sur l’ID 12 pour une édition rapide.

/infobox

Afficher toutes les infos détaillées d’une caisse.

Options

Nom
Type
Obligatoire
Description

id

Nombre

ID de la caisse ciblée.

Fonctionnement

  • Récupère :

    • lootboxes (infos générales),

    • lootbox_contents (items),

    • lootbox_payments (paiements).

  • Affiche un embed avec :

    • Nom, descriptions, image

    • Catégorie, tags

    • Statut (active/inactive)

    • Liste des moyens de paiement (type, valeur, etc.)

    • Liste des items (item, quantité, rareté)


/listboxes

Lister toutes les caisses avec pagination.

Fonctionnement

  • Récupère la liste des caisses depuis lootboxes (tri par ID décroissant).

  • Paginer la liste par blocs (par ex. 10 caisses par page).

  • Affiche un embed du type :

  • Ajoute des boutons :

    • ⬅️ Page précédente

    • ➡️ Page suivante

  • Les interactions sont gérées dans componentHandler.js.


/givebox

Attribuer une caisse à un joueur.

Options

Nom
Type
Obligatoire
Description

boxid

Nombre

ID de la caisse à donner.

joueur

Utilisateur

Utilisateur Discord cible.

Fonctionnement

  1. Vérifie que la caisse existe dans lootboxes.

  2. Récupère le lien Discord ↔ personnage dans la table discord_users :

    • discord_id = ID de l’utilisateur Discord.

  3. Plusieurs cas :

    • Aucun personnage trouvé → le bot répond :

      • “Le joueur doit se connecter au serveur au moins une fois…”

    • Un seul personnage → attribution directe dans lootbox_rewards.

    • Plusieurs personnages :

      • Le bot affiche un select menu listant les personnages.

      • Une fois le personnage choisi, la caisse est ajoutée à ce personnage.


/removebox

Retirer une caisse non ouverte liée à un Discord.

Options

Nom
Type
Obligatoire
Description

discordid

Texte

ID Discord du joueur cible.

Fonctionnement

  • Récupère tous les identifier liés à ce discord_id dans discord_users.

  • Pour chaque identifier, cherche les caisses non réclamées dans lootbox_rewards.

  • Propose un ou plusieurs select menus pour choisir quelle caisse retirer.

  • L’action finale (suppression / update de reward) est gérée par componentHandler.js.


🎟️ Gestion du Season Pass

Toutes les commandes Season Pass sont également réservées aux IDs de config.perm.

/createsaison

Créer une nouvelle saison de Saison Passe.

Fonctionnement

  • Ouvre un modal contenant :

    • Nom de la saison

    • Description

    • Niveau max (max_level)

    • Date de début

    • Date de fin

  • Insère ces informations dans lootbox_saisonpasse.


/viewsaison

Voir et gérer les saisons existantes (avec pagination).

Fonctionnement

  • Récupère toutes les saisons depuis lootbox_saisonpasse.

  • Affiche un embed paginé (par exemple, 5 saisons par page) :

    • ID, nom, dates, max_level, statut actif/terminé.

  • Ajoute des boutons :

    • ⬅️ / ➡️ pour naviguer entre les pages.

  • Ajoute éventuellement des boutons de gestion :

    • Modifier une saison

    • Supprimer une saison

  • Les interactions sont gérées côté componentHandler.js.


/addsaisonreward

Ajouter une récompense à une saison.

Options

Nom
Type
Obligatoire
Description

saison_id

Nombre

ID de la saison visant la reward.

Fonctionnement

  • Vérifie que la saison existe (lootbox_saisonpasse).

  • Ouvre une interface (select + modal) pour :

    • choisir le niveau de la récompense,

    • définir :

      • label (nom affiché),

      • reward_type (type de reward),

      • reward_value (valeur associée),

      • amount (quantité),

      • challenge_key (optionnel, si lié à un défi).

  • Insère dans lootbox_saisonpass_rewards.


/viewsaisonrewards

Voir et gérer les récompenses d’une saison.

Options

Nom
Type
Obligatoire
Description

saison_id

Nombre

ID de la saison à inspecter.

Fonctionnement

  • Récupère les rewards liées à la saison dans lootbox_saisonpass_rewards.

  • Affiche un embed paginé avec :

    • niveau, nom, type, valeur, quantité, challenge lié éventuel.

  • Ajoute des boutons :

    • ⬅️ / ➡️ pour la pagination,

    • ✏️ Modifier pour éditer une reward,

    • 🗑️ Supprimer pour la supprimer.

  • Les actions sont gérées côté componentHandler.js et interactionHandler.js.


/addchallenge

Ajouter un nouveau challenge de Saison Passe.

Fonctionnement

  • Ouvre un modal avec :

    • challenge_key → clé unique (ex: kill_player, win_paintball),

    • challenge_label → nom affiché dans l’UI du Season Pass,

    • challenge_data → objectif numérique (ex: 10, 50, etc.).

  • Insère un nouveau challenge dans lootbox_saisonpass_challenges.


/listchallenge

Lister tous les challenges disponibles.

Fonctionnement

  • Récupère tous les challenges :

    • id, key, label, type, data.

  • Affiche un embed paginé :

    • Chaque challenge est affiché avec ses infos.

  • Boutons :

    • ⬅️ / ➡️ pour naviguer,

    • éventuellement un bouton pour changer l’ordre (par type, par date, etc.).

  • La construction d’embed est factorisée pour être réutilisée dans d’autres interactions.


/viewsaisonlogs

Consulter les logs de progression / récompenses du Season Pass.

Fonctionnement

  • Ouvre un select menu proposant :

    • Discord ID

    • CFX Identifier

  • Une fois le type choisi, le bot demande l’ID ou l’identifier.

  • Récupère dans lootbox_saisonpass_logs toutes les entrées associées au joueur (progression, niveaux atteints, récompenses prises, etc.).

  • Affiche un ou plusieurs embeds avec les logs.


🛡️ Modération / Lien compte

/ban_discord

Bannir / débannir un utilisateur au niveau de la logique DB (pas un ban Discord classique).

Fonctionnement

  • Ouvre un select menu :

    • Discord ID

    • CFX Identifier

  • Selon le choix :

    • Le bot demande la valeur (ID Discord ou identifier CFX).

    • Cherche dans discord_users et/ou la table de bans.

    • Applique un ban logique (ou un débannissement) selon l’action choisie.

  • Utilisé pour synchroniser les sanctions entre Discord et la base GuerreRP.


🔁 Résumé d’utilisation

En pratique, le staff utilisera :

  • Pour tester le bot :

    • /ping

  • Pour l’accueil & rôles :

    • /rolebutton

    • (welcome & DM auto via events)

  • Pour les lootboxes :

    • /createbox → créer

    • /editbox → modifier

    • /duplicatebox → dupliquer

    • /infobox → voir une caisse

    • /listboxes → lister

    • /givebox → donner une caisse à un joueur

    • /removebox → retirer une caisse non ouverte

  • Pour le Season Pass :

    • /createsaison → créer une saison

    • /viewsaison → voir les saisons

    • /addsaisonreward → ajouter une reward

    • /viewsaisonrewards → gérer les rewards

    • /addchallenge → créer un challenge

    • /listchallenge → lister les challenges

    • /viewsaisonlogs → consulter les logs d’un joueur

  • Pour la modération liée à la DB :

    • /ban_discord → ban / unban logique par Discord ID ou CFX.

Cette page sert de référence rapide pour tout le staff qui utilise le bot.

Mis à jour

Ce contenu vous a-t-il été utile ?