Skip to content
Nathanael edited this page Jul 18, 2019 · 13 revisions

Mais ? Comment ça marche ?

Premièrement, télécharger la dernière release de SimpleDatabaseManager et ajoutez-la en dépendance de votre mod. (que ce soit avec gradle ou depuis votre IDE directement) Et c'est tout ! Désormais, passons au code:

Stocker du data dans une base de donnée

Récupérer une base de donnée via son nom

Premièrement, vous allez devoir get la base de donnée via son nom (la création se fait automatiquement si vous gettez une db inexistante), pour ce faire:

Database db = Databases.getDatabase("votre_database");

Nous avons donc créer une instance de notre base de donnée nommée "db".

Stocker des valeurs

C'est bien beau d'avoir une base de donnée, mais elle ne contient pour le moment rien du tout ! Pour lui assigner des valeurs vous pouvez vous y prendre ainsi:

Database db = Databases.getDatabase("votre_database");
db.setString("stringtest", "mon string de test");
db.setInteger("integertest", 3);
db.setDouble("doubletest", 2.0);
db.setFloat("floattest", 47.9f);
db.setBoolean("booleantest", true);

Simple ? Non ? En fait, c'est un peu comme les HashMap, ça fonctionne avec un système de valeur, assignée à une clé. Toutes les méthodes de set contienne en premier argument la clé, et en deuxième argument la valeur !

Lire des valeurs

Bon, maintenant qu'on sait stocker des valeurs, il faut bien savoir les récupérer... Sinon le système serait inutile. Et bien c'est tout simple:

Database db = Databases.getDatabase("votre_database");
String str = db.getString("stringtest"); // str sera égal à "mon string de test"
int entier = db.getInteger("integertest"); // entier sera égal à 3
double d = db.getDouble("doubletest"); // d sera égal à 2.0
float f = db.getFloat("floattest"); // f sera égal à 47.9f
boolean b = db.getBoolean("booleantest"); // b sera égal à true

Bien entendu, le nom des variables dans lesquelles vous lisez les valeurs n'a aucune importance (je préfère le préciser, car avec certains :rolling_eyes:

Stocker des valeurs dans un joueur

Comme je vous l'ai dit, chaque joueur possède une database qui lui est dédiée, vous pouvez donc get cette fameuse database comme ceci:

EntityPlayer player = /* Votre instance d'EntityPlayer */;
Database playerdata = Databases.getPlayerData(player);

Après comme c'est une database comme les autres, vous vous en servez, bah, comme les autres. x)

Synchronisation des base de données

Comme dit dans le paragraphe de présentation, SimpleDatabaseManager gère aussi la synchronisation entre le client et le serveur ! Voici comment l'utiliser;

Synchronisation des playerdatas

La synchronisation des playerdata est gérée automatiquement le clien à accès en lecture au playerdata du joueur lui étant assigné. Pour accéder DEPUIS LE CLIENT à votre playerdata, c'est comme ça:

DatabaseReadOnly playerData = ClientDatabases.getPersonalPlayerData();

⚠️ Attention, n'essayez pas d'utiliser les méthodes de set de valeurs dans une instance de DatabaseReadOnly, les bases de données client ne sont accessible qu'en lecture. Vous ne pouvez pas écrire dedans ! ⚠️

Clone this wiki locally