☰
🌙
Introduction
Via l'App
Via le code
Lire
Modifier
Types
Exemples
Bonnes pratiques
Récapitulatif

⚙️ Panneau Admin — Configuration personnalisée

Créez des panneaux de configuration avec des champs personnalisés pour votre bot — via l'application ou via le code

Introduction

Le Panneau Admin vous permet de créer des panneaux de configuration personnalisés pour votre bot. Chaque panneau contient un ou plusieurs champs (texte, nombre, checkbox, mot de passe, etc.) dont les valeurs sont accessibles depuis le code de votre bot.

Onglet Panneau Admin sans panneau créé : message « Aucun panneau admin » et bouton « Créer un panneau »
L'onglet Panneau Admin d'un bot neuf : un panneau se crée ici ou par AdminPanel.setPanel().

📱 Méthode 1 : Via l'application

Créez vos panneaux directement depuis l'onglet Panneau Admin de votre bot dans l'application BotStrike. Interface visuelle, simple et rapide.

💻 Méthode 2 : Via le code

Définissez vos panneaux directement dans le code de votre bot avec AdminPanel.setPanel(). Plus flexible, permet de créer des configurations avancées.

ℹ Les deux méthodes sont compatibles :
• Un panneau créé via l'app est accessible dans le code avec AdminPanel.getFieldValue()
• Un panneau créé via le code apparaît dans l'onglet Panneau Admin de l'app
• Les valeurs modifiées depuis l'app ou le code sont synchronisées

Utilité

Cas d'usageDescription
Clés APIStockez vos clés API tierces (OpenAI, Stripe, etc.) de manière sécurisée
Admin IDConfigurez l'ID Telegram de l'administrateur du bot
OptionsMode maintenance, messages personnalisés, limites, etc.
Dashboard rapideAffichez et modifiez des valeurs importantes depuis l'app mobile

📱 Méthode 1 : Créer via l'application

La méthode la plus simple pour créer un panneau admin. Tout se fait dans l'interface de l'application BotStrike, sans écrire de code.

Étape 1 : Accéder à l'onglet Panneau Admin

1. Ouvrez votre bot dans l'application BotStrike (tapez sur le bot dans la liste)

2. En haut de l'écran, vous verrez une barre d'onglets : Dashboard, Commandes, Bibliothèques… Faites glisser vers la droite.

3. L'onglet Panneau Admin (icône ⚙️) est situé vers la fin de la barre. Tapez dessus.

💡 Premier accès : Si c'est la première fois, vous verrez un écran vide avec le message « Aucun panneau configuré ». C'est normal — vous allez en créer un.

Étape 2 : Créer un nouveau panneau

Appuyez sur le bouton bleu « + Créer un panneau » en bas de l'écran. Une fenêtre de dialogue s'ouvre avec les champs suivants :

ChampDescriptionExemple
Nom du panneauIdentifiant unique (lettres, chiffres, tirets, underscore). Ce nom sera utilisé dans le code pour accéder au panneau. Ne peut pas être modifié après création.ApiKeys
TitreTitre affiché dans l'interface (peut contenir des espaces et accents)Clés API
DescriptionTexte court affiché sous le titre pour expliquer le rôle du panneauConfigurez vos API tierces
IcôneChoisissez parmi 10 icônes dans le menu déroulantAPI

Icônes disponibles :

Settings Key Person Lock Dashboard Analytics Notification Message Payment API

Étape 3 : Ajouter des champs au panneau

Après avoir rempli les informations du panneau, appuyez sur « Ajouter un champ ». Pour chaque champ, remplissez :

PropriétéObligatoireDescriptionExemple
Nom✅ OuiIdentifiant technique (UPPER_SNAKE_CASE recommandé). C'est ce nom que vous utiliserez dans le code via getPanelValues().OPENAI_KEY
Titre✅ OuiLibellé visible dans l'interface au-dessus du champClé OpenAI
Type✅ Ouistring, integer, float, text (multi-lignes), password (masqué) ou checkbox (on/off)password
Description❌ NonTexte d'aide affiché en petit sous le champVotre clé secrète OpenAI
Placeholder❌ NonTexte grisé affiché quand le champ est videsk-...

Vous pouvez ajouter autant de champs que nécessaire. Chaque champ apparaît dans la liste avec une icône de type et un bouton ✕ pour le supprimer.

💡 Types de champs :
• string → champ texte simple (1 ligne)
• integer → champ numérique (entiers uniquement, clavier numérique)
• float → champ numérique (décimaux acceptés)
• text → zone de texte multi-lignes (3-4 lignes visibles)
• password → champ masqué (les caractères sont remplacés par des •••)
• checkbox → interrupteur on/off (true/false)

Étape 4 : Valider et commencer à utiliser

Appuyez sur « Créer » — le panneau apparaît immédiatement dans la liste avec :

  • Un header coloré avec l'icône choisie et le titre
  • Les champs avec leurs types respectifs (champ texte, switch pour checkbox, champ masqué pour password…)
  • Tous les champs sont en lecture seule par défaut (grisés)

Étape 5 : Remplir et modifier les valeurs

Les champs sont verrouillés par défaut. Pour les modifier :

  1. Appuyez sur l'icône crayon ✏️ dans le coin supérieur droit du header du panneau
  2. Les champs deviennent éditables (le fond change, les curseurs apparaissent)
  3. Remplissez ou modifiez les valeurs
  4. Appuyez sur le bouton « Sauvegarder » qui apparaît en bas
  5. Les champs se re-verrouillent automatiquement

Vous pouvez aussi ajouter de nouveaux champs pendant le mode édition en tapant « Ajouter un champ ».

⚠️ Verrouillage automatique : Après chaque sauvegarde, les champs repassent en lecture seule. Ce mécanisme protège contre les modifications accidentelles. Cliquez à nouveau sur ✏️ pour re-modifier.

Exemple concret n°1 : Clé API + Mode maintenance

📋 Scénario : Vous voulez stocker une clé OpenAI et un mode maintenance pour votre bot.

Dans l'application :
1. Onglet Panneau Admin → bouton « + Créer un panneau »
2. Nom : BotConfig / Titre : Configuration du bot / Icône : Settings
3. Ajouter un champ → Nom : OPENAI_KEY / Titre : Clé OpenAI / Type : password
4. Ajouter un champ → Nom : MAINTENANCE / Titre : Mode maintenance / Type : checkbox
5. Cliquer Créer
6. ✏️ → Remplir la clé OpenAI → cocher ou décocher Maintenance → Sauvegarder

Dans le code du bot :
JavaScript
Python
// Lire les valeurs configurées dans l'app
var config = AdminPanel.getPanelValues("BotConfig");

if (config.MAINTENANCE) {
  Bot.sendMessage("🔧 Bot en maintenance !");
  return;
}

// Utiliser la clé OpenAI
var apiKey = config.OPENAI_KEY;
if (!apiKey) {
  Bot.sendMessage("❌ Clé OpenAI non configurée. Allez dans Panneau Admin → BotConfig.");
  return;
}

Bot.sendMessage("✅ Bot prêt ! Clé API configurée.");
# Lire les valeurs configurées dans l'app
config = AdminPanel.getPanelValues("BotConfig")

if config.get("MAINTENANCE"):
    Bot.sendMessage("🔧 Bot en maintenance !")
else:
    api_key = config.get("OPENAI_KEY")
    if not api_key:
        Bot.sendMessage("❌ Clé OpenAI non configurée. Allez dans Panneau Admin → BotConfig.")
    else:
        Bot.sendMessage("✅ Bot prêt ! Clé API configurée.")

Exemple concret n°2 : Configuration multi-langue

📋 Scénario : Vous avez un bot qui doit pouvoir changer de langue et de message d'accueil via l'app, sans toucher au code.

Dans l'application :
1. Créer un panneau → Nom : LangConfig / Titre : Langue & Messages / Icône : Message
2. Champ 1 : Nom : DEFAULT_LANG / Titre : Langue par défaut / Type : string / Placeholder : fr, en, es...
3. Champ 2 : Nom : WELCOME_TEXT / Titre : Message de bienvenue / Type : text
4. Champ 3 : Nom : GOODBYE_TEXT / Titre : Message d'au revoir / Type : text
5. Créer → ✏️ → Remplir les messages → Sauvegarder
JavaScript
Python
// Commande /start — utilise le message configurable
var lang = AdminPanel.getPanelValues("LangConfig");

var welcome = lang.WELCOME_TEXT || "Bienvenue !";
Bot.sendMessage(welcome);

// Commande /bye
var bye = AdminPanel.getFieldValue({
  panel_name: "LangConfig",
  field_name: "GOODBYE_TEXT"
}) || "Au revoir !";
Bot.sendMessage(bye);
# Commande /start — utilise le message configurable
lang = AdminPanel.get_panel_values("LangConfig")

welcome = lang.get("WELCOME_TEXT") or "Bienvenue !"
bot.send(welcome)

# Commande /bye
bye = AdminPanel.get_field_value({
    "panel_name": "LangConfig",
    "field_name": "GOODBYE_TEXT"
}) or "Au revoir !"
bot.send(bye)
✅ Lien « En savoir plus » : Un lien bleu « En savoir plus » est visible en haut de l'onglet Panneau Admin pour accéder directement à cette documentation.

💻 Méthode 2 : Créer via le code

Utilisez AdminPanel.setPanel() pour définir un panneau avec ses champs directement dans le code de votre bot.

Syntaxe

AdminPanel.setPanel({
  panel_name: "NomDuPanneau",
  data: { ... },    // Configuration du panneau
  force: false      // true = réinitialise les valeurs des champs
});

Structure de data

PropriétéTypeDescription
titlestringTitre affiché du panneau
descriptionstringDescription courte
iconstringIcône : "key", "settings", "person", "lock", "dashboard", "analytics", "notification", "message", "payment", "api"
indexnumberOrdre d'affichage (0 = premier)
button_titlestringTexte du bouton Sauvegarder (défaut: "SAVE")
fieldsarrayListe des champs du panneau

Exemple complet

JavaScript
Python
// Créer un panneau "AdminInfo" avec 3 champs
var panel = {
  title: "Configuration Admin",
  description: "Paramètres de l'administrateur du bot",
  icon: "key",
  index: 0,
  button_title: "SAUVEGARDER",
  fields: [
    {
      name: "ADMIN_ID",
      title: "ID Admin Telegram",
      description: "Votre ID Telegram pour recevoir les notifications",
      type: "string",
      placeholder: "Ex: 123456789"
    },
    {
      name: "MAINTENANCE_MODE",
      title: "Mode maintenance",
      description: "Activer pour bloquer les commandes utilisateur",
      type: "checkbox",
      value: false
    },
    {
      name: "WELCOME_MSG",
      title: "Message de bienvenue",
      description: "Message envoyé aux nouveaux utilisateurs",
      type: "text",
      placeholder: "Bienvenue sur notre bot !"
    }
  ]
};

AdminPanel.setPanel({
  panel_name: "AdminInfo",
  data: panel
});
# Créer un panneau "AdminInfo" avec 3 champs
panel = {
    "title": "Configuration Admin",
    "description": "Paramètres de l'administrateur du bot",
    "icon": "key",
    "index": 0,
    "button_title": "SAUVEGARDER",
    "fields": [
        {
            "name": "ADMIN_ID",
            "title": "ID Admin Telegram",
            "description": "Votre ID Telegram pour recevoir les notifications",
            "type": "string",
            "placeholder": "Ex: 123456789"
        },
        {
            "name": "MAINTENANCE_MODE",
            "title": "Mode maintenance",
            "description": "Activer pour bloquer les commandes utilisateur",
            "type": "checkbox",
            "value": False
        },
        {
            "name": "WELCOME_MSG",
            "title": "Message de bienvenue",
            "description": "Message envoyé aux nouveaux utilisateurs",
            "type": "text",
            "placeholder": "Bienvenue sur notre bot !"
        }
    ]
}

AdminPanel.setPanel({
    "panel_name": "AdminInfo",
    "data": panel
})
ℹ force: false (défaut) : Les anciennes valeurs des champs sont conservées. Si vous modifiez la structure (ajout/suppression de champs), les valeurs existantes des champs qui n'ont pas changé sont préservées.
⚠️ force: true : Toutes les valeurs sont réinitialisées aux valeurs par défaut définies dans data. Utilisez avec précaution.

Lire les valeurs

Lire un seul champ

Utilisez AdminPanel.getFieldValue() pour lire la valeur d'un champ spécifique.

JavaScript
Python
var adminId = AdminPanel.getFieldValue({
  panel_name: "AdminInfo",
  field_name: "ADMIN_ID"
});

Bot.sendMessage("Admin ID: " + adminId);
admin_id = AdminPanel.get_field_value({
    "panel_name": "AdminInfo",
    "field_name": "ADMIN_ID"
})

Bot.sendMessage("Admin ID: " + str(admin_id))

Lire toutes les valeurs d'un panneau

Utilisez AdminPanel.getPanelValues() pour récupérer toutes les valeurs d'un panneau sous forme d'objet.

JavaScript
Python
var values = AdminPanel.getPanelValues("AdminInfo");

// values = { ADMIN_ID: "123456", MAINTENANCE_MODE: true, WELCOME_MSG: "Bienvenue !" }
Bot.sendMessage("Admin: " + values.ADMIN_ID);
Bot.sendMessage("Maintenance: " + (values.MAINTENANCE_MODE ? "OUI" : "NON"));
values = AdminPanel.get_panel_values("AdminInfo")

# values = {"ADMIN_ID": "123456", "MAINTENANCE_MODE": True, "WELCOME_MSG": "Bienvenue !"}
Bot.sendMessage("Admin: " + str(values["ADMIN_ID"]))
Bot.sendMessage("Maintenance: " + ("OUI" if values["MAINTENANCE_MODE"] else "NON"))

Modifier les valeurs

Utilisez AdminPanel.setFieldValue() pour modifier la valeur d'un champ depuis le code.

JavaScript
Python
// Mettre à jour l'ID admin
var result = AdminPanel.setFieldValue({
  panel_name: "AdminInfo",
  field_name: "ADMIN_ID",
  value: String(user.id)
});

Bot.sendMessage(result ? "✅ ID admin mis à jour" : "❌ Erreur");

// Activer le mode maintenance
AdminPanel.setFieldValue({
  panel_name: "AdminInfo",
  field_name: "MAINTENANCE_MODE",
  value: true
});
# Mettre à jour l'ID admin
result = AdminPanel.set_field_value({
    "panel_name": "AdminInfo",
    "field_name": "ADMIN_ID",
    "value": str(user["id"])
})

Bot.sendMessage("✅ ID admin mis à jour" if result else "❌ Erreur")

# Activer le mode maintenance
AdminPanel.set_field_value({
    "panel_name": "AdminInfo",
    "field_name": "MAINTENANCE_MODE",
    "value": True
})
✅ Synchronisation : Les modifications faites via le code sont immédiatement visibles dans l'onglet Panneau Admin de l'application, et vice versa.

Types de champs

Chaque champ d'un panneau peut avoir l'un des types suivants :

TypeAffichageDescription
stringChamp texte (1 ligne)Texte court : nom, ID, URL, etc.
integerChamp numériqueNombre entier. Clavier numérique sur mobile.
floatChamp numériqueNombre décimal.
textZone de texte (multi-lignes)Texte long : messages, descriptions, etc.
passwordChamp masquéValeur cachée (●●●). Pour clés API, tokens, etc.
checkboxInterrupteur (switch)Booléen : true/false. Mode maintenance, options on/off.

Propriétés d'un champ

PropriétéTypeRequisDescription
namestring✅Identifiant unique du champ (ex: "API_KEY")
titlestring—Titre affiché (défaut: name)
descriptionstring—Texte d'aide sous le champ
typestring—Type du champ (défaut: "string")
valueany—Valeur par défaut
placeholderstring—Texte fantôme dans le champ vide
hiddenboolean—Masquer le champ dans l'interface (défaut: false)

Exemples complets

Exemple 1 : Mode maintenance avec notification admin

JavaScript
Python
// Commande /start — vérifie le mode maintenance
var maintenance = AdminPanel.getFieldValue({
  panel_name: "AdminInfo",
  field_name: "MAINTENANCE_MODE"
});

if (maintenance) {
  Bot.sendMessage("🔧 Le bot est en maintenance. Revenez plus tard !");
  return;
}

var welcomeMsg = AdminPanel.getFieldValue({
  panel_name: "AdminInfo",
  field_name: "WELCOME_MSG"
}) || "Bienvenue !";

Bot.sendMessage(welcomeMsg);
# Commande /start — vérifie le mode maintenance
maintenance = AdminPanel.get_field_value({
    "panel_name": "AdminInfo",
    "field_name": "MAINTENANCE_MODE"
})

if maintenance:
    Bot.sendMessage("🔧 Le bot est en maintenance. Revenez plus tard !")
else:
    welcome_msg = AdminPanel.get_field_value({
        "panel_name": "AdminInfo",
        "field_name": "WELCOME_MSG"
    }) or "Bienvenue !"

    Bot.sendMessage(welcome_msg)

Exemple 2 : Panneau de configuration API

JavaScript
Python
// Créer un panneau pour les clés API
AdminPanel.setPanel({
  panel_name: "ApiKeys",
  data: {
    title: "Clés API",
    description: "Configurez vos API tierces",
    icon: "api",
    index: 1,
    fields: [
      {
        name: "OPENAI_KEY",
        title: "Clé OpenAI",
        type: "password",
        placeholder: "sk-..."
      },
      {
        name: "MAX_TOKENS",
        title: "Tokens max par requête",
        type: "integer",
        value: 1000
      },
      {
        name: "AI_ENABLED",
        title: "Activer l'IA",
        type: "checkbox",
        value: true
      }
    ]
  }
});

// Utiliser les valeurs dans une commande
var config = AdminPanel.getPanelValues("ApiKeys");
if (config.AI_ENABLED && config.OPENAI_KEY) {
  // Appeler l'API OpenAI avec config.OPENAI_KEY
  Bot.sendMessage("🤖 IA activée (max " + config.MAX_TOKENS + " tokens)");
} else {
  Bot.sendMessage("❌ L'IA n'est pas configurée.");
}
# Créer un panneau pour les clés API
AdminPanel.set_panel({
    "panel_name": "ApiKeys",
    "data": {
        "title": "Clés API",
        "description": "Configurez vos API tierces",
        "icon": "api",
        "index": 1,
        "fields": [
            {
                "name": "OPENAI_KEY",
                "title": "Clé OpenAI",
                "type": "password",
                "placeholder": "sk-..."
            },
            {
                "name": "MAX_TOKENS",
                "title": "Tokens max par requête",
                "type": "integer",
                "value": 1000
            },
            {
                "name": "AI_ENABLED",
                "title": "Activer l'IA",
                "type": "checkbox",
                "value": True
            }
        ]
    }
})

# Utiliser les valeurs dans une commande
config = AdminPanel.get_panel_values("ApiKeys")
if config["AI_ENABLED"] and config["OPENAI_KEY"]:
    Bot.sendMessage("🤖 IA activée (max " + str(config["MAX_TOKENS"]) + " tokens)")
else:
    Bot.sendMessage("❌ L'IA n'est pas configurée.")

Exemple 3 : Panneau e-commerce avec champs cachés

JavaScript
Python
// Commande /setup — Panneau boutique avec prix et limites
AdminPanel.setPanel({
  panel_name: "ShopConfig",
  data: {
    title: "🛍️ Configuration Boutique",
    description: "Prix, stock et options de la boutique",
    icon: "payment",
    index: 2,
    button_title: "ENREGISTRER",
    fields: [
      {
        name: "ITEM_PRICE",
        title: "Prix d'un article (€)",
        type: "float",
        value: 9.99,
        placeholder: "Ex: 9.99"
      },
      {
        name: "MAX_STOCK",
        title: "Stock maximum",
        type: "integer",
        value: 100
      },
      {
        name: "SHOP_OPEN",
        title: "Boutique ouverte",
        description: "Désactivez pour fermer la boutique temporairement",
        type: "checkbox",
        value: true
      },
      {
        name: "STRIPE_KEY",
        title: "Clé Stripe",
        type: "password",
        placeholder: "sk_live_..."
      },
      {
        name: "INTERNAL_COUNTER",
        title: "Compteur interne",
        type: "integer",
        value: 0,
        hidden: true  // Invisible dans l'app, mais accessible via le code
      }
    ]
  }
});

// Commande /buy — Utilise les valeurs du panneau
var shop = AdminPanel.getPanelValues("ShopConfig");

if (!shop.SHOP_OPEN) {
  Bot.sendMessage("🚫 La boutique est fermée actuellement.");
  return;
}

// Incrémenter le compteur caché
var count = shop.INTERNAL_COUNTER || 0;
AdminPanel.setFieldValue({
  panel_name: "ShopConfig",
  field_name: "INTERNAL_COUNTER",
  value: count + 1
});

Bot.sendMessage(
  "🛒 Article ajouté au panier !\n" +
  "💰 Prix : " + shop.ITEM_PRICE + " €\n" +
  "📦 Stock restant : " + shop.MAX_STOCK
);
# Commande /setup — Panneau boutique avec prix et limites
AdminPanel.set_panel({
    "panel_name": "ShopConfig",
    "data": {
        "title": "🛍️ Configuration Boutique",
        "description": "Prix, stock et options de la boutique",
        "icon": "payment",
        "index": 2,
        "button_title": "ENREGISTRER",
        "fields": [
            {
                "name": "ITEM_PRICE",
                "title": "Prix d'un article (€)",
                "type": "float",
                "value": 9.99,
                "placeholder": "Ex: 9.99"
            },
            {
                "name": "MAX_STOCK",
                "title": "Stock maximum",
                "type": "integer",
                "value": 100
            },
            {
                "name": "SHOP_OPEN",
                "title": "Boutique ouverte",
                "description": "Désactivez pour fermer la boutique temporairement",
                "type": "checkbox",
                "value": True
            },
            {
                "name": "STRIPE_KEY",
                "title": "Clé Stripe",
                "type": "password",
                "placeholder": "sk_live_..."
            },
            {
                "name": "INTERNAL_COUNTER",
                "title": "Compteur interne",
                "type": "integer",
                "value": 0,
                "hidden": True  # Invisible dans l'app, mais accessible via le code
            }
        ]
    }
})

# Commande /buy — Utilise les valeurs du panneau
shop = AdminPanel.get_panel_values("ShopConfig")

if not shop["SHOP_OPEN"]:
    Bot.sendMessage("🚫 La boutique est fermée actuellement.")
else:
    # Incrémenter le compteur caché
    count = shop.get("INTERNAL_COUNTER", 0) or 0
    AdminPanel.set_field_value({
        "panel_name": "ShopConfig",
        "field_name": "INTERNAL_COUNTER",
        "value": count + 1
    })

    Bot.sendMessage(
        "🛒 Article ajouté au panier !\n"
        "💰 Prix : " + str(shop["ITEM_PRICE"]) + " €\n"
        "📦 Stock restant : " + str(shop["MAX_STOCK"])
    )
ℹ Les champs hidden: true sont invisibles dans l'interface de l'application mais restent accessibles en lecture et écriture depuis le code. Utile pour stocker des compteurs, des états internes ou des données techniques que l'admin ne doit pas modifier manuellement.

Bonnes pratiques

📋 Conventions de nommage

ÉlémentConventionExemples
Panel namePascalCase ou kebab-caseApiKeys, shop-config
Field nameUPPER_SNAKE_CASEADMIN_ID, MAX_TOKENS

🔒 Sécurité

Utilisez le type password pour les clés API, tokens et secrets. La valeur est masquée (●●●) dans l'interface mais reste lisible en clair dans le code.

💡 Astuces

  • Utilisez hidden: true pour stocker des données internes (compteurs, timestamps, états)
  • Appelez setPanel() dans une commande /setup pour initialiser les panneaux au premier lancement
  • N'utilisez force: true que pour réinitialiser volontairement toutes les valeurs
  • Combinez getFieldValue() avec des valeurs par défaut : AdminPanel.getFieldValue({...}) || "valeur par défaut"
  • Les valeurs sont persistantes — elles survivent aux redémarrages du bot
⚠️ Suppression : La suppression d'un panneau se fait uniquement depuis l'application (bouton 🗑️ dans le header du panneau). Il n'existe pas de méthode deletePanel() dans le code.

Récapitulatif

Méthodes

MéthodeDescription
AdminPanel.setPanel({ panel_name, data, force })Crée ou met à jour un panneau avec ses champs. Retourne true / false.
AdminPanel.getFieldValue({ panel_name, field_name })Retourne la valeur d'un champ, ou null si non trouvé.
AdminPanel.setFieldValue({ panel_name, field_name, value })Modifie la valeur d'un champ. Retourne true / false.
AdminPanel.getPanelValues(panel_name)Retourne toutes les valeurs sous forme d'objet { field_name: value }.
✅ Python : Les méthodes ont des alias snake_case : set_panel(), get_field_value(), set_field_value(), get_panel_values().

Deux méthodes de création

MéthodeAvantages
📱 Via l'applicationSimple, visuel, pas de code nécessaire. Idéal pour des configurations rapides.
💻 Via le codeFlexible, versionnable, configuration avancée avec valeurs par défaut et types précis.
ℹ Note : AdminPanel est disponible pour tous les bots sans installation de bibliothèque. L'objet est injecté automatiquement dans le sandbox de votre bot.