From c918a1b6d8008773e9beebb48ba1a770405aee20 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Thu, 22 Aug 2019 19:54:41 -0400 Subject: Bulk update back to sanity --- .../main/java/fyresmodjam/misc/ItemStatHelper.java | 346 ++++++++------------- 1 file changed, 122 insertions(+), 224 deletions(-) (limited to 'YWD/src/main/java/fyresmodjam/misc/ItemStatHelper.java') diff --git a/YWD/src/main/java/fyresmodjam/misc/ItemStatHelper.java b/YWD/src/main/java/fyresmodjam/misc/ItemStatHelper.java index 352fc76..701aeb3 100755 --- a/YWD/src/main/java/fyresmodjam/misc/ItemStatHelper.java +++ b/YWD/src/main/java/fyresmodjam/misc/ItemStatHelper.java @@ -2,16 +2,19 @@ package fyresmodjam.misc; import java.util.ArrayList; import java.util.HashMap; +import java.util.Map.Entry; import java.util.Random; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.ItemCraftedEvent; +import fyresmodjam.blessings.Blessing; import fyresmodjam.blessings.BlessingUtils; import fyresmodjam.handlers.NewPacketHandler; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Items; +import net.minecraft.item.Item; import net.minecraft.item.ItemAxe; import net.minecraft.item.ItemBow; import net.minecraft.item.ItemStack; @@ -22,6 +25,7 @@ import net.minecraft.nbt.NBTTagString; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.PlayerDropsEvent; +import tconstruct.library.tools.ToolCore; @SuppressWarnings("rawtypes") public class ItemStatHelper { @@ -35,12 +39,10 @@ public class ItemStatHelper { if (statTracker.classes != null) { for (Class c : statTracker.classes) { if (!statTrackersByClass.containsKey(c)) { - statTrackersByClass.put(c, - new ArrayList()); + statTrackersByClass.put(c, new ArrayList()); } - statTrackersByClass.get(c) - .add(statTracker); + statTrackersByClass.get(c).add(statTracker); } } @@ -49,8 +51,7 @@ public class ItemStatHelper { } } - public static ItemStack giveStat(ItemStack stack, String name, - Object value) { + public static ItemStack giveStat(ItemStack stack, String name, Object value) { if (!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); } @@ -66,12 +67,10 @@ public class ItemStatHelper { } if (!stack.getTagCompound().hasKey("display")) { - stack.getTagCompound().setTag("display", - new NBTTagCompound()); + stack.getTagCompound().setTag("display", new NBTTagCompound()); } - stack.getTagCompound().getCompoundTag("display") - .setString("Name", name); + stack.getTagCompound().getCompoundTag("display").setString("Name", name); return stack; } @@ -82,36 +81,25 @@ public class ItemStatHelper { } if (!stack.getTagCompound().hasKey("display")) { - stack.getTagCompound().setTag("display", - new NBTTagCompound()); + stack.getTagCompound().setTag("display", new NBTTagCompound()); } - if (!stack.getTagCompound().getCompoundTag("display") - .hasKey("Lore")) { - stack.getTagCompound().getCompoundTag("display") - .setTag("Lore", new NBTTagList()); + if (!stack.getTagCompound().getCompoundTag("display").hasKey("Lore")) { + stack.getTagCompound().getCompoundTag("display").setTag("Lore", new NBTTagList()); } if (lore != null) { - ((NBTTagList) stack.getTagCompound() - .getCompoundTag("display") - .getTag("Lore")).appendTag( - new NBTTagString( - lore)); + ((NBTTagList) stack.getTagCompound().getCompoundTag("display").getTag("Lore")) + .appendTag(new NBTTagString(lore)); } return stack; } public static String getName(ItemStack stack) { - if (stack.getTagCompound() != null - && stack.getTagCompound().hasKey("display") - && stack.getTagCompound() - .getCompoundTag("display") - .hasKey("Name")) { - return stack.getTagCompound() - .getCompoundTag("display") - .getString("Name"); + if (stack.getTagCompound() != null && stack.getTagCompound().hasKey("display") + && stack.getTagCompound().getCompoundTag("display").hasKey("Name")) { + return stack.getTagCompound().getCompoundTag("display").getString("Name"); } return null; @@ -119,8 +107,7 @@ public class ItemStatHelper { public static String getStat(ItemStack stack, String name) { String s = null; - if (stack.getTagCompound() != null - && stack.getTagCompound().hasKey(name)) { + if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(name)) { s = stack.getTagCompound().getString(name); } @@ -128,8 +115,7 @@ public class ItemStatHelper { } public static boolean hasStat(ItemStack stack, String name) { - if (stack.getTagCompound() != null - && stack.getTagCompound().hasKey(name)) { + if (stack.getTagCompound() != null && stack.getTagCompound().hasKey(name)) { return true; } @@ -139,6 +125,12 @@ public class ItemStatHelper { @SubscribeEvent public void playerDrops(PlayerDropsEvent event) { if (!event.entity.worldObj.isRemote) { + if (BlessingUtils.hasBlessing(event.entity)) { + Blessing blesz = BlessingUtils.getBlessingInstance(event.entity); + + blesz.onPlayerDrops(event); + } + if (BlessingUtils.hasDisadvantage("Permadeath")) { event.setCanceled(true); } @@ -151,19 +143,14 @@ public class ItemStatHelper { float damageMultiplier = 1.0F; try { - damageMultiplier = handlePlayerWeakening( - event, damageMultiplier); + damageMultiplier = handlePlayerWeakening(event, damageMultiplier); } catch (NullPointerException npex) { damageMultiplier = 1.0F; } if (BlessingUtils.hasBlessing(event.entity)) { - damageMultiplier = BlessingUtils - .getBlessingInstance( - BlessingUtils.getBlessing( - event.entity)) - .onIncomingDamage(event, - damageMultiplier); + damageMultiplier = BlessingUtils.getBlessingInstance(BlessingUtils.getBlessing(event.entity)) + .onIncomingDamage(event, damageMultiplier); } if (event.isCanceled()) { @@ -173,60 +160,33 @@ public class ItemStatHelper { if (event.entity instanceof EntityLivingBase) { EntityLivingBase entity = (EntityLivingBase) event.entity; - damageMultiplier = getArmorReduction( - damageMultiplier, entity); + damageMultiplier = getArmorReduction(damageMultiplier, entity); } - if (event.source != null && event.source - .getEntity() != null) { + if (event.source != null && event.source.getEntity() != null) { if (event.source.getEntity() instanceof EntityLivingBase) { handleWeaponDamage(event); } - String mob = EntityStatHelper - .getUnalteredName( - event.entity); - - if (ConfigData.enableMobKillStats - && event.source.getEntity() instanceof EntityPlayer - && event.source.getEntity() - .getEntityData() - .hasKey("KillStats") - && event.source.getEntity() - .getEntityData() - .getCompoundTag("KillStats") - .hasKey(mob)) { - damageMultiplier = handleMobKnowledgeBonus( - event, - damageMultiplier, - mob); + String mob = EntityStatHelper.getUnalteredName(event.entity); + + if (ConfigData.enableMobKillStats && event.source.getEntity() instanceof EntityPlayer + && event.source.getEntity().getEntityData().hasKey("KillStats") + && event.source.getEntity().getEntityData().getCompoundTag("KillStats").hasKey(mob)) { + damageMultiplier = handleMobKnowledgeBonus(event, damageMultiplier, mob); } String weapon = "misc"; - if (ConfigData.enableWeaponKillStats - && event.source.getEntity() instanceof EntityPlayer - && event.source.getEntity() - .getEntityData() - .hasKey("WeaponStats") - && event.source.getEntity() - .getEntityData() - .getCompoundTag("WeaponStats") - .hasKey(weapon)) { - damageMultiplier = handleWeaponKnowledgeBonus( - event, - damageMultiplier, - weapon); + if (ConfigData.enableWeaponKillStats && event.source.getEntity() instanceof EntityPlayer + && event.source.getEntity().getEntityData().hasKey("WeaponStats") + && event.source.getEntity().getEntityData().getCompoundTag("WeaponStats").hasKey(weapon)) { + damageMultiplier = handleWeaponKnowledgeBonus(event, damageMultiplier, weapon); } - if (BlessingUtils.hasBlessing(event.source - .getEntity())) { + if (BlessingUtils.hasBlessing(event.source.getEntity())) { damageMultiplier = BlessingUtils - .getBlessingInstance( - BlessingUtils.getBlessing( - event.source.getEntity())) - .onOutgoingDamage( - event, - damageMultiplier); + .getBlessingInstance(BlessingUtils.getBlessing(event.source.getEntity())) + .onOutgoingDamage(event, damageMultiplier); } } @@ -234,35 +194,24 @@ public class ItemStatHelper { return; } - if (event.ammount < event.entityLiving - .getHealth()) { - event.ammount = (float) Math.max(0.5, - event.ammount * damageMultiplier); + if (event.ammount < event.entityLiving.getHealth()) { + event.ammount = (float) Math.max(0.5, event.ammount * damageMultiplier); } } } - private float handleWeaponKnowledgeBonus(LivingHurtEvent event, - float damageMultiplier, String weapon) { - EntityPlayer player = (EntityPlayer) event.source - .getEntity(); + private float handleWeaponKnowledgeBonus(LivingHurtEvent event, float damageMultiplier, String weapon) { + EntityPlayer player = (EntityPlayer) event.source.getEntity(); if (player.getHeldItem() == null) { weapon = "fist"; - } else if (player.getHeldItem().getItem() != null && player - .getHeldItem() - .getItem() instanceof ItemSword - || player.getHeldItem() - .getItem() instanceof ItemBow - || player.getHeldItem() - .getItem() instanceof ItemAxe) { - weapon = EntityStatHelper.getUnalteredItemName( - player.getHeldItem().getItem()); + } else if (player.getHeldItem().getItem() != null && player.getHeldItem().getItem() instanceof ItemSword + || player.getHeldItem().getItem() instanceof ItemBow + || player.getHeldItem().getItem() instanceof ItemAxe) { + weapon = EntityStatHelper.getUnalteredItemName(player.getHeldItem().getItem()); } - int kills = event.source.getEntity().getEntityData() - .getCompoundTag("WeaponStats") - .getInteger(weapon); + int kills = event.source.getEntity().getEntityData().getCompoundTag("WeaponStats").getInteger(weapon); int last = 0; for (int i = 0; i < EntityStatHelper.killCount.length; i++) { @@ -277,14 +226,9 @@ public class ItemStatHelper { float pickedDamageBonus = EntityStatHelper.damageBonus[last]; if (BlessingUtils.hasBlessing(event.source.getEntity())) { - if (BlessingUtils.hasBlessing( - event.source.getEntity())) { - pickedDamageBonus = BlessingUtils - .getBlessingInstance( - event.source.getEntity()) - .adjustMobKnowledgeBonus( - event, - pickedDamageBonus); + if (BlessingUtils.hasBlessing(event.source.getEntity())) { + pickedDamageBonus = BlessingUtils.getBlessingInstance(event.source.getEntity()) + .adjustMobKnowledgeBonus(event, pickedDamageBonus); } } @@ -292,11 +236,8 @@ public class ItemStatHelper { return damageMultiplier; } - private float handleMobKnowledgeBonus(LivingHurtEvent event, - float damageMultiplier, String mob) { - int kills = event.source.getEntity().getEntityData() - .getCompoundTag("KillStats") - .getInteger(mob); + private float handleMobKnowledgeBonus(LivingHurtEvent event, float damageMultiplier, String mob) { + int kills = event.source.getEntity().getEntityData().getCompoundTag("KillStats").getInteger(mob); int last = 0; for (int i = 0; i < EntityStatHelper.killCount.length; i++) { @@ -311,14 +252,9 @@ public class ItemStatHelper { float pickedDamageBonus = EntityStatHelper.damageBonus[last]; if (BlessingUtils.hasBlessing(event.source.getEntity())) { - if (BlessingUtils.hasBlessing( - event.source.getEntity())) { - pickedDamageBonus = BlessingUtils - .getBlessingInstance( - event.source.getEntity()) - .adjustMobKnowledgeBonus( - event, - pickedDamageBonus); + if (BlessingUtils.hasBlessing(event.source.getEntity())) { + pickedDamageBonus = BlessingUtils.getBlessingInstance(event.source.getEntity()) + .adjustMobKnowledgeBonus(event, pickedDamageBonus); } } @@ -327,48 +263,36 @@ public class ItemStatHelper { } private void handleWeaponDamage(LivingHurtEvent event) { - EntityLivingBase entity = (EntityLivingBase) event.source - .getEntity(); + EntityLivingBase entity = (EntityLivingBase) event.source.getEntity(); ItemStack held = entity.getEquipmentInSlot(0); - if (held != null && ((event.source.getDamageType() - .equals("player") - || event.source.getDamageType() - .equals("mob") - || (held.getItem() == Items.bow - && event.source.isProjectile())))) { + if (held != null + && ((event.source.getDamageType().equals("player") || event.source.getDamageType().equals("mob") + || (held.getItem() == Items.bow && event.source.isProjectile())))) { String s = getStat(held, "BonusDamage"); if (s != null) { - event.ammount += Float.parseFloat(s.trim() - .replace(",", ".")); + event.ammount += Float.parseFloat(s.trim().replace(",", ".")); } } } - private float getArmorReduction(float damageMultiplier, - EntityLivingBase entity) { + private float getArmorReduction(float damageMultiplier, EntityLivingBase entity) { for (int i = 0; i < 4; i++) { ItemStack stack = entity.getEquipmentInSlot(i + 1); - if (stack == null || stack.getTagCompound() == null - || !stack.getTagCompound().hasKey( - "DamageReduction")) { + if (stack == null || stack.getTagCompound() == null || !stack.getTagCompound().hasKey("DamageReduction")) { continue; } - damageMultiplier -= Float.parseFloat(stack - .getTagCompound() - .getString("DamageReduction") - .trim().replace(",", ".")) * 0.01F; + damageMultiplier -= Float + .parseFloat(stack.getTagCompound().getString("DamageReduction").trim().replace(",", ".")) * 0.01F; } return damageMultiplier; } - private float handlePlayerWeakening(LivingHurtEvent event, - float damageMultiplier) { + private float handlePlayerWeakening(LivingHurtEvent event, float damageMultiplier) { if (BlessingUtils.hasDisadvantage("Weak")) { - if (event.source.getDamageType() - .equals("player")) { + if (event.source.getDamageType().equals("player")) { damageMultiplier -= 0.25F; } } else if (BlessingUtils.hasDisadvantage("Tougher Mobs")) { @@ -387,35 +311,40 @@ public class ItemStatHelper { return; } + for (String clasz : stack.getItem().getToolClasses(stack)) { + System.err.printf("Class: %s\n", clasz); + } + temp.clear(); Class itemClass = stack.getItem().getClass(); - if (statTrackersByClass.containsKey(itemClass)) { - temp.addAll(statTrackersByClass.get(itemClass)); + for (Entry> entry : statTrackersByClass.entrySet()) { + if (entry.getKey().isAssignableFrom(itemClass)) { + temp.addAll(entry.getValue()); + } } + /* + * if (statTrackersByClass.containsKey(itemClass)) { + * temp.addAll(statTrackersByClass.get(itemClass)); } + */ + for (ItemStatTracker e : genericTrackers) { if (!temp.contains(e)) { for (Class c : e.classes) { - if (c.isAssignableFrom( - itemClass)) { + if (c.isAssignableFrom(itemClass)) { ArrayList list = null; - if (statTrackersByClass - .containsKey(itemClass)) { + if (statTrackersByClass.containsKey(itemClass)) { list = new ArrayList(); - statTrackersByClass - .put(itemClass, list); + statTrackersByClass.put(itemClass, list); } else { - list = statTrackersByClass - .get(itemClass); + list = statTrackersByClass.get(itemClass); } try { - if (!statTrackersByClass - .get(itemClass) - .contains(e)) { + if (!statTrackersByClass.get(itemClass).contains(e)) { list.add(e); } @@ -435,32 +364,23 @@ public class ItemStatHelper { stack.setTagCompound(new NBTTagCompound()); } - String processed = ItemStatHelper.getStat(stack, - "processed"); + String processed = ItemStatHelper.getStat(stack, "processed"); - if (processed == null - || processed.equals("false")) { - stack.getTagCompound().setTag("Lore", - new NBTTagList()); + if (processed == null || processed.equals("false")) { + stack.getTagCompound().setTag("Lore", new NBTTagList()); - ItemStatHelper.giveStat(stack, "processed", - "true"); + ItemStatHelper.giveStat(stack, "processed", "true"); for (ItemStatTracker statTracker : temp) { for (ItemStat s : statTracker.stats) { - giveStat(stack, s.name, s - .getNewValue(stack, - r) - .toString()); + giveStat(stack, s.name, s.getNewValue(stack, r).toString()); - String lore = s.getLore( - stack); + String lore = s.getLore(stack); if (lore != null) { addLore(stack, lore); } - setName(stack, s.getAlteredStackName( - stack, r)); + setName(stack, s.getAlteredStackName(stack, r)); s.modifyStack(stack, r); } @@ -475,69 +395,47 @@ public class ItemStatHelper { public void onCrafting(ItemCraftedEvent event) { EntityPlayer player = event.player; - ItemStack item = event.crafting; + ItemStack itemStk = event.crafting; if (!player.worldObj.isRemote) { String itemName = null; - if (item.getItem() != null && item - .getItem() instanceof ItemSword - || item.getItem() instanceof ItemBow - || item.getItem() instanceof ItemAxe) { - itemName = EntityStatHelper - .getUnalteredItemName(item - .getItem()); + Item item = itemStk.getItem(); + if (item == null) + return; + + if (item instanceof ItemSword || item instanceof ItemBow || item instanceof ItemAxe) { + itemName = EntityStatHelper.getUnalteredItemName(item); } - if (ConfigData.enableCraftingStats - && itemName != null) { - if (!player.getEntityData() - .hasKey("CraftingStats")) { - player.getEntityData().setTag( - "CraftingStats", - new NBTTagCompound()); + if (ConfigData.enableCraftingStats && itemName != null) { + if (!player.getEntityData().hasKey("CraftingStats")) { + player.getEntityData().setTag("CraftingStats", new NBTTagCompound()); } - NBTTagCompound craftingStats = player - .getEntityData() - .getCompoundTag("CraftingStats"); + NBTTagCompound craftingStats = player.getEntityData().getCompoundTag("CraftingStats"); if (!craftingStats.hasKey(itemName)) { - craftingStats.setInteger(itemName, - 0); - - if (!craftingStats.hasKey( - "TrackedItemList")) { - craftingStats.setString( - "TrackedItemList", - itemName); + craftingStats.setInteger(itemName, 0); + + if (!craftingStats.hasKey("TrackedItemList")) { + craftingStats.setString("TrackedItemList", itemName); } else { - craftingStats.setString( - "TrackedItemList", - craftingStats.getString( - "TrackedItemList") - + ";" - + itemName); + craftingStats.setString("TrackedItemList", + craftingStats.getString("TrackedItemList") + ";" + itemName); } } - craftingStats.setInteger(itemName, - craftingStats.getInteger( - itemName) - + 1); + craftingStats.setInteger(itemName, craftingStats.getInteger(itemName) + 1); for (int i = 0; i < EntityStatHelper.knowledge.length; i++) { - if (EntityStatHelper.killCount[i] == craftingStats - .getInteger(itemName)) { - NewPacketHandler.SEND_MESSAGE - .sendToPlayer(player, - "\u00A7o\u00A73You've become a " - + EntityStatHelper.knowledge[i] - .toLowerCase() - + " " - + itemName.toLowerCase() - + " smith! (" - + (i < EntityStatHelper.knowledge.length - - 1 ? (EntityStatHelper.killCount[i + 1] * 2 - EntityStatHelper.killCount[i] * 2) + " " + itemName.toLowerCase() + " crafts to next rank." : "")); + if (EntityStatHelper.killCount[i] == craftingStats.getInteger(itemName)) { + NewPacketHandler.SEND_MESSAGE.sendToPlayer(player, "\u00A7o\u00A73You've become a " + + EntityStatHelper.knowledge[i].toLowerCase() + " " + itemName.toLowerCase() + + " smith! (" + + (i < EntityStatHelper.knowledge.length - 1 + ? (EntityStatHelper.killCount[i + 1] * 2 - EntityStatHelper.killCount[i] * 2) + + " " + itemName.toLowerCase() + " crafts to next rank." + : "")); break; } } -- cgit v1.2.3