Posted May 15, 201411 yr So, I tryed to check if a player is burning, but I cannot load the game properly... public static ContactMobs CM = new ContactMobs(); @EventHandler public void init(FMLInitializationEvent event){ CM.interact(Minecraft.getMinecraft().thePlayer); } } ContactMobs Class: public class ContactMobs { public void interact(EntityClientPlayerMP var1){ if(var1.isBurning()){ var1.experienceLevel++; } } } I really don't understand why it's giving me a crash in the line: "if(var1.isBurning()){" - NullPointer Thanks João Fernandes Thanks João Fernandes
May 15, 201411 yr Author Ok, I changed to this: @EventHandler public void init(FMLInitializationEvent event){ RC.addRecipeToGame(); FMLCommonHandler.instance().bus().register(new ContactMobs()); } public class ContactMobs { public void onPlayerTick(PlayerTickEvent event){ System.out.println("Info: Debugging XP Mod"); if(Minecraft.getMinecraft().thePlayer.isBurning()){ Minecraft.getMinecraft().thePlayer.experienceLevel++; } } } It has no errors, but I cannot see the println in the console of Eclipse neither the experienceLevel raising up... Am I forgetting someting? Thanks João Fernandes
May 15, 201411 yr You are missing @SubscribeEvent, and you better use event.player, rather than Minecraft.thePlayer.
May 15, 201411 yr Author Now that's progress! The message of degub shows in the console, but it's only when I log in... It doens't detect when the player is on fire! Thanks João Fernandes
May 15, 201411 yr Author @EventHandler public void init(FMLInitializationEvent event){ FMLCommonHandler.instance().bus().register(new ContactMobs()); } @SubscribeEvent public void onPlayerEvent(PlayerEvent event){ if(event.player instanceof EntityPlayer){ if(event.player.isBurning()) event.player.experienceLevel++; } } This only works when I open the game... It doens't detects when I'm burning :\ Thanks João Fernandes
May 15, 201411 yr Author Coolboy4531, thank you for the tip That was the solution ^^ I really appreciate the help Thanks João Fernandes
May 15, 201411 yr No problem. Glad to help c: If you didn't know, PlayerEvent only runs once. While TickEvent.PlayerTickEvent runs "per" tick (20 times a second). In this case, you want to check if the player is on fire every second - for which you need to use a "tick-event."
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.