Armor Hud



  • Bonjours, j'ai fait beaucoup de recherche est je trouve aucun tuto pour faire voir les degat de l'armur ext pouvez vous m'aider svp 
    PS : ducoup j'ai aucun code a vous donner



  • Il n'y a pas de tutoriel car ce n'est qu'une ligne de code pour avoir les dégâts de l'armure (ou d'un item tout court), il ne faut pas limiter ses recherches à internet mais aussi directement chercher dans le code de Minecraft.

    player.inventory.armorItemInSlot(slot d'armure(de 0 à 4)).getItemDamage();
    

    Voilà ce que tu cherches.



  • @'AymericRed':

    Il n'y a pas de tutoriel car ce n'est qu'une ligne de code pour avoir les dégâts de l'armure (ou d'un item tout court), il ne faut pas limiter ses recherches à internet mais aussi directement chercher dans le code de Minecraft.

    player.inventory.armorItemInSlot(slot d'armure(de 0 à 4)).getItemDamage();
    

    Voilà ce que tu cherches.

    Faut que je place ou la ligne de code est sa s'affiche bien a l'ecran comme sur l'image ?



  • non cette ligne sert juste a récupérer la durabilité (en gros un chiffre) de la pièce d'armure en question après il te faut utiliser l'event  onRenderGameOverlay  pour pouvoir dessiner du text a l'ecran

    1- Créer une class pour tes events apres tu l'enregistre dans la method postInit de forge

    
       @Mod.EventHandler
       public void postInit(FMLPostInitializationEvent event)
       {
           // ceci est la class en question qui contient les events
           EventHandler eh = new EventHandler();
           FMLCommonHandler.instance().bus().register(eh);
           MinecraftForge.EVENT_BUS.register(eh);
       }
    

    2- dans la class EventHandler il te suffit de mettre ceci

       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
       }
    
    

    sinon tu peut d'aider du mod ArmorStatusHUD de bspkrs 
    https://github.com/bspkrs/ArmorStatusHUD/blob/1.7.10/src/main/java/bspkrs/armorstatushud/HUDElement.java
    la ta la class de rendu



  • @'SpyMan':

    non cette ligne sert juste a récupérer la durabilité (en gros un chiffre) de la pièce d'armure en question après il te faut utiliser l'event  onRenderGameOverlay  pour pouvoir dessiner du text a l'ecran

    1- Créer une class pour tes events apres tu l'enregistre dans la method postInit de forge

    
       @Mod.EventHandler
       public void postInit(FMLPostInitializationEvent event)
       {
           // ceci est la class en question qui contient les events
           EventHandler eh = new EventHandler();
           FMLCommonHandler.instance().bus().register(eh);
           MinecraftForge.EVENT_BUS.register(eh);
       }
    

    2- dans la class EventHandler il te suffit de mettre ceci

       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
       }
    
    

    sinon tu peut d'aider du mod ArmorStatusHUD de bspkrs 
    https://github.com/bspkrs/ArmorStatusHUD/blob/1.7.10/src/main/java/bspkrs/armorstatushud/HUDElement.java
    la ta la class de rendu

    Peu tu re m'expliquer stp rien comprit desoler ^^'


    @'SpyMan':

    non cette ligne sert juste a récupérer la durabilité (en gros un chiffre) de la pièce d'armure en question après il te faut utiliser l'event  onRenderGameOverlay  pour pouvoir dessiner du text a l'ecran

    1- Créer une class pour tes events apres tu l'enregistre dans la method postInit de forge

    
       @Mod.EventHandler
       public void postInit(FMLPostInitializationEvent event)
       {
           // ceci est la class en question qui contient les events
           EventHandler eh = new EventHandler();
           FMLCommonHandler.instance().bus().register(eh);
           MinecraftForge.EVENT_BUS.register(eh);
       }
    

    2- dans la class EventHandler il te suffit de mettre ceci

       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
       }
    
    

    sinon tu peut d'aider du mod ArmorStatusHUD de bspkrs 
    https://github.com/bspkrs/ArmorStatusHUD/blob/1.7.10/src/main/java/bspkrs/armorstatushud/HUDElement.java
    la ta la class de rendu

    Peu tu re m'expliquer stp rien comprit desoler ^^'



  • @'SpyMan':

    non cette ligne sert juste a récupérer la durabilité (en gros un chiffre) de la pièce d'armure en question après il te faut utiliser l'event  onRenderGameOverlay  pour pouvoir dessiner du text a l'ecran

    1- Créer une class pour tes events apres tu l'enregistre dans la method postInit de forge

    
       @Mod.EventHandler
       public void postInit(FMLPostInitializationEvent event)
       {
           // ceci est la class en question qui contient les events
           EventHandler eh = new EventHandler();
           FMLCommonHandler.instance().bus().register(eh);
           MinecraftForge.EVENT_BUS.register(eh);
       }
    

    2- dans la class EventHandler il te suffit de mettre ceci

       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
       }
    
    

    sinon tu peut d'aider du mod ArmorStatusHUD de bspkrs 
    https://github.com/bspkrs/ArmorStatusHUD/blob/1.7.10/src/main/java/bspkrs/armorstatushud/HUDElement.java
    la ta la class de rendu

    Stp tu peut r'expliquer rien comprit dsl ^^'
    parse que plein de truc ne marche pas comme :

       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
       }
    
    

    Ici ces le d, x, y qui fait une erreur rouge est

    
       @Mod.EventHandler
       public void postInit(FMLPostInitializationEvent event)
       {
           // ceci est la class en question qui contient les events
           EventHandler eh = new EventHandler();
           FMLCommonHandler.instance().bus().register(eh);
           MinecraftForge.EVENT_BUS.register(eh);
       }
    

    Est la ces le = new EventHandler(); 
    qui est erreur rouge



  • envoi ton code stp sinon c'est compliquer méme si j'ai ma petite idée sur le problème

    Deja dans cette method le x et y c'est la position ou tu veut afficher le text de la durabilité de ton bout d'armure
    et le EventHandler c'est la class ou il ya la method onRenderGameOverlay()

    Et aussi une autre petite chose dit moi tu connais les "les bases en java" ?



  • @'SpyMan':

    envoi ton code stp sinon c'est compliquer mémé si j'ai ma petite idée sur le problème

    Deja dans cette method le x et y c'est la position ou tu veut afficher le text de la durabilité de ton bout d'armure
    et le EventHandler c'est la class ou il ya la method onRenderGameOverlay()

    Et aussi une autre petite chose dit moi tu connais les "les bases en java" ?

    Bh oue je connai les base mais le probleme genre

    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
    {
         int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(slot du bout d armure).getItemDamage();
         Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, x, y, 14737632);
    }
    

    mon probleme ces genre quand j'import tout bh dabord fontRendererObj veut se remplacer en : fontRenderer est apres le X, Y bh quand je les remplace par un nombre bh ces drawStringWithShadow qui veut se remplacer en drawString est quand je fait sa bh il veut je fait drawStringWithShadow est sa fait sa a l'infini

    Est pour la classe que tu ma dit de creer (Event) bh quand j'importe tout bh il y a EventHandler Qui est souligner rouge



  • tiens, tu trouveras ton bonheur ici:
    https://openclassrooms.com/courses/apprenez-a-programmer-en-java

    Cordialement



  • TrouveraS*



  • @isador34:

    tiens, tu trouvera ton bonheur ici:
    https://openclassrooms.com/courses/apprenez-a-programmer-en-java

    Cordialement

    TrouveraS*



  • @'Plaigon':

    @'isador34':

    tiens, tu trouveras ton bonheur ici:
    https://openclassrooms.com/courses/apprenez-a-programmer-en-java

    Cordialement

    TrouveraS*

    ??



  • Heureusement que j'ai cité le message mdr



  • Ok alors je reformule ma phrase envoi ton code : class principale + class event car je ne suis pas devin et par conséquent je ne peut deviner ton code 🙂



  • @'SpyMan':

    Ok alors je reformule ma phrase envoi ton code : class principale + class event car je ne suis pas devin et par conséquent je ne peut deviner ton code 🙂

    classe principale :

    package com.mod.exonia;
    
    import java.io.File;
    
    import org.lwjgl.opengl.Display;
    
    import com.google.common.base.Throwables;
    
    import com.mod.exonia.backpack.ItemBackPack;
    import com.mod.exonia.backpack.ModBlocks;
    import com.mod.exonia.backpack.ModItems;
    import com.mod.exonia.dynamite.EntityDynamite;
    import com.mod.exonia.gui.GuiCustomMainMenu;
    import com.mod.exonia.gui.GuiIngame;
    import com.mod.exonia.init.BlockMod;
    import com.mod.exonia.init.ItemMod;
    import com.mod.exonia.proxy.CommonProxy;
    import com.mod.exonia.world.WorldRegister;
    
    import cpw.mods.fml.client.FMLClientHandler;
    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 cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.common.gameevent.TickEvent.Phase;
    import cpw.mods.fml.common.network.IGuiHandler;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiGameOver;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.GuiScreenEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)
    
    public class Exonia
    {
        @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
        public static CommonProxy proxy;
    
        public static final String MODID = "Exonia";
    
        @Mod.Instance(Exonia.MODID)
        public static Exonia instance;
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
            BlockMod.init();
            BlockMod.register();
    
            ItemMod.init();
            ItemMod.register();
            WorldRegister.mainRegistry();
    
            ModItems.registerItems();
            ModBlocks.registerBlocks();
    
            ModItems.registerItemsCrafts();
            ModBlocks.registerBlocksCrafts();
    
            GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "#X#", "###", '#', Items.leather, 'X', Blocks.chest});
    
            if(event.getSide().isClient())
            {
                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                {
                     Throwables.propagate(new Exception("Launcher non autorisé"));
    
                }
            }
        }
    
        @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy")
        public static CommonProxy PROXY;
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            proxy.registerRenders();
            EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);
    
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
    
            NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY);
        }
    
        @EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
    
        }
    
        @Instance(Reference.MOD_NAME)
        public static Object INSTANCE;
    
    }
    
    

    classe event je ces pas vraiment ces la quel donc tien une :

    package com.mod.exonia.gui;
    
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiChat;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.inventory.GuiInventory;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    
    public class GuiMainMenuEventHandler {
    
        @SubscribeEvent
        public void onGuiOpens(GuiOpenEvent event) {
            if(event.gui instanceof GuiMainMenu) 
            {
                event.gui = new GuiCustomMainMenu();
            }
            else if(event.gui instanceof GuiIngameMenu) 
                event.gui = new GuiIngame();
            else if(event.gui instanceof GuiChat) 
                event.gui = new GuiCustomChat();
        }
    
        @SideOnly(Side.CLIENT)
        @SubscribeEvent
        public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
        {
    
        }
    
    }
    
    


  • ok je vois le probleme ta mit un event dans un guihandler xD c'est pas grave

    en gros tu creer une class qui sappele "ExoniaEventHandler"
    et tu enregistre cette class avec le MinecraftForge.event_bus.register…
    et dans cette class tu met ton event

    
    @SideOnly(Side.CLIENT)
    @SubscribeEvent
    public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
    {
    
    }
    
    

    et dans l'event tu met le code que je t'avais donner



  • @'SpyMan':

    ok je vois le probleme ta mit un event dans un guihandler xD c'est pas grave

    en gros tu creer une class qui sappele "ExoniaEventHandler"
    et tu enregistre cette class avec le MinecraftForge.event_bus.register…
    et dans cette class tu met ton event

    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
           
       }
    
    

    et dans l'event tu met le code que je t'avais donner

    Comme sa :

    package com.mod.exonia;
    
    import com.mod.exonia.dynamite.EntityDynamite;
    
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    public class ExoniaEventHandler 
    {
    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(50).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, 50, 50, 14737632);
       }
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
        }
    
    }
    
    

    Desoler de faire perdre ton temps ses super sympas de ta par Merci


    @'SpyMan':

    ok je vois le probleme ta mit un event dans un guihandler xD c'est pas grave

    en gros tu creer une class qui sappele "ExoniaEventHandler"
    et tu enregistre cette class avec le MinecraftForge.event_bus.register…
    et dans cette class tu met ton event

    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
           
       }
    
    

    et dans l'event tu met le code que je t'avais donner

    Comme sa ? :

    package com.mod.exonia;
    
    import com.mod.exonia.dynamite.EntityDynamite;
    
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    public class ExoniaEventHandler 
    {
    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(50).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, 50, 50, 14737632);
       }
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
        }
    
    }
    
    

    package com.mod.exonia;

    import java.io.File;

    import org.lwjgl.opengl.Display;

    import com.google.common.base.Throwables;

    import com.mod.exonia.backpack.ItemBackPack;
    import com.mod.exonia.backpack.ModBlocks;
    import com.mod.exonia.backpack.ModItems;
    import com.mod.exonia.dynamite.EntityDynamite;
    import com.mod.exonia.gui.GuiCustomMainMenu;
    import com.mod.exonia.gui.GuiIngame;
    import com.mod.exonia.init.BlockMod;
    import com.mod.exonia.init.ItemMod;
    import com.mod.exonia.proxy.CommonProxy;
    import com.mod.exonia.world.WorldRegister;

    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    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 cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.common.gameevent.TickEvent.Phase;
    import cpw.mods.fml.common.network.IGuiHandler;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiGameOver;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.GuiScreenEvent;
    import net.minecraftforge.common.MinecraftForge;

    @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)

    public class Exonia
    {
        @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
        public static CommonProxy proxy;

    public static final String MODID = "Exonia";

    @Mod.Instance(Exonia.MODID)
        public static Exonia instance;

    @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
            BlockMod.init();
            BlockMod.register();

    ItemMod.init();
            ItemMod.register();
            WorldRegister.mainRegistry();

    ModItems.registerItems();
            ModBlocks.registerBlocks();

    ModItems.registerItemsCrafts();
            ModBlocks.registerBlocksCrafts();

    GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "#X#", "###", '#', Items.leather, 'X', Blocks.chest});

    if(event.getSide().isClient())
            {
                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                {
                     Throwables.propagate(new Exception("Launcher non autorisé"));

    }
            }
        }

    @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy")
        public static CommonProxy PROXY;

    @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            proxy.registerRenders();
            EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);

    MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());

    NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY);
        }

    @Mod.EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
                // ceci est la class en question qui contient les events
                EventHandler eh = new EventHandler();
                FMLCommonHandler.instance().bus().register(eh);
                MinecraftForge.EVENT_BUS.register(eh);
        }

    @Instance(Reference.MOD_NAME)
        public static Object INSTANCE;

    }

    package com.mod.exonia;
    
    import java.io.File;
    
    import org.lwjgl.opengl.Display;
    
    import com.google.common.base.Throwables;
    
    import com.mod.exonia.backpack.ItemBackPack;
    import com.mod.exonia.backpack.ModBlocks;
    import com.mod.exonia.backpack.ModItems;
    import com.mod.exonia.dynamite.EntityDynamite;
    import com.mod.exonia.gui.GuiCustomMainMenu;
    import com.mod.exonia.gui.GuiIngame;
    import com.mod.exonia.init.BlockMod;
    import com.mod.exonia.init.ItemMod;
    import com.mod.exonia.proxy.CommonProxy;
    import com.mod.exonia.world.WorldRegister;
    
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    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 cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.common.gameevent.TickEvent.Phase;
    import cpw.mods.fml.common.network.IGuiHandler;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiGameOver;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.GuiScreenEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)
    
    public class Exonia
    {
        @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
        public static CommonProxy proxy;
    
        public static final String MODID = "Exonia";
    
        @Mod.Instance(Exonia.MODID)
        public static Exonia instance;
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
            BlockMod.init();
            BlockMod.register();
    
            ItemMod.init();
            ItemMod.register();
            WorldRegister.mainRegistry();
    
            ModItems.registerItems();
            ModBlocks.registerBlocks();
    
            ModItems.registerItemsCrafts();
            ModBlocks.registerBlocksCrafts();
    
            GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "#X#", "###", '#', Items.leather, 'X', Blocks.chest});
    
            if(event.getSide().isClient())
            {
                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                {
                     Throwables.propagate(new Exception("Launcher non autorisé"));
    
                }
            }
        }
    
        @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy")
        public static CommonProxy PROXY;
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            proxy.registerRenders();
            EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);
    
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
    
            NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY);
        }
    
        @Mod.EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
                // ceci est la class en question qui contient les events
                EventHandler eh = new EventHandler();
                FMLCommonHandler.instance().bus().register(eh);
                MinecraftForge.EVENT_BUS.register(eh);
        }
    
        @Instance(Reference.MOD_NAME)
        public static Object INSTANCE;
    
    }
    
    

    Desoler de faire perdre ton temps ses super sympas de ta par Merci



  • @'SpyMan':

    ok je vois le probleme ta mit un event dans un guihandler xD c'est pas grave

    en gros tu creer une class qui sappele "ExoniaEventHandler"
    et tu enregistre cette class avec le MinecraftForge.event_bus.register…
    et dans cette class tu met ton event

    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
           
       }
    
    

    et dans l'event tu met le code que je t'avais donner

    Comme sa ? :

    package com.mod.exonia;
    
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    public class ExoniaEventHandler 
    {
    
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(50).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, 50, 50, 14737632);
       }
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
        }
    
    }
    
    
    package com.mod.exonia;
    
    import java.io.File;
    
    import org.lwjgl.opengl.Display;
    
    import com.google.common.base.Throwables;
    
    import com.mod.exonia.backpack.ItemBackPack;
    import com.mod.exonia.backpack.ModBlocks;
    import com.mod.exonia.backpack.ModItems;
    import com.mod.exonia.dynamite.EntityDynamite;
    import com.mod.exonia.gui.GuiCustomMainMenu;
    import com.mod.exonia.gui.GuiIngame;
    import com.mod.exonia.init.BlockMod;
    import com.mod.exonia.init.ItemMod;
    import com.mod.exonia.proxy.CommonProxy;
    import com.mod.exonia.world.WorldRegister;
    
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    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 cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.common.gameevent.TickEvent.Phase;
    import cpw.mods.fml.common.network.IGuiHandler;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiGameOver;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.GuiScreenEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)
    
    public class Exonia
    {
        @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
        public static CommonProxy proxy;
    
        public static final String MODID = "Exonia";
    
        @Mod.Instance(Exonia.MODID)
        public static Exonia instance;
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
            BlockMod.init();
            BlockMod.register();
    
            ItemMod.init();
            ItemMod.register();
            WorldRegister.mainRegistry();
    
            ModItems.registerItems();
            ModBlocks.registerBlocks();
    
            ModItems.registerItemsCrafts();
            ModBlocks.registerBlocksCrafts();
    
            GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "#X#", "###", '#', Items.leather, 'X', Blocks.chest});
    
            if(event.getSide().isClient())
            {
                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                {
                     Throwables.propagate(new Exception("Launcher non autorisé"));
    
                }
            }
        }
    
        @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy")
        public static CommonProxy PROXY;
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            proxy.registerRenders();
            EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);
    
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
    
            NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY);
        }
    
        @Mod.EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
                // ceci est la class en question qui contient les events
                EventHandler eh = new EventHandler();
                FMLCommonHandler.instance().bus().register(eh);
                MinecraftForge.EVENT_BUS.register(eh);
        }
    
        @Instance(Reference.MOD_NAME)
        public static Object INSTANCE;
    
    }
    
    

    Desoler de te faire perdre ton temps je suis desoler



  • nan la method init va dans ta class principale

    voila ta plus qu'a copier coller

    package com.mod.exonia;
    
    import java.io.File;
    
    import org.lwjgl.opengl.Display;
    
    import com.google.common.base.Throwables;
    
    import com.mod.exonia.backpack.ItemBackPack;
    import com.mod.exonia.backpack.ModBlocks;
    import com.mod.exonia.backpack.ModItems;
    import com.mod.exonia.dynamite.EntityDynamite;
    import com.mod.exonia.gui.GuiCustomMainMenu;
    import com.mod.exonia.gui.GuiIngame;
    import com.mod.exonia.init.BlockMod;
    import com.mod.exonia.init.ItemMod;
    import com.mod.exonia.proxy.CommonProxy;
    import com.mod.exonia.world.WorldRegister;
    
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.FMLCommonHandler;
    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 cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.TickEvent;
    import cpw.mods.fml.common.gameevent.TickEvent.Phase;
    import cpw.mods.fml.common.network.IGuiHandler;
    import cpw.mods.fml.common.network.NetworkRegistry;
    import cpw.mods.fml.common.registry.EntityRegistry;
    import cpw.mods.fml.common.registry.GameRegistry;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.gui.GuiGameOver;
    import net.minecraft.client.gui.GuiIngameMenu;
    import net.minecraft.client.gui.GuiMainMenu;
    import net.minecraft.client.gui.GuiScreen;
    import net.minecraft.init.Blocks;
    import net.minecraft.init.Items;
    import net.minecraft.item.ItemStack;
    import net.minecraftforge.client.event.GuiOpenEvent;
    import net.minecraftforge.client.event.GuiScreenEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    import com.mod.exonia.ExoniaEventHandler;
    
    @Mod(modid = Reference.MOD_NAME, version = Reference.VERSION)
    
    public class Exonia
    {
        @SidedProxy(clientSide = Reference.CLIENT_PROXY, serverSide = Reference.SERVER_PROXY)
        public static CommonProxy proxy;
    
        public static final String MODID = "Exonia";
    
        @Mod.Instance(Exonia.MODID)
        public static Exonia instance;
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event)
        {
            BlockMod.init();
            BlockMod.register();
    
            ItemMod.init();
            ItemMod.register();
            WorldRegister.mainRegistry();
    
            ModItems.registerItems();
            ModBlocks.registerBlocks();
    
            ModItems.registerItemsCrafts();
            ModBlocks.registerBlocksCrafts();
    
            GameRegistry.addRecipe(new ItemStack(ModItems.ITEM_BACKPACK), new Object[]{"###", "#X#", "###", '#', Items.leather, 'X', Blocks.chest});
    
            if(event.getSide().isClient())
            {
                if(!Minecraft.getMinecraft().mcDataDir.getAbsolutePath().contains("Exonia") && !Minecraft.getMinecraft().mcDataDir.equals(new File(".")))
                {
                     Throwables.propagate(new Exception("Launcher non autorisé"));
    
                }
            }
        }
    
        @SidedProxy(clientSide = "com.mod.exonia.proxy.ClientProxy", serverSide = "com.mod.exonia.proxy.CommonProxy")
        public static CommonProxy PROXY;
    
        @EventHandler
        public void Init(FMLInitializationEvent event)
        {
            proxy.registerRenders();
            EntityRegistry.registerModEntity(EntityDynamite.class, "EntityDynamite", 420, Exonia.instance, 32, 20, false);
    
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.f3());
            MinecraftForge.EVENT_BUS.register(new com.mod.exonia.EventHendler.Devant());
    
            NetworkRegistry.INSTANCE.registerGuiHandler(INSTANCE, PROXY);
        }
    
        @Mod.EventHandler
        public void postInit(FMLPostInitializationEvent event)
        {
                // ceci est la class en question qui contient les events
                ExoniaEventHandler eh = new ExoniaEventHandler();
                FMLCommonHandler.instance().bus().register(eh);
                MinecraftForge.EVENT_BUS.register(eh);
        }
    
        @Instance(Reference.MOD_NAME)
        public static Object INSTANCE;
    
    }
    
    
    package com.mod.exonia;
    
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    import net.minecraftforge.common.MinecraftForge;
    
    public class ExoniaEventHandler 
    {
       @SideOnly(Side.CLIENT)
       @SubscribeEvent
       public void onRenderGameOverlay(RenderGameOverlayEvent.Pre event)
       {
            int d = Minecraft.getMinecraft().thePlayer.inventory.armorItemInSlot(50).getItemDamage();
            Minecraft.getMinecraft().fontRendererObj.drawStringWithShadow(d, 30, 90, 14737632);
       }
    }
    
    


  • Merci ces sympas mais le probleme ces a fontRendererObj bh il me dise de le remplacer par fontRenderer est si je le fait il me dise de replacer drawStringWithShadow en DrawString est sa me fait sa a linfini apres il me redise de remplacer en drawStringWithShadow ext a linfini