MFF

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

    Plusieurs questions/problèmes

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8
    95 Messages 9 Publieurs 15.5k 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.
    • robin4002R Hors-ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      En effet le joueur ne risque pas de prendre feu de l’eau.
      Pour le spawn, world.spawnEntityInWorld(new TonEntité(….));
      Pour la Q4, il faudrait désactiver la pluie quand tu actives l’apocalypse, et non le désactiver dans la classe principale si c’est l’apocalypse.

      Pour les autres questions je ne sais pas non plus.

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

        Pour mettre un joueur en feux : player.setOnFire(true) ?

        if(This_is_Halloween.apocalypse == true) -> if(This_is_Halloween.apocalypse) d’ailleurs je crois que c’est pas la première fois que je le dis mais essaie de respecter la convention java. D’ailleurs je ne sais pas pourquoi tu appelles une valeur statique de ton mod, quel est l’utilité ?

        Pour faire spawner un mob : world.spawnEntityInWorld(entity) ?

        BiomeGenBase.plains.setDisableRain(); -> je doute que ce soit ça car accéder à un biome de façon statique ne risque pas de le changer dans le monde, est-ce que tu as regardé comment c’était fait dans les commandes de minecraft ?

        remplacer la couleur de l’herbe -> fait une recherche sur le forum

        Pour le reste j’attends que tu es un code un peu plus propre et moins de questions

        Site web contenant mes scripts : http://SCAREXgaming.github.io

        Pas de demandes de support par MP ni par skype SVP.
        Je n'accepte sur skype que l…

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

          Salut
          Je vais essayer de respecter la convention java pour les nouveaux codes et de modifier les anciens.

          Pour le remplacement d’un mob par un autre, y’a quelques problèmes : quand ce n’est pas l’apocalypse je fait spawner un loup ça marche. Jusque là, c’est logique. Mais quand je laisse le loup et que j’active l’apocalypse, le loup ne se transforme pas. Quand j’en fais spawner, il disparaissent à la seconde où ils apparaissent (logique) mais les loup-garoux n’apparaissent pas. J’utilise :

          @SubscribeEvent
           public void apocalypseMobReplace(EntityJoinWorldEvent event)
           {
            if(This_is_Halloween.apocalypse)
            {
             if(event.entity instanceof EntityWolf) 
             {
              EntityWerewolf werewolf = new EntityWerewolf(event.world);
              int x = event.entity.chunkCoordX;
              int y = event.entity.chunkCoordY;
              int z = event.entity.chunkCoordZ;
              float rotateX = event.entity.rotationPitch;
              float rotateY = event.entity.rotationYaw;
          
              System.out.println(x);
              System.out.println(rotateX);
          
              event.entity.setDead();
          
              event.world.spawnEntityInWorld(werewolf);
              werewolf.setPositionAndRotation(x, y, z, rotateX, rotateY);
             }
            }
           }
          ``` J'ai essayer de faire logger les coord sur x et la rotation sur x du loup, mais rien. Du coup, je sais pas du tout si le loup-garou n'apparait pas, ou si il apparaît mais à des coord au hasard.
          
          Pour la pluie, ça marche bien tant que je ne redémarre pas le jeu. J'ai mis la ligne ```java
          BiomeGenBase.plains.setDisableRain();
          ``` dans la fonction juste après les commandes (en gros, quand je fait /halloween apocalypse enable). Quand je fais la commande, ça désactive bien la pluie, j'ai essayé de quitter et revenir dans le monde il ne pleut toujours pas, mais quand j'éteins et je rallume le jeu, il repleut (comme si c'est sauvegarder dans l'instance du jeu et non dans le monde).
          
          > D'ailleurs je ne sais pas pourquoi tu appelles une valeur statique de ton mod, quel est l'utilité ?
          
          C'est la variable qui définit si c'est l'apocalypse ou pas.
          
          Pour l'herbe, j'avais déjà trouvé [ce sujet](https://www.minecraftforgefrance.fr/showthread.php?tid=2117). Au départ, je savais pas comment faire pour un biome qui existe déjà (la plaine par exemple), même avec l'évent donné par Robin. Mais j'ai trouvé comment faire (même si c'est basique j'ai peiné). Mais la couleur de l'herbe ne change pas.
          
          Je continue de chercher pour les autres problèmes
          Pour le feu, vu que c'est de l'eau ça éteint le feu. Mais ton code marche quand même quand l'entité sort de l'eau. Merci
          1 réponse Dernière réponse Répondre Citer 0
          • SCAREXS Hors-ligne
            SCAREX
            dernière édition par

            Respecter la convention java -> tu peux toujours utiliser le refactor pour changer les noms plus facilement, exemple tu fais clique droit sur le nom du package puis refactor puis change name et tu le changes en thisishalloween (c’est la convention java)

            l’entité ne se re-transforme pas -> où est le code pour faire ça ?

            problème de position -> normal tu récupères les coordonnées du chunk et non de l’entité

            pluie -> c’est pour ça que regarder comment c’est fait dans les commandes de minecraft est une bien meilleure idée

            variable statique -> oui mais il se passe quoi si on redémarre le serveur ? Je te donne la réponse : ça ne marche pas, il faut mettre cette variable autre part, comme par exemple dans le monde : https://www.minecraftforgefrance.fr/showthread.php?tid=2444

            pour l’herbe -> envoi le code correspondant

            pour le feu -> sinon tu peux créer un nouveau type de dégâts mais ça va paraître étrange de mourir enflammer alors qu’on est dans l’eau

            Site web contenant mes scripts : http://SCAREXgaming.github.io

            Pas de demandes de support par MP ni par skype SVP.
            Je n'accepte sur skype que l…

            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

              event.world.spawnEntityInWorld(werewolf);
              werewolf.setPositionAndRotation(x, y, z, rotateX, rotateY);
              En plus de ce qu’a dit SCAREX, inverses ses deux lignes.

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

                Salut
                Pour les entités, ça marche mais ça en fait spawner 2. De plus, les loups ayant spawner avant l’apocalypse ne change pas.
                Quand je dit qu’elles se transforment, c’est qu’on à l’impression qu’elles se transforment (le loup meurt et le loup-garou apparaît à sa place) mais elles ne se transforment pas vraiment .

                Pour la pluie, j’ai testé ce que tu m’as dit, ça marche, mais pas comme je voudrais. Quand je désactivais la pluie via BiomeGenBase et que je “mettais” la pluie via la commande, il ne pleuvait plus (logique) mais le ciel était gris, et c’est ça que je veux. Mais je ne sais pas comment faire. (j’aimerais plus si c’est possible le ciel de l’orage). Mais j’ai cherché dans le BiomeGenBase, rien trouvé.

                Pour la variable apocalypse, merci de me l’avoir dit, je ne l’avais pas vu avant. J’avais déjà fait ce tuto et ça enregistre bien (j’ai regardé grâce à NBTExplorer). C’était un problème de chargement des données. C’est que en fait, le chargement des données, je l’avais mis dans le CommonProxy alors qu’il fallait le mettre dans la classe principale.

                Pour l’herbe, je ne suis pas du tout sûr de ce que j’ai mis, c’est ce que j’ai compris du post :

                 @SubscribeEvent
                 public int ApocalypseGrass(BiomeEvent.GetGrassColor event)
                 {
                  return 0x000000;
                 }
                

                Pour le feu, j’avais idée de faire comme une eau à forte température qui enflamme, mais maintenant que tu me le dit, j’y pense et ça fait bizarre. Je vais laisser comme c’est là (c’est à dire qu’on perd de la vie quand on est dans l’eau et que ça nous enflamme quand y sort)

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

                  Pour changer tout les loup en loup-garous, j’avais donné un code vers le début :

                  
                  final List <entity>toAdd = new ArrayList<entity>();
                  for(int i = 0; i < getWorld().loadedEntityList.size(); i++) {
                  if(getWorld().loadedEntityList.get(i) instanceof EntityWolf) {
                  BlockPos pos = getWorld().loadedEntityList.get(i).getPosition();
                  EntityZombie zombie = new EntityZombie(getWorld().loadedEntityList.get(i).getEntityWorld());
                  zombie.setPosition(pos.getX(), pos.getY(), pos.getZ());
                  zombie.setAngles(getWorld().loadedEntityList.get(i).rotationYaw, getWorld().loadedEntityList.get(i).rotationPitch);
                  zombie.motionX = getWorld().loadedEntityList.get(i).motionX;
                  zombie.motionY = getWorld().loadedEntityList.get(i).motionY;
                  zombie.motionZ = getWorld().loadedEntityList.get(i).motionZ;
                  toAdd.add(zombie);
                  getWorld().loadedEntityList.get(i).setDead();
                  }
                  }
                  for(int i = 0; i < toAdd.size(); i++) {
                  this.getWorld().spawnEntityInWorld(toAdd.get(i));
                  }
                  
                  

                  J’ai pas testé mais ça devrait marcher, il faut le mettre lorsque l’apocalipse commence, qu’il ne s’exécute qu’une seule fois car tu gère déjà le cas où un loup spawn pendant l’apocalipse</entity></entity>

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

                    Mais quand je testais, ça ne marchait pas. Blackout avait par ailleurs dit que si on utilisait ce code (qui est une exclusivité java8), ça ne ferait rien à ceux qui n’aurait pas java 8 (ce qui est mon cas apparemment vu que ca ne marche pas; c’est aussi le cas d’environ beaucoup de personne)

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

                      Je ne voie pas de raison pour que ce code ne fonctionne pas sans java 8.
                      Celui dans ce post ,pas celui d’encore avant je précise
                      Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                      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
                      • BrokenSwingB Hors-ligne
                        BrokenSwing Moddeurs confirmés Rédacteurs
                        dernière édition par

                        Je l’ai changé, dans mon premier message j’utilisai un consumer, si tu observes bien ici je le parcours avec une boucle for

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

                          D’ailleurs il serait plus pratique d’avoir directement l’entité avec un for(Entity entity : world.loadedEntityList) plutôt que la get à chaque ligne.

                          Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                          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
                          • BrokenSwingB Hors-ligne
                            BrokenSwing Moddeurs confirmés Rédacteurs
                            dernière édition par

                            Oui, faites comme vous voulez, ça va pas changer grand chose

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

                              Niveau utilisation des ressources, ceci devrait être mieux :

                              
                              for(Entity entity : getWorld().loadedEntityList) 
                              {
                              if(entity  instanceof EntityWolf) 
                              {
                              EntityZombie zombie = new EntityZombie(entity.getEntityWorld());
                              zombie.setPosition(entity.posX, entity.posY, entity.posZ);
                              zombie.setAngles(entity.rotationYaw, entity.rotationPitch);
                              zombie.motionX = entity.motionX;
                              zombie.motionY = entity.motionY;
                              zombie.motionZ = entity.motionZ;
                              entity.setDead();
                              getWorld().spawnEntityInWorld(zombie);
                              
                              }
                              }
                              
                              

                              Code non testé mais doit fonctionner.

                              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
                              • AxaurusA Hors-ligne
                                Axaurus
                                dernière édition par

                                BrokenSwing : Désolé, en voyant le code et sa disposition j’avais cru que c’était le code que t’avais donné en 1ère page. Mais en le testant, j’ai des erreurs sur ce qui concerne la position, le mouvement et l’orientation (getPosition(), getEntityWorld(), rotationYaw, rotationPitch, et les 3 motion). De plus, je n’ai pas compris certaines parties du code.
                                Mais j’ai préféré prendre le code d’AymericRed, je le comprend mieux (je préfère comprendre un code avant de l’utiliser). Mais merci quand même 😉

                                Pour la boucle que tu m’a donné Aymeric (je peux t’appelé comme ca ?), sur la ligne ```java
                                event.world.loadedEntityList

                                
                                Merci d'avance
                                1 réponse Dernière réponse Répondre Citer 0
                                • AymericRedA Hors-ligne
                                  AymericRed
                                  dernière édition par

                                  Mon code fait la même chose que celui de BrokenSwing mais j’ai préféré enlever le getPosition() car je n’étais pas sur de son existence…j’ai eu raison ^^
                                  Pour ton erreur, c’est que Mojang n’a pas spécifié à la liste d’entités qu’elle ne peut contenir que ça, donc si eclipse de propose de cast (pas sur pour un for comme ça), fais-le sinon remplace le débute du for par ça :

                                  for(Object o : event.world.loadedEntityList)
                                  {
                                  if(o instanceof EntityWolf)
                                  {
                                  EntityWorlf entity = (Entity) o;
                                  
                                  

                                  PS : Bonne traduction oui 🙂

                                  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
                                  • AxaurusA Hors-ligne
                                    Axaurus
                                    dernière édition par

                                    Tu as raison, Eclipse ne propose pas de cast. J’ai remplacer le début du for comme t’as dit. Quand je vais tester : quand ce n’est pas l’apocalypse, je fais spawner un loup. Quand j’active l’apocalyse, rien ne se passe (que ce soit dans le jeu ou dans les logs). Par contre, quand c’est déjà l’apocalypse et que je fais spawner un loup, il se change en loup-garou (normal me diriez vous) mais avec le loup-garou s’accompagne une erreur dans les logs, mais pas de crash du jeu :

                                    [22:50:52] [Server thread/ERROR] [FML]: Exception caught during firing event net.minecraftforge.event.entity.EntityJoinWorldEvent@15c6044d:
                                    java.util.ConcurrentModificationException
                                    at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.8.0_92]
                                    at java.util.ArrayList$Itr.next(Unknown Source) ~[?:1.8.0_92]
                                    at thisishalloween.CommonEventHandler.apocalypseMobReplace(CommonEventHandler.java:104) ~[CommonEventHandler.class:?]
                                    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_9_CommonEventHandler_apocalypseMobReplace_EntityJoinWorldEvent.invoke(.dynamic) ~[?:?]
                                    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55) ~[ASMEventHandler.class:?]
                                    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140) [EventBus.class:?]
                                    at net.minecraft.world.World.spawnEntityInWorld(World.java:1230) [World.class:?]
                                    at net.minecraft.item.ItemMonsterPlacer.spawnCreature(ItemMonsterPlacer.java:220) [ItemMonsterPlacer.class:?]
                                    at net.minecraft.item.ItemMonsterPlacer.onItemUse(ItemMonsterPlacer.java:107) [ItemMonsterPlacer.class:?]
                                    at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:599) [ForgeHooks.class:?]
                                    at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:146) [ItemStack.class:?]
                                    at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:488) [ItemInWorldManager.class:?]
                                    at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:624) [NetHandlerPlayServer.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:67) [C08PacketPlayerBlockPlacement.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:114) [C08PacketPlayerBlockPlacement.class:?]
                                    at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) [PacketThreadUtil$1.class:?]
                                    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_92]
                                    at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_92]
                                    at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:714) [FMLCommonHandler.class:?]
                                    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:727) [MinecraftServer.class:?]
                                    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?]
                                    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) [IntegratedServer.class:?]
                                    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?]
                                    at java.lang.Thread.run(Unknown Source) [?:1.8.0_92]
                                    [22:50:52] [Server thread/ERROR] [FML]: Index: 3 Listeners:
                                    [22:50:52] [Server thread/ERROR] [FML]: 0: HIGHEST
                                    [22:50:52] [Server thread/ERROR] [FML]: 1: ASM: net.minecraftforge.common.ForgeInternalHandler@55c901b2 onEntityJoinWorld(Lnet/minecraftforge/event/entity/EntityJoinWorldEvent;)V
                                    [22:50:52] [Server thread/ERROR] [FML]: 2: NORMAL
                                    [22:50:52] [Server thread/ERROR] [FML]: 3: ASM: thisishalloween.CommonEventHandler@24537e30 apocalypseMobReplace(Lnet/minecraftforge/event/entity/EntityJoinWorldEvent;)V
                                    [22:50:52] [Server thread/FATAL] [FML]: Exception caught executing FutureTask: java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
                                    java.util.concurrent.ExecutionException: java.util.ConcurrentModificationException
                                    at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_92]
                                    at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_92]
                                    at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:715) [FMLCommonHandler.class:?]
                                    at net.minecraft.server.MinecraftServer.updateTimeLightAndEntities(MinecraftServer.java:727) [MinecraftServer.class:?]
                                    at net.minecraft.server.MinecraftServer.tick(MinecraftServer.java:669) [MinecraftServer.class:?]
                                    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:171) [IntegratedServer.class:?]
                                    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:540) [MinecraftServer.class:?]
                                    at java.lang.Thread.run(Unknown Source) [?:1.8.0_92]
                                    Caused by: java.util.ConcurrentModificationException
                                    at java.util.ArrayList$Itr.checkForComodification(Unknown Source) ~[?:1.8.0_92]
                                    at java.util.ArrayList$Itr.next(Unknown Source) ~[?:1.8.0_92]
                                    at thisishalloween.CommonEventHandler.apocalypseMobReplace(CommonEventHandler.java:104) ~[CommonEventHandler.class:?]
                                    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_9_CommonEventHandler_apocalypseMobReplace_EntityJoinWorldEvent.invoke(.dynamic) ~[?:?]
                                    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:55) ~[ASMEventHandler.class:?]
                                    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:140) ~[EventBus.class:?]
                                    at net.minecraft.world.World.spawnEntityInWorld(World.java:1230) ~[World.class:?]
                                    at net.minecraft.item.ItemMonsterPlacer.spawnCreature(ItemMonsterPlacer.java:220) ~[ItemMonsterPlacer.class:?]
                                    at net.minecraft.item.ItemMonsterPlacer.onItemUse(ItemMonsterPlacer.java:107) ~[ItemMonsterPlacer.class:?]
                                    at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:599) ~[ForgeHooks.class:?]
                                    at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:146) ~[ItemStack.class:?]
                                    at net.minecraft.server.management.ItemInWorldManager.activateBlockOrUseItem(ItemInWorldManager.java:488) ~[ItemInWorldManager.class:?]
                                    at net.minecraft.network.NetHandlerPlayServer.processPlayerBlockPlacement(NetHandlerPlayServer.java:624) ~[NetHandlerPlayServer.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:67) ~[C08PacketPlayerBlockPlacement.class:?]
                                    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.processPacket(C08PacketPlayerBlockPlacement.java:114) ~[C08PacketPlayerBlockPlacement.class:?]
                                    at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:24) ~[PacketThreadUtil$1.class:?]
                                    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_92]
                                    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_92]
                                    at net.minecraftforge.fml.common.FMLCommonHandler.callFuture(FMLCommonHandler.java:714) ~[FMLCommonHandler.class:?]
                                    … 5 more
                                    

                                    L’erreur (d’habitude j’appelle tout le temps ça un crash parce que le jeu plante, mais ce n’est pas le cas ici ; je l’appelle donc erreur) me pointe vers le for :```java
                                    for(Object o : event.world.loadedEntityList)

                                    
                                    Merci d'avance
                                    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

                                      https://docs.oracle.com/javase/7/docs/api/java/util/ConcurrentModificationException.html

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

                                        C’est parce-que j’ai trop modifié le code de BrokenSwing, quand tu mets une liste en itération (ici c’est via le for), on ne peut pas la modifier or le spawnEntity la modifie, donc il faut que tu crées une nouvelle liste avant le for, puis, dans le for, à la place du spawnEntity, tu ajoute l’entité à la liste. Puis après ce for tu fais un autre for cette fois ci avec ta liste à la place de loadedEntityList, et à cette endroit tu fais spawn l’entité (prends exemple sur le code de BrokenSwing).

                                        Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                                        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
                                        • BrokenSwingB Hors-ligne
                                          BrokenSwing Moddeurs confirmés Rédacteurs
                                          dernière édition par

                                          C’est pour ça que j’avais créer une liste qui ajoute les entités après avoir parcourue la première
                                          @Aymeric, en fait j’ai fait le code vite fait, et en 1.9 ils ont mis des getters, d’où le getPosition, getWorld, etc … Le crash viens de ton code, quand tu ajoutes l’entité au monde tu la rajoute à la liste que tu est en train de parcourir, il ne faut pas ajouter ou enlever des éléments d’une liste que l’on parcourt, le setDead ne pose pas problème car l’entité sera supprimée seulement au tick d’après, il faut créer une liste d’entité que l’on ajoute après avoir parcourue la première

                                          EDIT : Bah c’est bon, t’avais compris en fait

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

                                            @BrokenSwing oui quand j’ai enlevé ton deuxième for j’avais pas pensé à ça, mais de toute façon dans le code que t’avais fait ou tu get le code à chaque ligne, il n’y avait pas d’itération (mais maintenant je pense que ça aurait tout fais bug en changeant la taille de la liste sans le second for).

                                            Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk

                                            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
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 3 / 5
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB