MFF

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

    Aide pour faire un four

    Planifier Épinglé Verrouillé Déplacé Résolu 1.8.x
    1.8.9
    20 Messages 5 Publieurs 3.4k 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.
    • AymericRedA Hors-ligne
      AymericRed
      dernière édition par

      Je ne sais pas si ça résoudra le problème, mais c’est mieux de mettre la fonction de forge pour ouvrir le gui dans ta fonction onBlockActivated() :
      remplace “playerIn.displayGUIChest((TileEntityFonderie)tileentityfonderie);” par “playerIn.openGui(id, mod, x, y, z)” (j’ai pas été exact dans les paramètres).

      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 1
      • H Hors-ligne
        HitArrowLegend
        dernière édition par

        @‘robin4002’:

        Salut,
        Il me faudrait le message d’erreur complet.

        Alors je sais pas si c’est exactement ce que tu demandes mais quand j’ouvre le gui sur le bloc en question, j’ai ça dans la console :

        [05:58:03] [Client thread/FATAL]: Error executing task
        java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index: 36, Size: 36
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.7.0_79]
        at java.util.concurrent.FutureTask.get(FutureTask.java:188) ~[?:1.7.0_79]
        at net.minecraft.util.Util.runTask(Util.java:23) [Util.class:?]
        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1070) [Minecraft.class:?]
        at net.minecraft.client.Minecraft.run(Minecraft.java:380) [Minecraft.class:?]
        at net.minecraft.client.main.Main.main(Main.java:116) [Main.class:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_79]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_79]
        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_79]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_79]
        at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
        at GradleStart.main(GradleStart.java:26) [start/:?]
        Caused by: java.lang.IndexOutOfBoundsException: Index: 36, Size: 36
        at java.util.ArrayList.rangeCheck(ArrayList.java:635) ~[?:1.7.0_79]
        at java.util.ArrayList.get(ArrayList.java:411) ~[?:1.7.0_79]
        at net.minecraft.inventory.Container.getSlot(Container.java:125) ~[Container.class:?]
        at net.minecraft.inventory.Container.putStacksInSlots(Container.java:551) ~[Container.class:?]
        at net.minecraft.client.network.NetHandlerPlayClient.handleWindowItems(NetHandlerPlayClient.java:1209) ~[NetHandlerPlayClient.class:?]
        at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:67) ~[S30PacketWindowItems.class:?]
        at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:12) ~[S30PacketWindowItems.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15) ~[PacketThreadUtil$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[?:1.7.0_79]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[?:1.7.0_79]
        at net.minecraft.util.Util.runTask(Util.java:22) ~[Util.class:?]
        … 15 more
        [05:58:10] [Client thread/FATAL]: Error executing task
        java.util.concurrent.ExecutionException: java.lang.IndexOutOfBoundsException: Index: 36, Size: 36
        at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.7.0_79]
        at java.util.concurrent.FutureTask.get(FutureTask.java:188) ~[?:1.7.0_79]
        at net.minecraft.util.Util.runTask(Util.java:23) [Util.class:?]
        at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1070) [Minecraft.class:?]
        at net.minecraft.client.Minecraft.run(Minecraft.java:380) [Minecraft.class:?]
        at net.minecraft.client.main.Main.main(Main.java:116) [Main.class:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_79]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_79]
        at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?]
        at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_79]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_79]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_79]
        at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_79]
        at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?]
        at GradleStart.main(GradleStart.java:26) [start/:?]
        Caused by: java.lang.IndexOutOfBoundsException: Index: 36, Size: 36
        at java.util.ArrayList.rangeCheck(ArrayList.java:635) ~[?:1.7.0_79]
        at java.util.ArrayList.get(ArrayList.java:411) ~[?:1.7.0_79]
        at net.minecraft.inventory.Container.getSlot(Container.java:125) ~[Container.class:?]
        at net.minecraft.inventory.Container.putStacksInSlots(Container.java:551) ~[Container.class:?]
        at net.minecraft.client.network.NetHandlerPlayClient.handleWindowItems(NetHandlerPlayClient.java:1209) ~[NetHandlerPlayClient.class:?]
        at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:67) ~[S30PacketWindowItems.class:?]
        at net.minecraft.network.play.server.S30PacketWindowItems.processPacket(S30PacketWindowItems.java:12) ~[S30PacketWindowItems.class:?]
        at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:15) ~[PacketThreadUtil$1.class:?]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[?:1.7.0_79]
        at java.util.concurrent.FutureTask.run(FutureTask.java:262) ~[?:1.7.0_79]
        at net.minecraft.util.Util.runTask(Util.java:22) ~[Util.class:?]
        … 15 more
        [05:58:34] [Client thread/INFO]: Stopping!
        [05:58:34] [Client thread/INFO]: SoundSystem shutting down…
        
        

        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 donc AymericRed a raison, le problème vient du fait que tu utilises la méthode de mc, donc il tente d’ouvrir le mauvais container. Faut passer par openGUI + un gui handler.

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

            Alors, je pense que ma façon de faire doit pas être la bonne, pourtant je n’arrive pas à trouver de différence entre ce que j’ai sur mes classes et celles de mods existants qui fonctionnent.
            J’ai donc bel et bien mis ça à la place :

            player.openGui(Xtrem.instance, 0, world, (int)player.posX, (int)player.posY, (int)player.posZ);
            
            

            Le gui ne s’ouvre plus du tout, mais je n’ai aucun message d’erreur donc je sais pas quoi faire 😕
            J’ai mis toutes les classes de mon bloc dans une archive.

            Mon guiHandler est fait de cette façon

            package com.xtrem.util;
            
            import com.xtrem.outilleur.forge.ContainerFonderie;
            import com.xtrem.outilleur.forge.GuiFonderie;
            import com.xtrem.outilleur.forge.TileEntityFonderie;
            
            import net.minecraft.entity.player.EntityPlayer;
            import net.minecraft.tileentity.TileEntity;
            import net.minecraft.util.BlockPos;
            import net.minecraft.world.World;
            import net.minecraftforge.fml.common.network.IGuiHandler;
            
            public class GuiHandler implements IGuiHandler{
            
            @Override
            public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
            
            TileEntity tile_entity = world.getTileEntity(new BlockPos(x, y, z));
            if (tile_entity instanceof TileEntityFonderie)
            {
            System.out.println("Get ClientGuiElem");
            
            return new ContainerFonderie(player.inventory, (TileEntityFonderie) tile_entity);
            }
            return null;
            }
            
            @Override
            public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
            
            TileEntity tile_entity = world.getTileEntity(new BlockPos(x, y, z));
            if (tile_entity instanceof TileEntityFonderie)
            {
            System.out.println("Get ClientGuiElem");
            return new GuiFonderie(player.inventory, (TileEntityFonderie) tile_entity);
            }
            return null;
            }
            }
            
            

            et je register ça dans mon mod class comme ça

            @EventHandler
            public void init(FMLInitializationEvent event)
            {
            /** Render Registering */
            proxy.registerRenders();
            /** GUI Handler Registering */
            
            NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler());
            
            /** TileEntity Registering */
            XtremTileEntities.register();
            }
            

            J’ai essayé pas mal de choses, alors après c’était la nuit donc j’imagine que j’étais pas au top, mais la j’avoue que je suis aux limites de ma compréhension du java (j’imagine que c’est un truc tout con en plus)

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

              La convention. tile_entity -> tileEntity.
              Est-ce que le message est affiché dans la console ?

              Moddeur 1.8

              Développeur Java

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

                @‘Snowy_1803’:

                La convention. tile_entity -> tileEntity.
                Est-ce que le message est affiché dans la console ?

                Je ne suis pas sur de comprendre ce que tu me demandes 😕

                Haa, si c’est bon j’ai compris. Non, le message ne s’affiche pas. Il n’y a que celui que j’ai rajouté dans la classe du block sur onActivatedBlock

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

                  Tu n’as pas le message “Get ClientGuiElem” qui s’affiche ?
                  Pourtant ton GuiHandler est bien enregistré, le prob vient sûrement de ta condition, essaie de print les 2 méthodes getClientGuiElement et getServerGuiElement.

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

                    Le seul message que j’ai dans la console c’est “Le Gui est la” que je print depuis le onActivatedBlock. Rien d’autre en fait 😕

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

                      Normalement les méthodes sont appelées c’est byzarre, mais même si elles sont appelées, ça marchera pas, faut pos.getX() au lieu de player.posX

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

                        tu parles de ça?

                        player.openGui(Xtrem.instance, 0, world, pos.getX(), pos.getY(), pos.getZ());

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

                          Oui je parlait de ça 🙂

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

                            Je viens de tester mais ça ne change rien du tout en fait xD J’imagine que j’ai tout cassé la lol

                            Je me suis aussi rendu compte que j’avais pas filé les bons fichiers au cas ou

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

                              Dans ton container :

                                  @Override
                                  public boolean canInteractWith(EntityPlayer player) {
                                  // TODO Auto-generated method stub
                                      return false;
                                  }
                              

                              Doit retourner true pour que ça marche.

                              PS: l’éditeur est complètement buggé, les flèches directionneles fonctionnent de manière anarchique tout comme la touche entrée, et impossible d’effacer un retour à la ligne (je précise que ce n’est pas toujours, des fois ça le fait des fois pas) 😢

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

                                J’avais lu quelque part que ça devait être mis sur false. Quoiqu’il en soit, aucune différence apparemment 😕

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

                                  Si false, ça ne pourra jamais être ouvert par un joueur.
                                  Et essaye de changer ta ligne de registry de l’Handler par ça : NetworkRegistry.INSTANCE.registerGuiHandler(this.instance, new GuiHandler());
                                  (J’ai rajouté le .instance)

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

                                    Okay… j’ai été con je crois. J’aurai passé le mod class, vous auriez trouvé de suite je pense… Je viens de renommer mon instance avec le même nom que le modid et la ça marche

                                    Merci quand même ^^’ J’aurai quand même appris qqchose 😛

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

                                      Et ben c’est bien 🙂
                                      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
                                      • robin4002R Hors-ligne
                                        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                        dernière édition par

                                        N’oulies pas la balise résolu si c’est résolu.

                                        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