MFF

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

    Problème avec le Gui & Container [1.7.10]

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    13 Messages 2 Publieurs 725 Vues 2 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 @Xemnys
      dernière édition par robin4002

      @Xemnys a dit dans Problème avec le Gui & Container [1.7.10] :

      Je n’ai pas coupé le code, je n’ai juste pas tout pris le code (les imports et autres)

      Imprimes ta classe sur une feuille de papier et coupe-là juste après les importations. Tu aura exactement le résultat qu’ici, c’est pour ça que j’ai dit “Dommage d’avoir coupé les importations”.


      Cela correspond à ça :
      if (this.tileForge.isBurning())
      tileForge est donc null, tu peux envoyer le code de ton guihandler ?

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

        D’accord, voici le code du GuiHandler :

        import cpw.mods.fml.common.network.IGuiHandler;
        import fr.irisium.irisiummod.container.ContainerForge;
        import fr.irisium.irisiummod.gui.GuiForge;
        import fr.irisium.irisiummod.tileentity.TileEntityForge;
        import net.minecraft.entity.player.EntityPlayer;
        import net.minecraft.world.World;
        
        public class GuiHandler implements IGuiHandler
        {
        public GuiHandler (){
        		
        	}
        	
        	@Override
        	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        		if(ID == 0){
        			TileEntityForge tileEntityForge = (TileEntityForge) world.getTileEntity(x, y, z);
        			return new ContainerForge(player.inventory, tileEntityForge);
        		}
        		return null;
        	}
        
        	@Override
        	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        		if(ID == 0){
        			TileEntityForge tileEntityForgeContainer = (TileEntityForge) world.getTileEntity(x, y, z);
        			return new GuiForge(player.inventory, tileEntityForgeContainer);
        		}
        		return null;
        	}
        
        }
        

        Merci d’avoir pris du temps pour répondre à mon problème,
        Cordialement, Xemnys

        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

          Aucun problème ici, le seul moyen d’avoir un NPE est que world.getTileEntity(x, y, z) renvoie null.

          Et en remontant à la classe de ton bloc, en effet à aucun moment tu n’indiques que ton bloc a un tile entity (il faut implémenter les méthodes hasTileEntity et createTileEntity

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

            Bonsoir,
            J’ai fait comme vous me l’avez dit, d’ajouter les méthodes hasTileEntity et createTileEntity dans la classe du block mais c’est toujours les mêmes crash-report.
            Mais en regardant le crash-report, j’ai remarquer qu’il y a un soucis dans la ligne du “onBlockActivated” dans la classe BlockForgeMod.

            Merci d’avoir pris le temps de m’aider,
            Cordialement, Xemnys

            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 mis quoi dans ces deux fonctions ?
              Ton tile entity est bien enregistré ? https://www.minecraftforgefrance.fr/topic/995/ajouter-une-entité-à-votre-bloc-tile-entity

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

                Voici ce que j’ai mis dans les deux fonctions :

                @Override
                	public boolean hasTileEntity(int metadata) {
                		return true;
                	}
                
                	@Override
                	public TileEntity createTileEntity(World world, int metadata) 
                	{
                		if(metadata == 0) 
                		{
                			return new TileEntityForge();
                		}
                		else if(metadata == 1)
                		{
                			return new TileEntityForge();
                		}
                		else if(metadata == 2)
                		{
                			return new TileEntityForge();
                		}
                		return null;
                	}
                

                Et oui j’ai bien enregistrer le TileEntity.

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

                  J’ai fait des modifications dans la ligne “onBlockActivated” voici le code :

                  public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int par6, float par7, float par8, float par9)
                  	{
                  		if (world.isRemote)
                  		{
                  			return true;
                  		}
                  		else
                  		{
                  			TileEntityForge tileentityforge = (TileEntityForge)world.getTileEntity(x, y, z);
                  			
                  			if (tileentityforge != null)
                  			{
                  				player.openGui(IrisiumMod.instance, 0, world, x, y, z);
                  			}
                  			
                  			return true;
                  		}
                  	}
                  

                  Mais cette fois, quand on fait un clique droit sur le block, rien ne se passe. Pas de crash juste le gui qui ne veut pas s’ouvrir.

                  Cordialement, Xemnys.

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

                    Bonsoir,

                    Petite mise à jour au niveau du block, sur un court temps j’ai réussi à accéder au block mais après avoir cassé le block et l’avoir reposé. Je n’arrive plus à y accéder.

                    Cordialement, Xemnys.

                    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 robin4002

                      Tu peux mettre directement comme ceci, sans check de metadata :

                          @Override
                          public TileEntity createTileEntity(World world, int metadata) 
                          {
                              return new TileEntityForge();
                          }
                      

                      Il y a une erreur dans les logs où quelque chose ?

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

                        C’est bon tout marche bien, merci beaucoup de ton aide

                        Cordialement, Xemnys

                        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