/******************************************************************************* * Copyright (c) 2015, Superloup10 * * Wolf's Addons is distributed under the terms of the Minecraft Mod Public * License 1.0, or MMPL. Please check the contents of the license located in * https://www.dropbox.com/s/6l16rc7b1aks211/MMPL-1.0.txt ******************************************************************************/ package fr.wolf.addons.common.event; import fr.wolf.addons.common.item.WolfItemList; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.MathHelper; import net.minecraft.util.StatCollector; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import org.lwjgl.input.Keyboard; public class LivingEvent { @SubscribeEvent public void onLivingHurt(LivingHurtEvent event) { ItemStack helmet = event.entityLiving.getEquipmentInSlot(4); ItemStack chestplate = event.entityLiving.getEquipmentInSlot(3); ItemStack leggings = event.entityLiving.getEquipmentInSlot(2); ItemStack boots = event.entityLiving.getEquipmentInSlot(1); if(helmet != null && helmet.getItem() == WolfItemList.redstoneHelmet && chestplate != null && chestplate.getItem() == WolfItemList.redstoneChestplate && leggings != null && leggings.getItem() == WolfItemList.redstoneLeggings && boots != null && boots.getItem() == WolfItemList.redstoneBoots) { if(!helmet.hasTagCompound()) { helmet.setTagCompound(new NBTTagCompound()); } if(helmet.getTagCompound().getByte("Mode") == 1) { if("inFire".equals(event.source.getDamageType()) || "onFire".equals(event.source.getDamageType()) || "lava".equals(event.source.getDamageType())) { boots.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); leggings.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); chestplate.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); helmet.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); event.ammount = 0; } } } if(helmet != null && helmet.getItem() == WolfItemList.lapisHelmet && chestplate != null && chestplate.getItem() == WolfItemList.lapisChestplate && leggings != null && leggings.getItem() == WolfItemList.lapisLeggings && boots != null && boots.getItem() == WolfItemList.lapisBoots) { if("drown".equals(event.source.getDamageType())) { boots.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); leggings.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); chestplate.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); helmet.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); event.ammount = 0; } } if(helmet != null && helmet.getItem() == WolfItemList.emeraldHelmet && chestplate != null && chestplate.getItem() == WolfItemList.emeraldChestplate && leggings != null && leggings.getItem() == WolfItemList.emeraldLeggings && boots != null && boots.getItem() == WolfItemList.emeraldBoots) { if("cactus".equals(event.source.getDamageType()) || "wither".equals(event.source.getDamageType()) || "inWall".equals(event.source.getDamageType())) { boots.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); leggings.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); chestplate.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); helmet.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); event.ammount = 0; } else if("fall".equals(event.source.getDamageType())) { boots.damageItem(MathHelper.floor_float(event.ammount / 4), event.entityLiving); event.ammount = 0; } } } @SubscribeEvent @SideOnly(Side.CLIENT) public void onTooltip(ItemTooltipEvent event) { if(event.itemStack.getItem() == WolfItemList.redstoneSword) { if(!event.itemStack.hasTagCompound()) { event.itemStack.setTagCompound(new NBTTagCompound()); } if(event.itemStack.getTagCompound().getByte("Mode") == 0) { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { event.toolTip.add(StatCollector.translateToLocal("sword.info.not_secret.0")); } else { event.toolTip.add(StatCollector.translateToLocal("sword.info.secret")); } } else { if(Keyboard.isKeyDown(Keyboard.KEY_LSHIFT)) { event.toolTip.add(StatCollector.translateToLocal("sword.info.not_secret.1")); } else { event.toolTip.add(StatCollector.translateToLocal("sword.info.secret")); } } } } }