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 726 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.
    • XemnysX Hors-ligne
      Xemnys
      dernière édition par

      Bonjour,

      Je n’ai pas coupé le code, je n’ai juste pas tout pris le code (les imports et autres) mais la ligne 43 est au faite la ligne 28 pour le Gui

      Cordialement, Xemnys

      robin4002R 1 réponse Dernière réponse Répondre Citer 0
      • 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