From 4dbec7943022fd105b9b5aab41566e4c342d5918 Mon Sep 17 00:00:00 2001 From: KeyLime17 Date: Fri, 27 Sep 2024 14:08:31 -0400 Subject: [PATCH] Added a packet to be send after blocking is initiated --- .../com/zivilon/cinder_loe/CinderEventHandler.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/zivilon/cinder_loe/CinderEventHandler.java b/src/main/java/com/zivilon/cinder_loe/CinderEventHandler.java index 59ea466..18ecdf3 100644 --- a/src/main/java/com/zivilon/cinder_loe/CinderEventHandler.java +++ b/src/main/java/com/zivilon/cinder_loe/CinderEventHandler.java @@ -19,6 +19,7 @@ import net.minecraft.item.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.nbt.NBTTagString; +import net.minecraft.network.play.server.S19PacketEntityStatus; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.ChatComponentText; @@ -92,10 +93,11 @@ public class CinderEventHandler implements IFuelHandler { EntityLivingBase attacker = event.source.getEntity() instanceof EntityLivingBase ? (EntityLivingBase) event.source.getEntity() : null; World world = entity.worldObj; DamageSource source = event.source; - if (event.entity instanceof EntityPlayer && !source.isUnblockable()) { + if (event.entity instanceof EntityPlayer && !source.isUnblockable() || event.entity instanceof EntityPlayer && !source.isExplosion()) { EntityPlayerMP player = (EntityPlayerMP) event.entity; ItemStack sword = player.getHeldItem(); + float playerYaw = player.getRotationYawHead(); float attackerYaw = attacker.getRotationYawHead(); @@ -115,16 +117,19 @@ public class CinderEventHandler implements IFuelHandler { float additionalDamage = 0.0f; if (weapon.getItem() instanceof ItemAxe || weapon.getItem() instanceof LOTRItemAxe || weapon.getItem() instanceof LOTRItemBattleaxe) { - sword.damageItem((int) event.ammount, player); + sword.damageItem((int) (event.ammount *1.5), player); // Axes deal 150% the Durability damage + ((EntityPlayerMP) player).playerNetServerHandler.sendPacket(new S19PacketEntityStatus(player, (byte) 29)); world.playSoundAtEntity(player, "random.anvil_land", 1F, 2F); additionalDamage = 0.75f; } else if (weapon.getItem() instanceof LOTRItemHammer) { - sword.damageItem((int) event.ammount, player); + sword.damageItem((int) event.ammount, player); // Hammers bypass the block better, but only deal 100% of the durability damage + ((EntityPlayerMP) player).playerNetServerHandler.sendPacket(new S19PacketEntityStatus(player, (byte) 29)); world.playSoundAtEntity(player, "random.anvil_land", 1F, 2F); additionalDamage = 0.5f; // 20% more damage per piece } else { additionalDamage = 0.0f; - sword.damageItem((int) event.ammount, player); + sword.damageItem((int) (event.ammount/2), player); //Swords only deal 50% of durability damage + ((EntityPlayerMP) player).playerNetServerHandler.sendPacket(new S19PacketEntityStatus(player, (byte) 29)); world.playSoundAtEntity(player, "random.anvil_land", 1F, 2F); }