Résolu 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 renduPeu 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 renduPeu 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 renduStp 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-javaCordialement
-
TrouveraS*
-
@isador34:
tiens, tu trouvera ton bonheur ici:
https://openclassrooms.com/courses/apprenez-a-programmer-en-javaCordialement
TrouveraS*
-
@‘Plaigon’:
@‘isador34’:
tiens, tu trouveras ton bonheur ici:
https://openclassrooms.com/courses/apprenez-a-programmer-en-javaCordialement
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