Construire

Variables

Retenir une valeur sous un nom, pour tout le serveur, pour chaque membre ou le temps d'une exécution.

Une Variable retient une valeur sous un nom : l'XP d'un membre, un compteur, un cooldown, le salon choisi pour les annonces. Une valeur à retenir, c'est une Variable.

Trois portées

PortéeUne valeur…Exemple
Serveurpour tout le serveurle salon des annonces choisi avec /setup
Par membrepour chaque membrel'XP de chaque membre, qui monte à chaque message
Temporairele temps de l'exécutionun niveau calculé depuis l'XP, réutilisé dans plusieurs messages

Une valeur du serveur ou d'un membre reste en base jusqu'à ce qu'un Blueprint l'efface, et se voit sur la page Variables du serveur, avec la permission Voir les Variables (Modifier les Variables pour la corriger). Une Variable temporaire disparaît à la fin de l'exécution.

Créer une Variable

Dans un node de Variables, choisis la portée, puis tape un nom nouveau : la Variable se crée. Donne-lui :

  • un type : Nombre, Texte, Oui/Non, Date, Membre, Salon ou Rôle ;
  • une valeur de départ : ce qu'elle vaut tant que personne ne l'a définie, ou après l'avoir effacée (0 pour l'XP) ;
  • pour une Variable du serveur ou d'un membre, se réinitialise après… : au bout de ce délai, la valeur revient à sa valeur de départ. Un cooldown d'une heure, un compteur de la semaine. Avec prolonger à chaque utilisation, le délai repart à chaque lecture ou écriture.

Ces réglages valent pour toute la Variable, dans chaque node du Blueprint. Un autre Blueprint du serveur peut utiliser la même Variable : l'éditeur te propose ses réglages. Les deux doivent lui donner le même type.

Une Variable Membre n'enregistre qu'un membre venu de Discord (celui qui a déclenché l'Event, une option « utilisateur »), jamais un texte : relue plus tard, elle se vérifie avec « a le rôle » en toute sécurité.

Les cinq nodes

NodeFait
Définir une VariableLui donne une valeur. Avec Seulement si elle a une valeur, n'écrit que dans une Variable déjà définie : sinon rien n'est écrit, sans échec, et la sortie Écrite vaut non.
Ajouter à une Variable / Retirer d'une VariableAjoute ou retire un nombre, sans rien perdre même si plusieurs messages arrivent en même temps.
Lire une VariableLit la valeur d'une Variable du serveur ou d'un membre, pour la réutiliser plus loin.
Effacer une VariableLa remet à sa valeur de départ.

Pour une Variable par membre, le champ Membre choisit de qui : vide, c'est celui qui a déclenché l'Event.

Réutiliser une valeur

  • Une Variable du serveur ou d'un membre se réutilise par la sortie du node qui l'a lue ou écrite : « Lire xp ▸ Valeur ». Une Variable Membre, Salon ou Rôle donne la fiche entière (son nom, ses rôles…).
  • Une Variable temporaire se lit partout après le node qui l'a définie : « Temporaires ▸ niveau », écrit {{ temp.niveau }}. Définir une Variable temporaire avec une formule sert de calcul : {{ floor(actions.xp.value / 100) }}.

Un nom calculé

Le nom d'une Variable du serveur ou d'un membre peut contenir une partie calculée : ticket_owner:{{ events.<id>.channel.id }} retient l'auteur de chaque ticket, une valeur par salon. La partie calculée ne peut donner que des lettres, des chiffres, _, : et -.

Limites

Une valeur fait 64 Ko au plus, et les Variables d'un serveur 50 Mo en tout. La page Variables affiche la place utilisée.

La page Variables

Elle montre ce que tes Blueprints ont retenu, en deux onglets :

  • Membres : un tableau, une ligne par membre qui a une valeur, une colonne par Variable de membre. Cherche un membre par son nom, trie par une colonne (un classement d'XP) ; une valeur jamais écrite s'affiche en gris, c'est la valeur de départ. Le menu ⋯ d'une colonne la trie ou ouvre le Blueprint qui la déclare.
  • Serveur : une recherche sur les noms et les valeurs, puis chaque Variable du serveur, son type, les Blueprints qui l'utilisent et sa valeur ; une Variable à nom calculé montre ses trois valeurs les plus récentes ; Afficher tout ouvre toutes ses valeurs, 25 par page, avec une recherche dans leurs noms et leurs valeurs.

La page est en lecture. Passer en mode édition (avec la permission Modifier les Variables) explique d'abord ce que ça change, puis rend les valeurs modifiables : chaque correction s'applique tout de suite, aux Blueprints en ligne compris, et va au journal du serveur avec l'ancienne et la nouvelle valeur. La corbeille d'un membre efface ses valeurs ; Effacer les valeurs, dans le menu d'une colonne ou sous une Variable du serveur, efface toutes celles d'une Variable : chacun repart de sa valeur de départ. Terminer repasse en lecture.

Une Variable qu'aucun Blueprint n'utilise plus est marquée plus utilisée : l'éditeur retire sa déclaration quand plus aucun node ne la nomme, et le Blueprint en ligne la garde jusqu'au prochain déploiement. Ses valeurs restent en base ; Supprimer la Variable les efface et elle disparaît de la page.