MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    [1.7.10 -> 1.12] DBSynchronizer - La synchronisation facile !

    Planifier Épinglé Verrouillé Déplacé Mods complet
    1.121.10.21.11.21.7.101.8.91.9.4
    9 Messages 2 Publieurs 3.0k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Cl00e9mentC Hors-ligne
      Cl00e9ment
      dernière édition par Cl00e9ment

      titre

      Bonjour à toutes et à tous, je suis fier de vous présenter la library DBSynchronizer !

      DBSynchronizer est un mod, mais un mod fait pour vous, les développeurs ! En effet cette library va s’occuper de la synchronisation de données entre le(s) client(s) et le server. De ce fait, vous n’aurez plus à gérer les packets, une tâche pas si simple que ça notamment quand on a une GUI avec pleins de boutons qui interagissent non seulement entre-eux mais aussi avec le server et les clients (je parle en connaissance de cause).

      Non pouvons prendre un exemple :
      Imaginez que vous créez un mod de magie que nous allons appeler Magikum et que vous avez besoin de stocker les données suivantes :

      • Le nombre de point de mana de chaque joueurs
      • Le niveau en magie de chaque joueurs : “apprenti”, “magicien” ou “grand sorcier”
      • La position des orbes qui sera reset a chaque fois qu’on relancera le monde (parce-que pourquoi pas ?)

      Imaginez maintenant que vous avez besoin d’accéder à ces données n’importe où (que ce soit sur un client ou sur le server) pour pouvoir les modifier.
      Il faudra donc synchroniser toutes ces données afin que le serveur et chaque clients puissent y accéder en temps réel et les modifier.
      Mais il ne faut pas oublier qu’il faudra sauvegarder dans la worldsave le nombre de points de mana de chaque joueurs et leur niveau en magie.

      Ça tombe bien car DBSynchronizer peut faire tout ça quasiment automatiquement !

      Voici les liens vers la page de téléchargement et vers un tutoriel pour savoir comment utiliser la library. Vous pouvez également obtenir les sources sur Github. Bonne chance !

      télécharger
      tutoriel

      Je serais très reconnaissant que vous me fassiez part de chaque bug que vous rencontreriez en utilisant ma library. Au contraire, si elle fonctionne bien je serais aussi content que vous me le dîtes.
      Merci !

      1 réponse Dernière réponse Répondre Citer 0
      • Cl00e9mentC Hors-ligne
        Cl00e9ment
        dernière édition par

        Un bug majeur a été découvert sur les versions de DBSynchronizer suivantes :

        • 1.0.0 pour mc 1.7.10
        • 1.1.0 pour mc 1.8.9
        • 1.2.0 pour mc 1.9.4
        • 1.3.0 pour mc 1.10.2
        • 1.4.0 pour mc 1.11.2
        • 1.5.0 pour mc 1.12

        -> lorsque l’on tente d’obtenir une base de données depuis un client en multijoueur, un NullPointerException est lancé avec le message “You can’t get a database instance when no world is loaded.”.

        Vous devez donc télécharger les nouvelles versions qui sont les suivantes (je vois encore des personnes télécharger les anciennes versions alors qu’il y a marqué “bug majeur” à côté) :

        • 1.0.0.1 pour mc 1.7.10
        • 1.1.0.1 pour mc 1.8.9
        • 1.2.0.1 pour mc 1.9.4
        • 1.3.0.1 pour mc 1.10.2
        • 1.4.0.1 pour mc 1.11.2
        • 1.5.0.1 pour mc 1.12

        J’en profite pour vous dire que les sources de la library sont désormais disponible sur github.

        1 réponse Dernière réponse Répondre Citer 0
        • LavaPowerL Hors-ligne
          LavaPower
          dernière édition par

          Il faut refaire le mod où on utilise DBSynchronizer pour la MAJ ?

          Github : http://github.com/LavaPower

          1 réponse Dernière réponse Répondre Citer 0
          • Cl00e9mentC Hors-ligne
            Cl00e9ment
            dernière édition par

            @‘LavaPower’:

            Il faut refaire le mod où on utilise DBSynchronizer pour la MAJ ?

            Il faut juste réinstaller DBSynchronizer mais avec la nouvelle version. Pas besoin de toucher au code.

            1 réponse Dernière réponse Répondre Citer 0
            • LavaPowerL Hors-ligne
              LavaPower
              dernière édition par

              Ah cool ! Merci 😉

              Github : http://github.com/LavaPower

              1 réponse Dernière réponse Répondre Citer 0
              • Cl00e9mentC Hors-ligne
                Cl00e9ment
                dernière édition par

                Un autre bug a été découvert et cette fois encore il concerne toutes les versions de DBSynchronizer précédentes :
                Quand on fait un getDBFolder() avec une clé qui n’est pas encore stockée un nouveau DBFolder sera créé, stocké et renvoyé (ce qui est normal) mais ce DBFolder ne sera pas synchronisé tant que l’on ne relancera pas Minecraft (ou le serveur pour le multi).

                Ce bug est corrigé dans les versions suivantes :

                • 1.0.0.2 pour mc 1.7.10
                • 1.1.0.2 pour mc 1.8.9
                • 1.2.0.2 pour mc 1.9.4
                • 1.3.0.2 pour mc 1.10.2
                • 1.4.0.2 pour mc 1.11.2
                • 1.5.0.2 pour mc 1.12

                Désolé de ne pas avoir découvert ça plus tôt (avant la première release).
                Une autre mise à jour sera bientôt disponible mais cette fois avec des vrais changements et pas juste des correctifs (en espérant que ça n’amènera pas d’autres bugs 😄 ).

                1 réponse Dernière réponse Répondre Citer 0
                • LavaPowerL Hors-ligne
                  LavaPower
                  dernière édition par

                  Salut,

                  Je me posais une question :
                  Admettons que je créé un dossier et que je get une clé. Si je n’ai pas set cette clé au début, elle vaut quoi ?

                  Exemple de code (je ne sais pas quoi mettre à la place de ??) :

                  
                  Database database = DatabaseGetter.getInstance(Reference.MOD_ID);
                  DBFolder dossier = database.getPersistentFolder();
                  DBFolder xpStock = dossier.getDBFolder("Folder");
                  if(xpStock.getInt("blabla") == ??)
                  {
                     player.addChatMessage(new ChatComponentText("Clé inconnu"));
                  }
                  
                  

                  Github : http://github.com/LavaPower

                  1 réponse Dernière réponse Répondre Citer 0
                  • Cl00e9mentC Hors-ligne
                    Cl00e9ment
                    dernière édition par

                    Si tu essayes d’obtenir une donnée qui n’est pas stockée, tu aura comme valeur de retour :

                    BlockPos : null
                    boolean : false
                    byte : 0
                    char : 0x00
                    DBFolder : new DBFolder () (qui sera stocké)
                    double : 0D
                    float : 0F
                    int : 0
                    long : 0L
                    short : 0
                    String : “”

                    Normalement tout ça tu l’as dans la javadoc (si tu passe ton curseur sur getInt() par exemple).

                    1 réponse Dernière réponse Répondre Citer 0
                    • LavaPowerL Hors-ligne
                      LavaPower
                      dernière édition par

                      Okay, c’est bien ce que je pensais.

                      Github : http://github.com/LavaPower

                      1 réponse Dernière réponse Répondre Citer 0
                      • 1 / 1
                      • Premier message
                        Dernier message
                      Design by Woryk
                      ContactMentions Légales

                      MINECRAFT FORGE FRANCE © 2024

                      Powered by NodeBB