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.
    • arthur111213A Hors-ligne
      arthur111213
      dernière édition par

      Le GuiHandler du bloc qui ne s’ouvre plus.

      
      package _fearZ.mod;
      
      import _fearZ.mod.tileentity.TileEntityArmoirePh;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.world.World;
      import cpw.mods.fml.common.network.IGuiHandler;
      
      public class GuiHandlerArmoirePh implements IGuiHandler
      {
      @Override
      public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
      {
      TileEntity te = world.getBlockTileEntity(x, y, z);
      if(te instanceof TileEntityArmoirePh)
      {
      return new ContainerArmoirePh(player.inventory, (TileEntityArmoirePh)te);
      }
      return null;
      }
      
      @Override
      public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
      {
      TileEntity te = world.getBlockTileEntity(x, y, z);
      if(te instanceof TileEntityArmoirePh)
      {
      return new GuiArmoirePh(player.inventory, (TileEntityArmoirePh)te);
      }
      return null;
      }
      }
      
      

      Celui de mon nouveau bloc

      
      package _fearZ.mod.gui.handler;
      
      import _fearZ.mod.containers.ContainerMChest;
      import _fearZ.mod.gui.GuiMChest;
      import _fearZ.mod.tileentity.TileEntityMChest;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.tileentity.TileEntity;
      import net.minecraft.world.World;
      import cpw.mods.fml.common.network.IGuiHandler;
      
      public class GuiHandlerMChest implements IGuiHandler
      {
      @Override
      public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
      {
      TileEntity te = world.getBlockTileEntity(x, y, z);
      if (te instanceof TileEntityMChest)
      {
      return new ContainerMChest(player.inventory, (TileEntityMChest)te);
      }
      return null;
      }
      
      @Override
      public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
      {
      TileEntity te = world.getBlockTileEntity(x, y, z);
      if (te instanceof TileEntityMChest)
      {
      return new GuiMChest(player.inventory, (TileEntityMChest)te);
      }
      return null;
      }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • Superloup10S Hors-ligne
        Superloup10 Modérateurs
        dernière édition par

        C’est un guiHandler par mod, logiquement.

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

          package _fearZ.mod;
          
          import _fearZ.mod.containers.ContainerMChest;
          import _fearZ.mod.gui.GuiMChest;
          import _fearZ.mod.tileentity.TileEntityMChest;
          import _fearZ.mod.tileentity.TileEntityArmoirePh;
          import net.minecraft.entity.player.EntityPlayer;
          import net.minecraft.tileentity.TileEntity;
          import net.minecraft.world.World;
          import cpw.mods.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 te = world.getBlockTileEntity(x, y, z);
          if(te instanceof TileEntityArmoirePh)
          {
          return new ContainerArmoirePh(player.inventory, (TileEntityArmoirePh)te);
          }
          if (te instanceof TileEntityMChest)
          {
          return new ContainerMChest(player.inventory, (TileEntityMChest)te);
          }
          return null;
          }
          
          @Override
          public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
          {
          TileEntity te = world.getBlockTileEntity(x, y, z);
          if(te instanceof TileEntityArmoirePh)
          {
          return new GuiArmoirePh(player.inventory, (TileEntityArmoirePh)te);
          }
          if (te instanceof TileEntityMChest)
          {
          return new GuiMChest(player.inventory, (TileEntityMChest)te);
          }
          return null;
          
          }
          }
          
          1 réponse Dernière réponse Répondre Citer 0
          • arthur111213A Hors-ligne
            arthur111213
            dernière édition par

            Ah d’accord. Merci pour l’info. je savais pas… ou peut-être ais-je mal lu le tuto.

            1 réponse Dernière réponse Répondre Citer 0
            • Phenix246P Hors-ligne
              Phenix246 Rédacteurs
              dernière édition par

              J’ai suivie le tutoriel, vérifier mon code avec celui du github du tuto et tout à l’aire bon même éclipse ne dit rien, aucun message d’erreur, rien du tout, mais rien ne se passe quand je fait un clic droit sur mon block.

              lien du code :

              classe principale
              GuiHandler
              Class du block
              Le GUI
              Le container
              Le TileEntity

              Pouvez vous me dire où est mon erreur .

              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

                Étrange, le System.out.println(“BoxChest - ac”); s’affiche t-il dans la console ?

                1 réponse Dernière réponse Répondre Citer 0
                • Phenix246P Hors-ligne
                  Phenix246 Rédacteurs
                  dernière édition par

                  non justement,je l’avait mis afin de voir à quelle étape ça ne marchait pas

                  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

                    Dans ce cas ça veut dire que ta condition if(metadata <= 6 && metadata >= 11) n’est pas remplit, il faut que tu cherches pourquoi. (fait par exemple un player.addChatMessage(String.valueOf(metadata)); pour vérifier le metadata du bloc).

                    1 réponse Dernière réponse Répondre Citer 0
                    • Phenix246P Hors-ligne
                      Phenix246 Rédacteurs
                      dernière édition par

                      C’est en effet la condition qui a planté, je sais pas pourquoi car la syntaxe est bonne, et la condition (la valeur du metadata) aussi
                      18h30 :
                      je pense que je vais passer par un complément ou ( “||” ) ce ui me donne

                      
                      if(metadata == 6 || metadata == 7 || metadata == 8 || metadata == 9 || metadata == 10 || metadata == 11)
                      
                      

                      le truc c’est que la condition est bien plus lourde niveau écriture

                      18h45 :
                      C’est bon c’était ça, c’est quand même bizzard que la condition est buggé comme ça

                      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

                        if(metadata >= 6 && metadata <= 11)
                        Comme ça, ça devrait fonctionner. Avec la condition que tu avais avant tu disais “si le metadata est inférieur ou égale à 6 et qu’il est supérieur ou égale à 11 alors” ce qui ne peut pas arriver comme il existe aucun nombre qui remplit cette condition.

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

                          Salut je dois forcément mal faire, mais j’ai des erreurs partout.
                          Voici toutes mes classes :
                          Classe principale ModPirate http://pastebin.com/5piVduvS
                          Le block en question pour le coffre http://pastebin.com/TA1XwHUW
                          ContainerBigChest http://pastebin.com/514JcSJh
                          GuiBigChest http://pastebin.com/YKh7KWig
                          GuiHandlerTutorial http://pastebin.com/K2A9f9aJ
                          TitleEntityBigChest http://pastebin.com/UJQXakJn
                          TitleEntityTutorial http://pastebin.com/AcZECutX
                          TitleEntityTutorial2 http://pastebin.com/NyD7cQVP

                          merci d’avance :S

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

                            Heu je ne sais pas ce que tu as fait, mais la classe de ton bloc est complement érroné. (tout les @@ quelque chose @@ ne sont pas bon et tu as des méthodes dans d’autres méthodes …)
                            De plus tu n’as que besoin de 1 tile entity.

                            1 réponse Dernière réponse Répondre Citer 0
                            • isadorI Hors-ligne
                              isador Moddeurs confirmés Modérateurs
                              dernière édition par

                              comment modifier ce code pour que ça ouvre un container mais pas sur un bloc, en appuyant sur la touche P par exemple

                              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 beaucoup plus complexe, ce tutoriel ne pourrait pas s’appliquer, car sans bloc tu n’as pas de tile entity pour sauvegarder les itemStack, il faudrait passer par un custom properties dans le joueur.

                                1 réponse Dernière réponse Répondre Citer 0
                                • isadorI Hors-ligne
                                  isador Moddeurs confirmés Modérateurs
                                  dernière édition par

                                  car c’est pour faire un livre de sort où l’on choisirai ses spell (des item)

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

                                    @‘isador34’:

                                    comment modifier ce code pour que ça ouvre un container mais pas sur un bloc, en appuyant sur la touche P par exemple

                                    http://www.minecraftforgefrance.fr/showthread.php?tid=545

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • isadorI Hors-ligne
                                      isador Moddeurs confirmés Modérateurs
                                      dernière édition par

                                      merci ❤

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

                                        Petite question, comment faire pour par exemple reproduire une enclume? qui n’a pas de TileEntity, je veux dire, pour le GUIhandler, comment cela se passe?

                                        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 utiliser les id dans le openGui oui alors tu compares avec le bloc.

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

                                            j’avais fait ça:

                                            
                                            int block = world.getBlockId(x, y, z);
                                            if(block == Import.Rubanvil.blockID)
                                            {
                                            return new ContainerRubanvil(player.inventory, world, x, y, z, player);
                                            }
                                            
                                            
                                            
                                            int block = world.getBlockId(x, y, z);
                                            if(block == Import.Rubanvil.blockID)
                                            {
                                            return new GuiRubanvil(player.inventory, world, x, y, z);
                                            }
                                            
                                            

                                            Mais si cela te semble bon c’est que mon erreur vient d’autre part, et que je vais devoir fouiller

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

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB