MFF

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

    Mettre à jour une TileEntity sur un serveur

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    19 Messages 4 Publieurs 5.3k 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.
    • EclipseOnFireE Hors-ligne
      EclipseOnFire
      dernière édition par

      Bonjour !

      (Yep, ça fait un moment, j’ai du boulot ! En même temps quand je suis pas là je vous casse pas les pieds avec mes problèmes ^^)
      J’ai mis à jour mon mod en 1.7.10 et j’ai rencontré un souci, toujours le même : comment régler mes packets pour mettre à jour mon TileEntitySoundBlock et comment créer mon PacketHandler.

      J’ai lu le tuto sur le NetWork 1.7.x mais je ne vois pas comment transmettre le World dans le packet.

      Je vous remercie d’avance,
      EclipseOnFire

      Travaille sur un super serveur, Wirestone.

      1 réponse Dernière réponse Répondre Citer 0
      • RedRelayR Hors-ligne
        RedRelay Moddeurs confirmés
        dernière édition par

        A t’on vraiment besoin de lire 500 lignes de code pour t’aider ?
        Localise le problème et donne nous des informations pertinantes 😉
        Personne n’a envie de se taper un livre pour répondre a ta question.
        Ce n’est pas a nous de chercher dans l’ensemble de ton code la partie qui pose problème, c’est a toi de nous la donner avec le plus de précision. Contrairement a toi, nous ne connaissons pas ton code et ta logique. Donc chercher dans le code de quelqu’un d’autre, ce n’est pas le même exercice que chercher dans le siens.

        Je n’ai pas lu ton code, par contre, d’après l’énoncé que tu donnes du problème, tu cherches comment transmettre un TileEntity via les packets.

        Ce que tu peux faire, c’est envoyer l’id de la dimension, et les coord x,y,z de ton objet.

        Pour sérialiser :
        id dimension : tonTileEntity.getWorldObj().provider.dimensionId
        x,y,z : respectivement tonTileEntity.xCoord/yCoord/zCoord (ou un truc du genre)

        pour désérialiser :
        Tu obtiens le monde avec : DimensionManager.getProvider(dimension).worldObj
        Une fois que tu as ton monde, tu l’utilises avec tonObjectWorld.getTileEntity(x,y,z);

        J’espère avoir répondu au moins partiellement à ta question 😉

        –------------------------------------------------------------------------------------
        Si tu trouves mon intervention pertinente, n'hésite pas a m…

        1 réponse Dernière réponse Répondre Citer 1
        • EclipseOnFireE Hors-ligne
          EclipseOnFire
          dernière édition par

          @‘Blackout’:

          A t’on vraiment besoin de lire 500 lignes de code pour t’aider ?
          Localise le problème et donne nous des informations pertinantes 😉
          Personne n’a envie de se taper un livre pour répondre a ta question.
          Ce n’est pas a nous de chercher dans l’ensemble de ton code la partie qui pose problème, c’est a toi de nous la donner avec le plus de précision. Contrairement a toi, nous ne connaissons pas ton code et ta logique. Donc chercher dans le code de quelqu’un d’autre, ce n’est pas le même exercice que chercher dans le siens.

          Je n’ai pas lu ton code, par contre, d’après l’énoncé que tu donnes du problème, tu cherches comment transmettre un TileEntity via les packets.

          Ce que tu peux faire, c’est envoyer l’id de la dimension, et les coord x,y,z de ton objet.

          Pour sérialiser :
          id dimension : tonTileEntity.getWorldObj().provider.dimensionId
          x,y,z : respectivement tonTileEntity.xCoord/yCoord/zCoord (ou un truc du genre)

          pour désérialiser :
          Tu obtiens le monde avec : DimensionManager.getProvider(dimension).worldObj
          Une fois que tu as ton monde, tu l’utilises avec tonObjectWorld.getTileEntity(x,y,z);

          J’espère avoir répondu au moins partiellement à ta question 😉

          Nan le code c’est juste au cas où. Sinon, je vais essayer, mais tu as répondu à mon problème, oui.

          Travaille sur un super serveur, Wirestone.

          1 réponse Dernière réponse Répondre Citer 0
          • robin4002R Hors-ligne
            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
            dernière édition par

            Et sinon tu as player.worldObj :
            https://github.com/FFMT/nanotech_mod/blob/nanotechmod3/src/fr/mcnanotech/kevin_68/nanotechmod/core/network/packets/PacketSpotLightKey.java#L67

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

              @‘robin4002’:

              Et sinon tu as player.worldObj :
              https://github.com/FFMT/nanotech_mod/blob/nanotechmod3/src/fr/mcnanotech/kevin_68/nanotechmod/core/network/packets/PacketSpotLightKey.java#L67

              Mais c’est un packet de la FFMT non ? Vu que je ne l’utilise pas c’est différent.

              Travaille sur un super serveur, Wirestone.

              1 réponse Dernière réponse Répondre Citer 0
              • robin4002R Hors-ligne
                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                dernière édition par

                Tu peux aussi avoir l’instance du joueur si tu as suivis le tutoriel de blackout :
                ctx.getServerHandler().playerEntity

                1 réponse Dernière réponse Répondre Citer 1
                • EclipseOnFireE Hors-ligne
                  EclipseOnFire
                  dernière édition par

                  @‘robin4002’:

                  Tu peux aussi avoir l’instance du joueur si tu as suivis le tutoriel de blackout :
                  ctx.getServerHandler().playerEntity

                  Ah je pensais pas qu’on pouvait utiliser le monde dans lequel se trouve le joueur… C’est vrai que ça marche aussi…
                  Dernière question : pour mettre à jour le TileEntity d’un bloc, c’est : world.setTileEntity(x, y, z, tile); ou autre chose ?

                  Travaille sur un super serveur, Wirestone.

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Heu ? Non ça c’est pour placer un tile entity dans le monde.
                    Si tu veux changer une valeur dans le tile entity, passe par un setter, et après pour forcer la synchro côté client, tu fais un world.markBlockForUpdate

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

                      What ??
                      Je comprends pas cette erreur, si quelqu’un a une idée… Je suis preneur !

                      [16:17:06] [Client thread/ERROR] [FML]: Fatal errors were detected during the transition from PREINITIALIZATION to INITIALIZATION. Loading cannot continue
                      [16:17:06] [Client thread/ERROR] [FML]:
                      mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized
                      FML{7.10.18.1182} [Forge Mod Loader] (bin) Unloaded->Constructed->Pre-initialized
                      Forge{10.13.0.1182} [Minecraft Forge] (bin) Unloaded->Constructed->Pre-initialized
                      WSMod{1.0.0} [Wirestone Mod] (bin) Unloaded->Constructed->Pre-initialized
                      flansmod{4.3.0} [Flan's Mod] (Flans Mod-1.7.2-4.3.0.jar) Unloaded->Constructed->Errored
                      [16:17:06] [Client thread/ERROR] [FML]: The following problems were captured during this phase
                      [16:17:06] [Client thread/ERROR] [FML]: Caught exception from flansmod
                      java.lang.NoSuchFieldError: field_151573_f
                      at com.flansmod.common.BlockFlansWorkbench.<init>(BlockFlansWorkbench.java:24) ~[Flans%20Mod-1.7.2-4.3.0.jar:?]
                      at com.flansmod.common.FlansMod.preInit(FlansMod.java:161) ~[Flans%20Mod-1.7.2-4.3.0.jar:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_05]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
                      at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
                      at cpw.mods.fml.common.FMLModContainer.handleModStateEvent(FMLModContainer.java:513) ~[bin/:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_05]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
                      at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
                      at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
                      at cpw.mods.fml.common.LoadController.sendEventToModContainer(LoadController.java:208) ~[bin/:?]
                      at cpw.mods.fml.common.LoadController.propogateStateMessage(LoadController.java:187) ~[bin/:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_05]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
                      at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
                      at com.google.common.eventbus.EventSubscriber.handleEvent(EventSubscriber.java:74) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.SynchronizedEventSubscriber.handleEvent(SynchronizedEventSubscriber.java:47) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.dispatch(EventBus.java:322) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.dispatchQueuedEvents(EventBus.java:304) ~[guava-17.0.jar:?]
                      at com.google.common.eventbus.EventBus.post(EventBus.java:275) ~[guava-17.0.jar:?]
                      at cpw.mods.fml.common.LoadController.distributeStateMessage(LoadController.java:118) [LoadController.class:?]
                      at cpw.mods.fml.common.Loader.preinitializeMods(Loader.java:513) [Loader.class:?]
                      at cpw.mods.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:239) [FMLClientHandler.class:?]
                      at net.minecraft.client.Minecraft.startGame(Minecraft.java:532) [Minecraft.class:?]
                      at net.minecraft.client.Minecraft.run(Minecraft.java:941) [Minecraft.class:?]
                      at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_05]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
                      at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
                      at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?]
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]
                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_05]
                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_05]
                      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_05]
                      at java.lang.reflect.Method.invoke(Method.java:483) ~[?:1.8.0_05]
                      at GradleStart.bounce(GradleStart.java:95) [start/:?]
                      at GradleStart.startClient(GradleStart.java:88) [start/:?]
                      at GradleStart.main(GradleStart.java:66) [start/:?]
                      ```</init>

                      Travaille sur un super serveur, Wirestone.

                      1 réponse Dernière réponse Répondre Citer 0
                      • robin4002R Hors-ligne
                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                        dernière édition par

                        Tu ne peux pas utiliser un mod compilé normalement dans un environnement de dev.

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

                          Ah d’accord ! Je fais comment pour avoir l’API sous la main du coup ? J’aimerais bien le rendre compatible avec mon mod…

                          Travaille sur un super serveur, Wirestone.

                          1 réponse Dernière réponse Répondre Citer 0
                          • robin4002R Hors-ligne
                            robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                            dernière édition par

                            Prends les sources sur github ? https://github.com/FlansMods/FlansMod

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

                              @‘robin4002’:

                              Prends les sources sur github ? https://github.com/FlansMods/FlansMod

                              Heu et je met les package avec le mien (src/main/java) ou j’utilise Eclipse (add external folder) du coup ?

                              Travaille sur un super serveur, Wirestone.

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                Le deux fonctionnent, mais la première solution est plus simple pour compiler après.

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

                                  @‘robin4002’:

                                  Le deux fonctionnent, mais la première solution est plus simple pour compiler après.

                                  Soit. En revanche il faudra veiller à séparer les deux mods dans le zip c’est bien ça ?

                                  Travaille sur un super serveur, Wirestone.

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • robin4002R Hors-ligne
                                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                    dernière édition par

                                    Oui.

                                    1 réponse Dernière réponse Répondre Citer 1
                                    • EclipseOnFireE Hors-ligne
                                      EclipseOnFire
                                      dernière édition par

                                      C’est bon ! Le système fonctionne parfaitement ! Merci beaucoup à vous deux ! Franchement tu devrais être rémunéré Robin ^^.

                                      Travaille sur un super serveur, Wirestone.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • Superloup10S Hors-ligne
                                        Superloup10 Modérateurs
                                        dernière édition par

                                        Si tu le souhaites, tu peux faire un don pour payer robin.

                                        Si vous souhaitez me faire un don, il vous suffit de cliquer sur le bouton situé en dessous.

                                        Je suis un membre apprécié et joueur, j'ai déjà obtenu 17 points de réputation.

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

                                          @‘Superloup10’:

                                          Si tu le souhaites, tu peux faire un don pour payer robin.

                                          Pourquoi pas x) Après toute l’aide qu’il fournit il le mérite !

                                          Travaille sur un super serveur, Wirestone.

                                          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