Posted June 12, 20169 yr Hello everyone, I was wondering if someone could help me with a problem I am running into with my custom armor. With one of my custom armor sets I would like to make the player Immune to any damage from the wither effect so if anyone can help that would be great.
June 12, 20169 yr Subscribe to LivingAttackEvent , check if the entity is wearing your armour and the DamageSource is DamageSource.wither and cancel the event. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
June 21, 20169 yr Author I know I put this as solved before because I thought I understood how to do it but I in fact do not. So if anyone out there can give me a more detailed explanation as to what I'm supposed to do I would really appreciate it. I am new to modding so I am sorry for this misunderstanding.
June 21, 20169 yr Author I wrote an if statement to check for my armor but it didn't seem to work so I removed it and closed my applications to take a break and when I went back to try coding it again I couldn't CTRL+Z back to get the statement back. And as to what I'm exactly having problems with is that I need to write an if statement that will work and I need to know how exactly to cancel the DamageSource.wither package com.thefuturemarine.ArmorModPlus.event; import com.thefuturemarine.ArmorModPlus.init.ArmorModItems; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.MobEffects; import net.minecraft.inventory.EntityEquipmentSlot; import net.minecraft.item.ItemStack; import net.minecraft.network.play.server.SPacketCombatEvent.Event; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.world.World; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.fml.common.eventhandler.Cancelable; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; public class EventHandler { @SubscribeEvent public void LivingAttackEvent(LivingHurtEvent event) { } @SubscribeEvent public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { } }
June 21, 20169 yr if(event.souce == Damage.wither && event.entity is EntityPlayer && player.getEquipment == MyAntiWitherChest) { event.setCanceled(true); } Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 21, 20169 yr Author Thank you for the reply Draco! Now am I supposed to put that in LivingAttackEvent or in onArmorTick? I know it's probably an easy answer but I am in fact a newbie when it comes to figuring these things out. public class EventHandler { @SubscribeEvent public void LivingAttackEvent(LivingHurtEvent event) { } @SubscribeEvent public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack, LivingAttackEvent event) { if (player.getItemStackFromSlot(EntityEquipmentSlot.HEAD) != null && player.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem() == ArmorModItems.obsidian_helmet) if (player.getItemStackFromSlot(EntityEquipmentSlot.CHEST) != null && player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() == ArmorModItems.obsidian_chestplate) if (player.getItemStackFromSlot(EntityEquipmentSlot.LEGS) != null && player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).getItem() == ArmorModItems.obsidian_leggings) if (player.getItemStackFromSlot(EntityEquipmentSlot.FEET) != null && player.getItemStackFromSlot(EntityEquipmentSlot.FEET).getItem() == ArmorModItems.obsidian_boots) { if(event.getSource() == DamageSource.wither && event.getEntity() == player && player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() == ArmorModItems.obsidian_chestplate) { event.setCanceled(true); } } } } This is the code that I have set and it doesn't seem to work. Can someone tell me what I am doing wrong?
June 21, 20169 yr Well, an ArmorTickEvent isn't likely to include a damage source is it? Also, you can't just add parameters to an event function and expect them to get filled in magically. Not to mention that your onArmorTick method has LivingAttackEvent as its event object. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 21, 20169 yr Author I don't really understand what I was thinking with the onArmorTick public class EventHandler { @SubscribeEvent public void LivingAttackEvent(LivingHurtEvent event, EntityPlayer player) { if(event.getSource() == DamageSource.wither && event.getEntity() == player && player.getItemStackFromSlot(EntityEquipmentSlot.HEAD).getItem() == ArmorModItems.obsidian_helmet && player.getItemStackFromSlot(EntityEquipmentSlot.CHEST).getItem() == ArmorModItems.obsidian_chestplate && player.getItemStackFromSlot(EntityEquipmentSlot.LEGS).getItem() == ArmorModItems.obsidian_leggings && player.getItemStackFromSlot(EntityEquipmentSlot.FEET).getItem() == ArmorModItems.obsidian_boots) { event.setCanceled(true); } } } But this is what I have now is this correct in the least? And I know I'm a pain in the ass with all these questions and not knowing what to do but I appreciate what you're doing Draco and everyone else that has helped me so far thank you for taking the time to help me with my problem
June 21, 20169 yr You're still trying to get an EntityPlayer from nowhere. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
June 21, 20169 yr Author Sorry I just assumed I should put that there since I was getting an error from the event.entity is and the Entityplayer && player.getEquipment
June 21, 20169 yr Look at the event class and figure it out. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
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.