Tous les articles

Profils de membres et doubles comptes sur Discord : stocker les IGN et les personnages alt

L’équipe CordBase

Pour stocker les profils des membres, leurs IGN ou leurs personnages alt sur Discord, crée une table avec une ligne par membre (IGN, grade, alts et un champ de membre Discord) que les membres remplissent avec une commande slash. Tout le monde peut ensuite consulter un profil par membre, par IGN ou par nom d’alt. CordBase, que nous développons, le fait avec l’offre Free.

Les guildes gardent en général ces infos dans un message épinglé, des notes d’officiers ou un tableur que personne n’ouvre, et « c’est l’alt de qui, Kaelmage ? » revient dans le chat chaque semaine. Ce guide met la liste dans Discord. Une précision d’abord : il n’y a pas de formulaire d’inscription. Les membres lancent /profile add et choisissent les options à remplir.

Ce que tu auras à la fin

  • Une commande /profile avec les actions add, query, view, update et delete.
  • Une ligne par membre : IGN, membre Discord, grade, alts, rôle et notes.
  • Des recherches par membre, par IGN ou par nom d’alt.
  • Des permissions pour décider qui peut ajouter, modifier et supprimer des profils.

Étape 1 : créer la table

Aucun modèle tout prêt n’a de colonnes IGN ou alts. Le plus proche est Annuaire des membres, mais sa première colonne de texte est le fuseau horaire, et c’est cette colonne que le sélecteur row parcourt. Construis donc celle-ci de zéro.

  1. Connecte-toi sur cordbase.gg avec Discord, choisis ton serveur et ajoute le bot quand le tableau de bord le demande.
  2. Crée une nouvelle table nommée « Profile ». Le nom de la commande se remplit en profile.
  3. Ajoute les colonnes ci-dessous, dans cet ordre. Enregistre quand c’est fini.
  • IGN : Texte, obligatoire. Mets-la en premier. L’option row propose l’autocomplétion sur la première colonne de texte, donc les membres trouvent un profil en tapant l’IGN.
  • Member : Membre, obligatoire. Les membres se choisissent dans le sélecteur de membres de Discord.
  • Rank : Liste de choix, avec tes propres grades comme options (par exemple Officer, Raider, Trial).
  • Alts : Texte. Choisis un format et tiens-t’y, comme Name (Class), Name (Class).
  • Role : Liste de choix, avec Tank, Healer et DPS ou ce que ton jeu utilise.
  • Notes : Texte.

L’ordre compte, parce que les résultats de query n’affichent que les quatre premières colonnes, et les colonnes ajoutées plus tard vont à la fin. La clé et le type d’une colonne sont verrouillés une fois la table créée, mais tu peux ajouter des colonnes et renommer les libellés (voir la documentation des tables).

Étape 2 : régler les permissions

Les permissions se trouvent sur la page de modification de la table, donc ouvre-la après avoir enregistré. Tant qu’une table n’a aucun rôle défini, chaque membre peut lancer toutes les actions, y compris delete. Règle les rôles comme ça :

  • Donne au rôle que tous les membres ont (par exemple @Member, puisque @everyone ne peut pas être sélectionné) l’accès write. Les membres peuvent alors faire add et update.
  • Donne à ton rôle d’officier l’accès admin, qui ajoute delete.
  • Si tu veux que seuls les officiers saisissent les données, donne aux membres l’accès read et aux officiers l’accès write.

Dès qu’un rôle est défini, les membres qui n’ont aucun des rôles listés ne peuvent plus du tout utiliser la table. Les personnes qui ont la permission « Administrateur » de Discord ont toujours un accès complet.

Sois clair sur ce que veut dire write : ça couvre toutes les lignes, pas seulement celle du membre. Toute personne qui a write peut modifier le profil de n’importe qui, et rien n’empêche un membre d’ajouter deux profils.

Étape 3 : les membres ajoutent leur profil

/profile add ign:Kaelith member:@Mara rank:Raider role:Healer alts:Kaelmage (Mage), Kaelstab (Rogue)

Discord demande d’abord les options obligatoires (IGN et Member), puis les membres ajoutent les options facultatives qu’ils veulent. Rien ne les guide champ par champ, donc épingle la commande exacte dans un salon. Pour modifier un profil, commence à taper dans l’option row et choisis-le dans la liste :

/profile update row:Kaelith alts:Kaelmage (Mage), Kaelstab (Rogue), Kaeltank (Warrior)

Update remplace toute la valeur, donc retape la liste complète des alts avec le nouveau dedans. Les modes Ajouter et Soustraire n’existent que pour les colonnes Nombre, et cette table n’en a pas.

Étape 4 : trouver des gens

  • /profile view row:Kaelith affiche toutes les colonnes, plus qui a créé la ligne et quand elle a été modifiée pour la dernière fois.
  • /profile query member:@Mara trouve le profil d’un membre Discord.
  • /profile query alts:Kaelmage trouve à qui appartient un alt. Les filtres de texte trouvent toute ligne qui contient le texte, sans tenir compte de la casse.
  • /profile query rank:Officer limit:25 liste jusqu’à 25 officiers. Les filtres se combinent, donc rank:Raider role:Healer marche aussi.

Query liste les lignes les plus récentes d’abord, 10 par défaut et 25 au maximum. Les réponses sont publiées dans le salon, donc fais tes recherches là où les autres peuvent les voir.

Variante : une ligne par personnage

Si tu veux que chaque alt ait sa propre classe, son niveau ou son équipement, fais plutôt une table avec une ligne par personnage : IGN, Member, Class et une colonne Oui/Non Main. Ajouter un alt devient alors un simple add, et /profile query member:@Mara limit:25 liste tout ce que joue Mara. Le prix, ce sont les lignes : une table Free en contient 100, et les alts les consomment.

Quand autre chose convient mieux

Un tableur est préférable si tu as besoin de tris, de formules ou de modifications en masse par les officiers. CordBase n’a ni import CSV ni synchronisation Google Sheets.

Un salon forum avec un post par membre convient aux profils avec captures d’écran et longs textes, que les gens lisent plutôt qu’ils ne les cherchent. Une table contient du texte court, pas des images.

Si tu veux des données de personnage récupérées depuis le jeu et tenues à jour sans que personne ne tape rien, utilise un outil qui lit le roster de ta guilde dans le jeu. CordBase ne lit jamais les données des jeux et n’a pas d’API.

Les limites à connaître

  • Free : 2 tables, 100 lignes chacune. Pro (8 $/mois) passe à des tables illimitées et 10 000 lignes par table, et ajoute les vues enregistrées et les modifications groupées.
  • Jusqu’à 25 colonnes par table. La table n’a pas de colonne Nombre, donc il n’y a pas d’action leaderboard. Ajoute une colonne Nombre comme le niveau si tu en veux une.
  • Pas de formulaires d’inscription ni de questions étape par étape pour les membres, et aucune vérification qu’un IGN existe ou appartient bien à ce membre.
  • N’importe quel membre peut lancer /delete-my-data pour supprimer les lignes qu’il a créées via le bot, dans tous les serveurs.

Questions fréquentes

Le bot peut-il guider les membres champ par champ ?

Non. Il n’y a ni formulaire ni questions étape par étape. Les membres lancent /profile add et Discord affiche une option par colonne. Seules les colonnes que tu rends obligatoires (ici IGN et Member) doivent être remplies, les autres peuvent être ignorées.

Je peux limiter les membres à la modification de leur propre profil, ou à un seul profil chacun ?

Pas avec les permissions. Les permissions s’appliquent à toute la table, donc toute personne qui a l’accès en écriture peut modifier n’importe quelle ligne, et un membre peut en ajouter plusieurs. Donne aux membres l’accès en lecture et aux officiers l’accès en écriture si tu veux un contrôle strict, et utilise /profile view pour voir qui a créé une ligne.

Comment les membres savent-ils à qui appartient un alt ?

Lance /profile query alts:<name>. Le filtre trouve tout profil dont le texte alts contient ce nom, sans tenir compte de la casse. Ça ne marche que pour les alts que quelqu’un a saisis dans la colonne alts, car CordBase ne lit pas les données du jeu.