Pour stocker des données pour chaque utilisateurs, nous allons utiliser l’ID discord de l’utilisateur et s’en servir pour identifier la bonne ligne de notre tableau à récupérer.
Pour récupérer l’ID de l’utilisateur dans une fonction nous utiliserons ce code.
@bot.command(name='ID')
async def ID(context)
ID = context.author.id
Dans les dictionnaires que nous allons créer, nous allons stocker les données d’un utilisateur du bots.
le schéma d’un dictionnaire sera toujours le même :
{
'donnee1': 'valeur 1',
'donnee2': 2,
'donnee_vrai_ou_faux': True
}
Dans la pratique nous allons stocker un dictionnaire de ce type pour chaque utilisateur.
Nous allons donc commencer par en créer un vide (appeler ici donnees)
donnees = {}
Avant d’ajouter un nouvelle utilisateur on prendra toujours l’habitude de vérifier qu’il n’y soit pas déja.
donnees = {}
@bot.command(name='AddUser')
async def add_user(context)
global donnees
ID = context.author.id
if ID not in donnees:
donnees[ID] = {
'Variable 1': 10,
'Variable 2': 'jadore les chats',
'Booleen 1':'chocolat'
}
Ici, nous commençons par récupérer la variable globale et l’ID de l’author.
ensuite avec la condition : if ID not in donnees:
nous vérifions que l’utilisateur n’est pas not in n’est pas dans donnees.
Si il n’y est pas, alors nous créons un utilisateur stocké dans donnees[ID] qui contient la ou les variables dont on à besoin.
Pour récupérer une variable stocker dans donnees nous utiliserons la syntaxe suivante :
variable1 = donnees[ID]['variable1']
Il est également de bonne pratique de vérifier si l’utilisateur est bien déjà présent dans donnees, pour ne pas risquer d’avoir une erreur si ce n’est pas le cas :
if ID in donnees:
variable1 = donnees[ID][‘variable1’]
Voici un exemple typique de comment récupérer une variable dans donnees :
donnees = []
@bot.command(name='variable1')
async def recup_variable_one(context):
global donnees
if ID in donnees:
variable1 = donnees[ID]['variable1']