MFF

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

    Problème GUI

    Planifier Épinglé Verrouillé Déplacé Sans suite
    5 Messages 2 Publieurs 1.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.
    • isadorI Hors-ligne
      isador Moddeurs confirmés Modérateurs
      dernière édition par

      Salut a tous, j’ai essayer de créer un GUI Container avec un KeyBinging mais voila j’ai un crash: http://pastebin.com/20UhCpqY

      voici mes classe:
      main:

      
      package CoeSpell;
      
      import org.lwjgl.input.Keyboard;
      
      import CoeSpell.Container.TutoKeyBind;
      import CoeSpell.Container.TutorielGuiHandler;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.main.Main;
      import net.minecraft.client.settings.KeyBinding;
      import cpw.mods.fml.client.registry.KeyBindingRegistry;
      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.FMLPreInitializationEvent;
      import cpw.mods.fml.common.network.NetworkMod;
      import cpw.mods.fml.common.network.NetworkRegistry;
      
      @Mod(modid="coespell", name="CoeSpell", version="1.0.0")
      @NetworkMod(clientSideRequired=true, serverSideRequired=false) //NE JAMAIS MODIFIER
      
      public class CoeSpellMain {
      
      @SidedProxy(clientSide = "CoeSpell.ClientProxy", serverSide = "CoeSpell.CommonProxy")
      public static CoeSpell.CommonProxy proxy;
      
      @Instance("coespell")
      public static CoeSpellMain instance;
      
      @EventHandler
      public void PreInit(FMLPreInitializationEvent event){
      
      //Configuration
      
      if(event.getSide().isClient())
      {
      if(Minecraft.getMinecraft().mcDataDir.getPath().equals("."))
      {
      
      // on fait rien car on est sur eclipse
      }
      else if(!Minecraft.getMinecraft().mcDataDir.getPath().contains("elementlauncher"))
      {
      try
      {
      throw(new Exception("Mauvais launcher détecté"));
      }
      catch(Exception ex)
      {
      System.exit(-1);
      }
      }
      }
      
      //tutomain.Blocks
      
      //tutomain.Items
      
      //Registers.Blocks
      
      //Registers.Items
      
      }
      
      @EventHandler
      public void Init(FMLInitializationEvent Event){
      KeyBinding[] key = {new KeyBinding("Codec", Keyboard.KEY_P)};
      boolean[] repeat = {false};
      KeyBindingRegistry.registerKeyBinding(new TutoKeyBind());
      
      NetworkRegistry.instance().registerGuiHandler(this.instance, new TutorielGuiHandler(key, repeat));
      //Render
      proxy.registerRenderers();
      
      //Recipe
      
      //Smelting
      
      }
      
      @EventHandler
      public void PostInit(FMLInitializationEvent event){
      
      }
      }
      
      

      ClientProxy:

      
      package CoeSpell;
      
      import CoeLevel.CommonProxy;
      
      public class ClientProxy extends CommonProxy{
      
      @Override
      public void registerRenderers(){
      }
      
      }
      
      

      GuiHandler:

      
      package CoeSpell.Container;
      
      import net.minecraft.client.settings.KeyBinding;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.world.World;
      import cpw.mods.fml.common.network.IGuiHandler;
      
      public class TutorielGuiHandler implements IGuiHandler{
      public static final int tutoGuiHandler = 1;
      
      private EntityLiving entityL;
      public TutorielGuiHandler(KeyBinding[] key, boolean[] repeat) {
      // TODO Auto-generated constructor stub
      }
      
      @Override
      public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
      switch(ID){
      case 1: return new ContainerTuto();
      default : return null;
      }
      
      }
      
      @Override
      public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
      switch(ID){
      case 1: return new GuiTuto();
      default : return null;
      }
      }
      
      }
      
      

      KeyBinding:

      
      package CoeSpell.Container;
      
      import java.util.EnumSet;
      
      import org.lwjgl.input.Keyboard;
      
      import CoeSpell.CoeSpellMain;
      import net.minecraft.client.Minecraft;
      import net.minecraft.client.main.Main;
      import net.minecraft.client.settings.KeyBinding;
      import net.minecraft.entity.player.EntityPlayer;
      import cpw.mods.fml.client.FMLClientHandler;
      import cpw.mods.fml.client.registry.KeyBindingRegistry.KeyHandler;
      import cpw.mods.fml.common.TickType;
      import cpw.mods.fml.common.network.FMLNetworkHandler;
      import cpw.mods.fml.common.network.Player;
      
      public class TutoKeyBind extends KeyHandler
      {
      public static KeyBinding tutoKey = new KeyBinding("key.button.tutoKey", Keyboard.KEY_P);
      public TutoKeyBind()
      {
      
      super(new KeyBinding[] {tutoKey}, new boolean[] {false});
      }
      
      @Override
      public String getLabel()
      {
      return "Key Tutorial";
      }
      
      @Override
      public void keyDown(EnumSet <ticktype>types, KeyBinding kb, boolean tickEnd, boolean isRepeat) {
      }
      
      @Override
      public void keyUp(EnumSet <ticktype>types, KeyBinding kb, boolean tickEnd)
      {
      
      EntityPlayer player = FMLClientHandler.instance().getClient().thePlayer;
      Minecraft mc = Minecraft.getMinecraft();
      
      if(kb.keyCode == tutoKey.keyCode && mc.currentScreen == null) // Tu vérifie qu'il à appuyer sur la touche et qu'il a pas d'autre gui d'ouvert.
      {
      FMLNetworkHandler.openGui(player, CoeSpellMain.instance, 10, player.worldObj, (int)Math.floor(player.posX), (int)Math.floor(player.posY), (int)Math.floor(player.posZ));
      }
      
      }
      
      @Override
      public EnumSet <ticktype>ticks()
      {
      return EnumSet.allOf(TickType.class);
      }
      }
      
      ```</ticktype></ticktype></ticktype>
      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 te perds entre tes différents mod. Tu as importé le CommonProxy d’un autre mod dans ton client proxy, forcement ça fonctionne pas.

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

          a merde j’ai pas fait gaffe
          donc mon jeut ne crashe plus, mais ca vais pas m’ouvrir le GUI

          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

            Normal, tu lui dis d’ouvrir avec l’id 10, et dans le gui handler tu as mit l’id 1.
            Donc soit tu change le 10 en 1 dans la fonction FMLNetworkHandler.openGui, soit tu mets case 10 dans ton gui handler.

            En passant :

            public static final int tutoGuiHandler = 1;
            
            private EntityLiving entityL;
            public TutorielGuiHandler(KeyBinding[] key, boolean[] repeat) {
            // TODO Auto-generated constructor stub
            }
            

            Ceci traîne dans ton gui handler et ne sert à rien.

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

              ok c’est bon mon GUI s’ouvre, mais maintenant comment faire en sorte d’ajouter des item dedans (les item aurons une place défini et ne pourront pas changer de place)

              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