Variables

Le système de variables permet d'insérer dynamiquement des informations contextuelles dans vos messages. Ces variables suivent un format spécifique et peuvent être enrichies avec des paramètres et modificateurs pour personnaliser l'affichage.

Syntaxe générale

  • {variable} : Variable simple
  • {variable:paramètres} : Variable avec paramètres
  • {variable?modifieur} : Variable avec modificateur
  • {variable:paramètres?modifieur} : Variable avec paramètres et modificateur

Paramètres

Les paramètres permettent d'affiner le comportement d'une variable en lui transmettant des informations complémentaires. Ils s'ajoutent après le nom de la variable, chacun étant précédé du symbole deux-points :.

Chaque paramètre suit la structure nom=valeur. Lorsque vous souhaitez utiliser plusieurs paramètres simultanément, ajoutez simplement un nouveau : suivi du paramètre suivant.

Exemple :

  • {level.rank:user_id=123456789012345678}
  • {user.created_at:user_id=123456789012345678:format=DD MMMM YYYY}

Modificateurs

Les modificateurs permettent de transformer l'affichage des variables. Ils s'ajoutent après le nom de la variable ou après le ou les paramètres, précédés du symbole point d'interrogation ?.

Les modificateurs ne sont pas cumulables sur une même variable.

ModificateurDescriptionExemple
uppercaseTexte en majuscules{user.username?uppercase} → DRAFTBOT
lowercaseTexte en minuscules{server.name?lowercase} → draftbot support
capitalizePremière lettre majuscule{user.username?capitalize} → Draftbot
ordinalNombre ordinal{level.rank?ordinal} → 3ème
maxLength=NLimitation de longueur{suggest.title?maxLength=50}
formatNumberFormat de nombre localisé{money?formatNumber} → 1 234

Variables de base

Utilisateur

VariableDescriptionExemple
{user}Mention de l'utilisateur@draftbot
{user.id}Identifiant de l'utilisateur318312854816161792
{user.username}Pseudo du comptedraftbot
{user.globalname}Nom affiché globalDraftBot
{user.nickname}Surnom sur le serveur❕DraftBot
{user.tag}Tag (déprécié)draftbot#0535
{user.rolecount}Nombre de rôles2
{user.created_at}Date de création du compte28/05/2017
{user.joined_at}Date d'arrivée sur le serveur11/03/2018

Paramètres :

  • user_id : Identifiant d'un utilisateur.
  • format : Format d'affichage de la date (par défaut : L). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY.

Serveur

VariableDescriptionExemple
{server}Nom du serveurDraftBot Support
{server.id}Identifiant du serveur422112414964908042
{server.name}Nom du serveurDraftBot Support
{server.description}Description du serveurServeur officiel et Support de DraftBot
{server.membercount}Nombre total de membres65536
{server.humancount}Nombre de membres humains65535
{server.botcount}Nombre de bots1
{server.rolecount}Nombre de rôles69
{server.channelcount}Nombre de salons20
{server.boosts.level}Niveau de boosts du serveur2
{server.boosts.count}Nombre de boosts du serveur27
{server.created_at}Date de création du serveur10/03/2018

Paramètres :

  • format : Format d'affichage de la date (par défaut : L). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY.

Salon

VariableDescriptionExemple
{channel}Mention du salon#bavardage➖🐱
{channel.id}Identifiant du salon700375095297835096
{channel.name}Nom du salonbavardage➖🐱
{channel.created_at}Date de création16/04/2020
{channel.parent}Mention du salon parent#▬▬▬ Communauté ▬▬▬
{channel.parent.id}ID du salon parent700370977019658332
{channel.parent.name}Nom du salon parent▬▬▬ Communauté ▬▬▬
{channel.parent.created_at}Date de création parent16/04/2020

Paramètres :

  • channel_id : Identifiant d'un salon.
  • format : Format d'affichage de la date (par défaut : L). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY.

Rôle

VariableDescriptionExemple
{role}Mention du rôle@Equipe
{role.id}ID du rôle698990778084491314
{role.name}Nom du rôleEquipe
{role.color}Couleur hexadécimale#FD9A60
{role.position}Position du rôle5
{role.membercount}Nombre de membres13
{role.created_at}Date de création12/04/2020

Paramètres :

  • role_id : Identifiant d'un rôle.
  • format : Format d'affichage de la date (par défaut : L). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY.

Le paramètre role_id est obligatoire.

Temporalité

VariableDescriptionExemple
{date}Date actuelle28/05/2017
{time}Heure actuelle11:01
{timestamp}Timestamp Discord1495962098

Paramètres (date et time) :

  • format : Format d'affichage de la date ou de l'heure (par défaut : L ou LT). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY ou hh:mm a. La liste des différents formats est disponible sur la documentation de la bibliothèque dayjs.

Paramètres (timestamp) :

  • style : Style d'affichage du timestamp. Vous pouvez retrouver la liste complète sur la documentation de Discord.

Variables par modules

Économie

VariableDescriptionExemple
{money}Argent1 234
{money.record}Record d'argent5 678
{money.currency_icon}Icône de la devise💰
{money.rank}Position dans le classement3
{money.next_user}Membre précédent dans le classement@DraftBot
{money.next_user.id}Identifiant du membre précédent dans le classement318312854816161792
{money.next_user.money}Quantité d'argent du membre précédent dans le classement2 500
{money.next_user.money_diff}Différence d'argent avec le membre précédent dans le classement2 500
{money.to_position:position=N}Argent nécessaire pour atteindre la position N dans le classement1 200

Paramètres :

  • user_id : Identifiant d'un utilisateur.

Niveaux

VariableDescriptionExemple
{level}Niveau25
{level.rank}Position dans le classement5
{xp}Expérience totale12 500
{xp.current_level}Expérience du niveau actuel250
{xp.next_level}Expérience nécessaire pour atteindre le niveau suivant750
{xp.to_level:level=N}Expérience nécessaire pour atteindre le niveau N15 000
{xp.next_user}Membre précédent dans le classement@DraftBot
{xp.next_user.id}Identifiant du membre précédent dans le classement318312854816161792
{xp.next_user.xp}Quantité d'expériene du membre précédent dans le classement2 500
{xp.next_user.xp_diff}Différence d'expérience avec le membre précédent dans le classement15 389
{xp.next_user.level}Niveau du membre précédent dans le classement2 500
{xp.next_user.level_diff}Différence de niveaux avec le membre précédent dans le classement2
{xp.to_position:position=N}Expérience nécessaire pour atteindre la position N dans le classement5,000

Paramètres :

  • user_id : Identifiant d'un utilisateur.

Récompenses de niveaux

VariableDescriptionExemple
{level.reward}Récompense reçueRôle VIP
{level.reward.next_level}Niveaux avant la prochaine récompense5
{level.reward.next_xp}Expérience avant la prochaine récompense2 500

Les variables de niveaux sont aussi disponibles dans les messages de récompenses de niveaux.

Tickets

VariableDescriptionExemple
{ticket.number}Numéro de ticket42

Suggestions

VariableDescriptionExemple
{suggest.title}Titre de la suggestionSystème de questionnaire
{suggest.count}Nombre de suggestions en cours3
{suggest.max}Nombre maximum de suggestions5

Récompenses de suggestions

VariableDescriptionExemple
{suggest.reward}Récompense reçue100 💰
{suggest.target.type}Type de statutacceptées
{suggest.target.count}Nombre de suggestions10

Commandes personnalisées

VariableDescriptionExemple
{birthday.date}Date de naissance15 mars
{birthday.next}Prochain anniversaireDans 2 mois
{age}Âge de l'utilisateur25 ans

Paramètres :

  • user_id : Identifiant d'un utilisateur.

Les variables d'économie et de niveaux sont aussi disponibles dans les commandes personnalisées.

Starboards

VariableDescriptionExemple
{starboard.emoji}Emoji du starboard⭐
{starboard.emoji.count}Nombre de réactions15
{starboard.message.url}Lien du messagehttps://discord.com/...

Signalements

VariableDescriptionExemple
{report.target}Membre signalé@draftman
{report.target_message.url}Lien du message signaléhttps://discord.com/...
{report.reason}Motif du signalementSpam

Anniversaire

VariableDescriptionExemple
{birthday.user}Membre(s) fêtant leur anniversaire@John, @Jane
{birthday.role}Rôle temporaire d'anniversaire@Anniversaire
{birthday.gifts}Récompenses données500 💰, Rôle VIP

Statistiques

VariableDescriptionExemple
{stats.count}Statistique du salon1 250

Cette variable doit obligatoirement être présente dans le format du salon de statistiques.

Salons vocaux temporaires

VariableDescriptionExemple
{privateroom.index}Numérotation du salon5
{privateroom.random_word}Mot aléatoire prédéfinitrampoline
{privateroom.custom_word}Mot aléatoire personnalisélicorne

Route de l'infini

VariableDescriptionExemple
{infinite_road.number}Nombre indiqué4956
{infinite_road.discussion}Discussion du membre (s'il y en a une)bientôt les 5k

Récompenses route de l'infini

VariableDescriptionExemple
{infinite_road.number}Nombre indiqué4956
{infinite_road.reward}Récompense gagnée lors du passage d'un palier5 000 💰

Calendrier de l'avent

VariableDescriptionExemple
{calendar.day}Numéro du jour de la case ouverte15

Ouvertures consécutives du calendrier

VariableDescriptionExemple
{calendar.day}Numéro du jour de la case ouverte15
{calendar.streak.count}Nombre d'ouvertures consécutives actuelles7
{calendar.streak.record}Record d'ouvertures consécutives du membre15
{calendar.streak.reward}Nom de la récompense obtenueRôle "Fidèle"

Variables de notifications sociales

YouTube

VariableDescriptionExemple
{video.author}Nom de la chaîneDraftBot
{video.title}Titre de la vidéoComment utiliser DraftBot
{video.url}Lien de la vidéohttps://youtube.com/...

Twitch

VariableDescriptionExemple
{stream.author}Nom de la chaîneStreamerName
{stream.title}Titre du liveLive de développement
{stream.game}Jeu en liveJust Chatting
{stream.url}Lien du livehttps://twitch.tv/...
{stream.start_at}Date de débutil y a 2 heures
{stream.tags}Tags du livefrançais, développement

Paramètres (start_at) :

  • format : Format d'affichage de la date ou de l'heure (par défaut : relative). Accepte relative pour un affichage relatif (ex : "il y a 2 heures") ou un format personnalisé comme DD/MM/YYYY ou hh:mm a. La liste des différents formats est disponible sur la documentation de la bibliothèque dayjs.

Paramètres (tags) :

  • separator : Caractères de séparation des différents tags du stream (par défaut : , )

Reddit

VariableDescriptionExemple
{post.subreddit}Nom du subredditr/discord
{post.title}Titre du postQuestion sur DraftBot
{post.description}Description du postComment configurer...
{post.url}Lien du posthttps://reddit.com/...

Flux RSS

VariableDescriptionExemple
{feed.name}Nom du fluxBlog DraftBot
{feed.url}Lien du fluxhttps://draftbot.fr/...