MFF

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

    Créer un gui et un container sur un bloc (type coffre)

    Planifier Épinglé Verrouillé Déplacé Les interfaces (GUI) et les container
    1.6.x
    136 Messages 24 Publieurs 55.9k Vues 5 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.
    • M Hors-ligne
      MrAzErTy31
      dernière édition par

      As-tu remplis ta fonction getLocalGuiContainer dans le GuiHandler ? Si non, mets-y exactement pareil que pour le serveur en changeant le return par le gui de ton bloc.

      Ce qui donne :

      ​@Override
      
          public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
              TileEntity te = world.getTileEntity(x, y, z);
              if(te instanceof TonTileEntity)
              return new GuiDetonBloc(player.inventory, (TonTileEntity)te);
              return null;
          }
      

      Mes mods :

      >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
      CraftYourMenu : http://minecraftforgefrance.fr/showth…

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

        j’ai sa :

        ​    @Override
        
            public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
                if(ID == 0){
                    TileEntityFourArc tileEntityFourArc = (TileEntityFourArc) world.getTileEntity(x, y, z);
                    return new ContainerFourArc(player.inventory, tileEntityFourArc);
                }
                return null;
            }
        
            @Override
            public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
                if(ID == 0){
                    TileEntityFourArc ContainerFourArc = (TileEntityFourArc) world.getTileEntity(x, y, z);
                    return new GuiFourArc(player.inventory, ContainerFourArc);
                }
                return null;
            }
        

        en faisant comme tu me dit sa me met des erreurs

        Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

        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 as un NPE, à mon avis c’est ton instance qui est null, envoie ta classe principale.

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

            je pense que j’ai oublié des choses dans la classe principale

            ​package com.bowser.robotic.common;
            
            import net.minecraft.block.Block;
            import net.minecraft.block.material.Material;
            import net.minecraft.creativetab.CreativeTabs;
            import net.minecraft.item.Item;
            import net.minecraft.item.ItemStack;
            import net.minecraftforge.common.MinecraftForge;
            
            import com.bowser.robotic.proxy.CommonProxy;
            
            import cpw.mods.fml.common.Mod;
            import cpw.mods.fml.common.Mod.EventHandler;
            import cpw.mods.fml.common.Mod.Instance;
            import cpw.mods.fml.common.SidedProxy;
            import cpw.mods.fml.common.event.FMLInitializationEvent;
            import cpw.mods.fml.common.event.FMLPostInitializationEvent;
            import cpw.mods.fml.common.event.FMLPreInitializationEvent;
            import cpw.mods.fml.common.network.NetworkRegistry;
            import cpw.mods.fml.common.registry.GameRegistry;
            
            @Mod(modid = "roboticmod", name = "Mod Robotic", version = "1.0.0")
            
            public class Robotic
            {
            
            public static final String modid = "roboticmod";
            
                @Instance("roboticmod")
                public static Robotic instance;
            
                @SidedProxy(clientSide = "com.bowser.robotic.proxy.ClientProxy", serverSide = "com.bowser.robotic.proxy.CommonProxy")
                public static CommonProxy proxy;
            
                //blocks
                public static Block cuivreOre;
                public static Block blockCable;
                public static Block boisResine;
                public static Block feuillesResine;
                public static Block pousseResine;
                public static Block fourArc;
                public static Block lithiumOre;
            
                //items
                public static Item copperIngot;
                public static Item lithiumDust;
            
                @EventHandler
                public void preInit(FMLPreInitializationEvent event)
                {
                    //Blocks
                    cuivreOre = new OreCuivre(Material.rock).setBlockName("cuivreore").setBlockTextureName("roboticmod:orecuivre").setCreativeTab(CreativeTabs.tabBlock).setHardness(3.0F).setResistance(5.0F);
                    GameRegistry.registerBlock(cuivreOre, "block_cuivre");
            
                    lithiumOre = new LithiumOre(Material.rock).setBlockName("lithiumore").setBlockTextureName("roboticmod:orelithium").setCreativeTab(CreativeTabs.tabBlock).setHardness(4.0F).setResistance(5.0F);
                    GameRegistry.registerBlock(lithiumOre, "block_lithium");
            
                        //blocks+techne
                    fourArc = new FourArcBlock(Material.rock, false).setBlockName("fourarc").setBlockTextureName("roboticmod:fourarcbreak").setCreativeTab(CreativeTabs.tabBlock).setHardness(3.0F).setResistance(5.0F);
                    GameRegistry.registerBlock(fourArc, "four_arc");
            
                    blockCable = new BlockElectricCable().setBlockName("blockPipe").setCreativeTab(CreativeTabs.tabBlock);
                    GameRegistry.registerBlock(blockCable, "block_cable");
            
                    //arbre de Resine
                    boisResine = new BoisResine().setBlockTextureName("roboticmod:resine_bois").setBlockName("resine_bois");
                    feuillesResine = new FeuillesResine().setBlockTextureName("roboticmod:feuilles").setBlockName("resine_feuilles"); 
                    pousseResine = new PousseResine().setBlockTextureName("roboticmod:pousse").setBlockName("resine_pousse");
            
                    GameRegistry.registerBlock(boisResine , "resine_bois");
                    GameRegistry.registerBlock(feuillesResine , "resine_feuilles");
                    GameRegistry.registerBlock(pousseResine, "resine_pousse");
            
                    //items
                    copperIngot = new CopperIngot().setUnlocalizedName("copperingot").setTextureName("roboticmod:copperingot").setCreativeTab(CreativeTabs.tabMaterials);
                    GameRegistry.registerItem(copperIngot, "copper_ingot");
            
                    lithiumDust = new LithiumDust().setUnlocalizedName("lithiumdust").setTextureName("roboticmod:lithiumdust").setCreativeTab(CreativeTabs.tabMaterials);
                    GameRegistry.registerItem(lithiumDust, "lithium_dust");
            
                    //recipe furnace basic
                    GameRegistry.addSmelting(cuivreOre, new ItemStack(copperIngot, 1), 0f);
                }
            
                @EventHandler
                public void init(FMLInitializationEvent event)
                {
                    proxy.registerRender();
            
                    proxy.registerTileEntityRender();
            
                    GameRegistry.registerTileEntity(TileEntityFourArc.class, "FourArc");
            
                    //generator
                    GameRegistry.registerWorldGenerator(new WorldGeneratorCopper(), 0);
            
                        //generation Arbres a Resine
                    GameRegistry.registerWorldGenerator(new WorldGeneration(), 0);
            
                    GameRegistry.registerTileEntity(TileEntityPipe.class, "Pipe");
                }
            
                @EventHandler
                public void postInit(FMLPostInitializationEvent event)
                {
            
                }
            }
            

            Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

            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

              En fait non, ton instance est bonne, je viens de relire le crash, le npe n’est pas sur l’instance, mais ici :
              at cpw.mods.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:263)
              Donc le problème vient bien du GuiHandle que tu n’as visiblement pas enregistré.
              Donc enregistre ton gui handler de la methode init de ta classe principale et ça sera bon.

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

                Désoler mais je sais pas du tout comment faire 😕
                j’ai regarder le tuto et j’ai adapté ( comme sa change en 1.7.10 )

                donc dans Init de la classe principale sa donne 
                proxy.registerGuiHandler(this.instance, new GuiHandler());

                donc dans CommonProxy il me dit de mettre :

                ​    public void registerGuiHandler(Robotic instance, GuiHandler guiHandler)
                
                    {
                
                    }
                

                je dois mettre quelque chose dedans ? parce que sa ne marche toujours pas enfin toujours la meme erreur donc a pirori je l’ai mal enregistré

                Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                  Non, il faut que tu enregistre le GuiHandler dans la fonction init de ta classe principale, regarde le tutoriel

                  Mes mods :

                  >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                  CraftYourMenu : http://minecraftforgefrance.fr/showth…

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

                    c’est bon j’ai réussi 
                    dans la classe principale on a :

                    ​%(#555555)[[font=Arial, tahoma, sans-serif]proxy.registerGuiHandler(this.instance, new GuiHandler());]
                    

                    et dans le CommonProxy :

                    ​    public void registerGuiHandler(Robotic instance, GuiHandler guiHandler)
                    
                        {
                            // TODO Auto-generated method stub
                            NetworkRegistry.INSTANCE.registerGuiHandler(Robotic.modid, new GuiHandler());
                        }
                    

                    En tout cas merci de votre aide a tous

                    Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                      Tu peux directement mettre le “NetworkRegistry.INSTANCE.registerGuiHandler(Robotic.modid, new GuiHandler());” dans ta fonction init.

                      Mes mods :

                      >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                      CraftYourMenu : http://minecraftforgefrance.fr/showth…

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

                        Ok bon a savoir merci en tout cas

                        Tout probleme a sa solution, s'il n'y a pas de solution c'est qu'il n'y a pas de problemes

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

                          Plop!

                          Hum, je sais pas si le tuto est entièrement compatible 1.7.10 mais moi de mon côté j’ai quelques erreurs:

                          Méthode readFromNBT(NBTTagCompound) du TileEntity:
                          “The method getTagList(String, int) in the type NBTTagCompound is not applicable for the arguments (String)”
                          “The method tagAt(int) is undefined for the type NBTTagList”

                          Méthodes decrStackSize(int, int) et setInventorySlotContents(int, ItemStack) du TileEntity:
                          “The method onInventoryChanged() is undefined for the type TileEntityBigChest”

                          Méthode drawGuiContainerForegroundLayer(int, int) du GUI:
                          “fontRenderer cannot be resolved or is not a field”
                          “The method isInvNameLocalized() is undefined for the type IInventory”
                          “The method getString(String) is undefined for the type I18n”

                          Vàla, en espérant qu’il y ait une solution 😕

                          Mes mods :

                          • Cookie Ore (1.7.10)

                          Mod en cours : **E…

                          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

                            Non, il n’est pas fait pour la 1.7.
                            Regarde ici :
                            https://github.com/FFMT/Privatizer/tree/master/privatizer_src/fr/mcnanotech/privatizer/common
                            TileEntityPrivateChest et ContainerPrivateChest devrait t’aider.

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

                              Merci pour cette réponse rapide ^^
                              Je vais y jeter un coup d’oeil.
                              Est-ce que le tuto sera mis à jour pour la 1.7 ou bien il passera directement en 1.8?  😄

                              EDIT: Au fait, “massive” work 😛

                              Mes mods :

                              • Cookie Ore (1.7.10)

                              Mod en cours : **E…

                              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

                                Je ne sais pas, ça dépendra de mon temps.

                                Ah oui en effet, mais maintenant c’est trop tard pour changer le nom du commit ^^

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

                                  Salut, comment rajouter un bouton sur le gui ? Et faire que quand on clique dessus ca fait quelque chose ?

                                  Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                                  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

                                    C’est le même principe que pour ajouter des boutons dans un menu de Minecraft. Tu peux aussi regarder le gui de l’enclume (GuiRepair)
                                    Attention si les actions que tu veux faire doit être fait côté serveur, il faut utiliser un paquet.

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

                                      Je veux faire que si dans le slot 1 on a un objet precis alors ca le supprime et ca mets un autre item dans un autre slot

                                      Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                                      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 n’es pas obliger de passer par un bouton pour ça, tu peux passer par la fonction update() du tile entity. Mais si tu veux vraiment le faire depuis un bouton, il te faudra un paquet.

                                        Dans mod privatizer depuis un bloc avec un gui et un container on peut modifier le mot de passe d’un bloc via une zone de texte et un bouton confirmer.
                                        La déclaration du bouton : https://github.com/FFMT/Privatizer/blob/master/privatizer_src/fr/mcnanotech/privatizer/client/GuiPrivateEditor.java#L47-L49

                                        Et l’action du bouton : https://github.com/FFMT/Privatizer/blob/master/privatizer_src/fr/mcnanotech/privatizer/client/GuiPrivateEditor.java#L105-L112

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

                                          J’ai réussis a mettre le bouton et tout, mais je ne trouves pas comment faire que ça check les slots, et que ça te donne la potions et que ça supprime les ingrédients… Tu peux m’aider ?

                                          Developpeur d'Hogsmod, un mod implémentant le Monde d'Harry Potter dans Minecraft!

                                          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

                                            Envoie ton code et explique précisément ce que tu cherche à faire.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 7
                                            • 4 / 7
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB