• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Résolu Problème de sauvegarde WorldSavedData

    1.7.x
    1.7.10
    2
    4
    832
    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.
    • Deleted
      Deleted dernière édition par

      Salut tout le monde
      Je repars sur l’utilisation des WorldSavedData, je pense avoir mieux compris qu’à l’époque de mon premier post à ce sujet. Je print la valeur de mon boolean enregistré dans ma classe WorldPartyData, depuis l’event LivingUpdateEvent. Le seul problème est que dès que je me déco reco le boolean retombe à false.
      Ma classe :

      
      public class WorldPartyData extends WorldSavedData
      {
      
      private static final String KEY = InvictusMod.MODID;
      public boolean isPartyStarted = false;
      
      public WorldPartyData(String key)
      {
      super(key);
      }
      
      @Override
      public void readFromNBT(NBTTagCompound compound)
      {
      compound.getBoolean("isPartyStarted");
      }
      
      @Override
      public void writeToNBT(NBTTagCompound compound)
      {
      compound.setBoolean("isPartyStarted", this.isPartyStarted);
      }
      
      public static WorldPartyData load()
      {
      if(DimensionManager.getWorlds().length < 1)
      return null;
      MapStorage storage = DimensionManager.getWorlds()[0].mapStorage;
      final String KEY = getDataKey();
      WorldPartyData result = (WorldPartyData) storage.loadData(WorldPartyData.class, KEY);
      if(result == null)
      {
      result = new WorldPartyData(KEY);
      storage.setData(KEY, result);
      }
      return result;
      }
      
      public static String getDataKey()
      {
      return KEY;
      }
      }
      
      

      En fait, mon système est le suivant : dès qu’un joueur envoie un message particulier dans le chat. Je check si c’est le bon avec l’event client side only ClientChatReceivedEvent, et par la suite, j’envoie un packet au serveur (packet bien enregistré sur le side server) avec cet handler :

      
      public static class Handler implements IMessageHandler <packetpartystarting, imessage="">{
      @Override
      public IMessage onMessage(PacketPartyStarting message, MessageContext ctx) 
      {
      System.out.println("arrivé");
      System.out.println(WorldPartyData.load().isPartyStarted);
      WorldPartyData.load().markDirty();
      WorldPartyData.load().isPartyStarted = true;
      System.out.println("intégré");
      System.out.println(WorldPartyData.load().isPartyStarted);
      return null;
      }
      }
      
      

      Je rappelle aussi au passage que j’appelle la méthode load dans l’event FMLServerStartedEvent depuis ma clase principale, comme l’indique le tuto lorsqu’on a des données communes à toutes les mêmes dimensions du monde.
      Merci d’avance =)</packetpartystarting,>

      1 réponse Dernière réponse Répondre Citer 0
      • AymericRed
        AymericRed dernière édition par

        compound.getBoolean(“isPartyStarted”); devient
        this.isPartyStarted = compound.getBoolean(“isPartyStarted”);
        Ça marchera mieux 🙂

        Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

        AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

        Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
        Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

        1 réponse Dernière réponse Répondre Citer 0
        • Deleted
          Deleted dernière édition par

          Oh bah dis donc, je pensais pas du tout à ça…
          Sa marche nikel, merci beaucoup 😃

          1 réponse Dernière réponse Répondre Citer 0
          • AymericRed
            AymericRed dernière édition par

            De rien ^^

            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

            MINECRAFT FORGE FRANCE © 2018

            Powered by NodeBB