Unarmed.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.gmail.nossr50.skills.unarmed;
  2. import java.util.Iterator;
  3. import org.bukkit.entity.Item;
  4. import org.bukkit.inventory.ItemStack;
  5. import org.bukkit.inventory.PlayerInventory;
  6. import com.gmail.nossr50.config.AdvancedConfig;
  7. import com.gmail.nossr50.config.Config;
  8. public class Unarmed {
  9. public static int ironArmMaxBonusDamage = AdvancedConfig.getInstance().getIronArmMaxBonus();
  10. public static int ironArmIncreaseLevel = AdvancedConfig.getInstance().getIronArmIncreaseLevel();
  11. public static int disarmMaxBonusLevel = AdvancedConfig.getInstance().getDisarmMaxBonusLevel();
  12. public static double disarmMaxChance = AdvancedConfig.getInstance().getDisarmChanceMax();
  13. public static int deflectMaxBonusLevel = AdvancedConfig.getInstance().getDeflectMaxBonusLevel();
  14. public static double deflectMaxChance = AdvancedConfig.getInstance().getDeflectChanceMax();
  15. public static int ironGripMaxBonusLevel = AdvancedConfig.getInstance().getIronGripMaxBonusLevel();
  16. public static double ironGripMaxChance = AdvancedConfig.getInstance().getIronGripChanceMax();
  17. public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked();
  18. public static double berserkDamageModifier = 1.5;
  19. public static boolean handleItemPickup(PlayerInventory inventory, Item drop) {
  20. ItemStack dropStack = drop.getItemStack();
  21. int firstEmpty = inventory.firstEmpty();
  22. int dropAmount = dropStack.getAmount();
  23. if (inventory.containsAtLeast(dropStack, 1)) {
  24. int nextSlot = 0;
  25. for (Iterator<ItemStack> iterator = inventory.iterator(); iterator.hasNext();) {
  26. ItemStack itemstack = iterator.next();
  27. if (dropStack.isSimilar(itemstack)) {
  28. int itemAmount = itemstack.getAmount();
  29. int itemMax = itemstack.getMaxStackSize();
  30. ItemStack addStack = itemstack.clone();
  31. if (dropAmount + itemAmount <= itemMax) {
  32. drop.remove();
  33. addStack.setAmount(dropAmount + itemAmount);
  34. inventory.setItem(nextSlot, addStack);
  35. return true;
  36. }
  37. addStack.setAmount(itemMax);
  38. dropAmount = dropAmount + itemAmount - itemMax;
  39. inventory.setItem(nextSlot, addStack);
  40. }
  41. if (dropAmount == 0) {
  42. drop.remove();
  43. return true;
  44. }
  45. nextSlot++;
  46. }
  47. }
  48. if (firstEmpty == inventory.getHeldItemSlot()) {
  49. int nextSlot = firstEmpty + 1;
  50. for (Iterator<ItemStack> iterator = inventory.iterator(nextSlot); iterator.hasNext();) {
  51. ItemStack itemstack = iterator.next();
  52. if (itemstack == null) {
  53. drop.remove();
  54. dropStack.setAmount(dropAmount);
  55. inventory.setItem(nextSlot, dropStack);
  56. return true;
  57. }
  58. nextSlot++;
  59. }
  60. }
  61. dropStack.setAmount(dropAmount); // Even when only partially finished we need to prevent dupes
  62. return false;
  63. }
  64. }