MFF

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

    Afficher un GUI

    Planifier Épinglé Verrouillé Déplacé Résolu 1.7.x
    1.7.10
    3 Messages 2 Publieurs 948 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.
    • LycoonL Hors-ligne
      Lycoon
      dernière édition par

      Voilà, j’ai créé un GUI mais je ne vois pas comment l’afficher étant donné que la méthode player.openGui() (que j’ai indiqué en gras dans la classe CommonProxy) ne semble pas fonctionner lorsque j’appuie sur Y. Pourtant, cela fonctionne très bien avec des affichages console, le problème vient vraiment de cette méthode. Je programme déjà en Java mais je viens seulement de débuter le modding MC hier. Merci d’être indulgent !  😉

      :::

      package com.lycoon.lemnoslife;
      
      import org.lwjgl.input.Keyboard;
      
      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 net.minecraft.client.settings.KeyBinding;
      
      @Mod(modid = Main.MODID, name = Main.MODNAME, version = Main.VERSION)
      
      public class Main {
      
      @SidedProxy(clientSide="com.lycoon.lemnoslife.CommonProxy", serverSide="com.lycoon.lemnoslife.ServerProxy")
      public static CommonProxy proxy;
      
          public static final String MODID = "Lemnos";
          public static final String MODNAME = "Lemnos Life";
          public static final String VERSION = "0.1";
      
          @Instance
          public static Main instance = new Main();
      
          @EventHandler
          public void preInit(FMLPreInitializationEvent e) {
          proxy.preInit(e);
          System.out.println("preInit");
          }
      
          @EventHandler
          public void init(FMLInitializationEvent e) {
          proxy.init(e);
          System.out.println("init");
          }
      
          @EventHandler
          public void postInit(FMLPostInitializationEvent e) {
          proxy.postInit(e);
          System.out.println("postInit");
          }
      }
      

      :::
      :::

      package com.lycoon.lemnoslife;
      
      import org.lwjgl.input.Keyboard;
      import cpw.mods.fml.client.registry.ClientRegistry;
      import cpw.mods.fml.common.FMLCommonHandler;
      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.eventhandler.SubscribeEvent;
      import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
      import cpw.mods.fml.common.network.NetworkRegistry;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.world.World;
      import net.minecraftforge.common.MinecraftForge;
      import net.minecraft.client.settings.KeyBinding;
      
      public class CommonProxy {
      
      private static KeyBinding bankMenuKeybind;
      
      public CommonProxy()
      
      {
      FMLCommonHandler.instance().bus().register(this);
      bankMenuKeybind = new KeyBinding("Menu banque", Keyboard.KEY_Y, "key.categories.gameplay");
      ClientRegistry.registerKeyBinding(bankMenuKeybind);
      }
      
      @SubscribeEvent
      public void onEvent(KeyInputEvent event)
      {
      if(bankMenuKeybind.isPressed()){
      **player.openGui(Main.instance, 0, world, int player.posX, int player.posY, int player.posZ);**
      }
      }
      
      public void preInit(FMLPreInitializationEvent e) {
      
          }
      
          public void init(FMLInitializationEvent e) {
          NetworkRegistry.INSTANCE.registerGuiHandler(Main.instance, new ModGuiHandler());
          MinecraftForge.EVENT_BUS.register(new EventHandlerCommon());
          }
      
          public void postInit(FMLPostInitializationEvent e) {
      
          }
      }
      

      :::
      :::

      package com.lycoon.lemnoslife;
      
      import cpw.mods.fml.common.event.FMLInitializationEvent;
      import cpw.mods.fml.common.event.FMLPostInitializationEvent;
      import cpw.mods.fml.common.event.FMLPreInitializationEvent;
      
      public class ServerProxy extends CommonProxy {
      
          @Override
          public void preInit(FMLPreInitializationEvent e) {
              super.preInit(e);
          }
      
          @Override
          public void init(FMLInitializationEvent e) {
              super.init(e);
          }
      
          @Override
          public void postInit(FMLPostInitializationEvent e) {
              super.postInit(e);
          }
      
      }
      

      :::
      :::

      package com.lycoon.lemnoslife;
      
      import cpw.mods.fml.common.eventhandler.EventPriority;
      import cpw.mods.fml.common.eventhandler.SubscribeEvent;
      import cpw.mods.fml.common.gameevent.InputEvent.KeyInputEvent;
      import cpw.mods.fml.relauncher.Side;
      import cpw.mods.fml.relauncher.SideOnly;
      import net.minecraft.client.settings.KeyBinding;
      import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
      
      public class EventHandlerCommon {
          @SubscribeEvent(priority = EventPriority.NORMAL)
          public void onPlayerPickupXP(PlayerPickupXpEvent e) {
          System.out.println("XP Ramassée");
          }
      }
      
      

      :::
      :::

      package com.lycoon.lemnoslife;
      
      import cpw.mods.fml.common.network.IGuiHandler;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.world.World;
      
      public class ModGuiHandler implements IGuiHandler{
      
      public static final int MOD_TILE_ENTITY_GUI = 0;
      
      @Override
          public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
          return null;
          }
      
          @Override
          public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
              if (ID == MOD_TILE_ENTITY_GUI)
                  return new GuiLemnos();
              return null;
          }
      }
      
      

      :::
      :::

      package com.lycoon.lemnoslife;
      
      import net.minecraft.client.gui.GuiButton;
      import net.minecraft.client.gui.GuiScreen;
      
      public class GuiLemnos extends GuiScreen{
      
      private GuiButton retrait;
      private GuiButton depot;
      
      @Override
      public void drawScreen(int mouseX, int mouseY, float partialTicks) {
      this.drawDefaultBackground();
      super.drawScreen(mouseX, mouseY, partialTicks);
      }
      
      @Override
      public void initGui() {
      this.buttonList.add(this.retrait = new GuiButton(0, this.width / 2 - 100, this.height / 2 - 24, "Retrait"));
      this.buttonList.add(this.depot = new GuiButton(1, this.width / 2 - 100, this.height / 2 + 4, "Dépôt"));
      }
      
      }
      

      :::

      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

        Salut,
        La fonction player.openGui est à utiliser côté serveur, elle envoie automatiquement un paquet au client.

        Dans ton cas il faudrait plutôt utiliser Minecraft.getMinecraft().displayGuiScreen(new TonGuiScreen());

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

          @‘robin4002’:

          Salut,
          La fonction player.openGui est à utiliser côté serveur, elle envoie automatiquement un paquet au client.

          Dans ton cas il faudrait plutôt utiliser Minecraft.getMinecraft().displayGuiScreen(new TonGuiScreen());

          Merci ça fonctionne, tu me sauves ! J’ai pas trouvé une seule fois cette ligne sur internet

          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