LessItemLoss.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package me.km.effects.passive;
  2. import java.util.List;
  3. import me.km.KajetansMod;
  4. import me.km.api.Module;
  5. import me.km.api.ModuleListener;
  6. import me.km.effects.Effect;
  7. import me.km.effects.EffectUtils;
  8. import net.minecraft.entity.player.EntityPlayer;
  9. import net.minecraft.item.ItemStack;
  10. import net.minecraftforge.event.entity.player.PlayerDropsEvent;
  11. import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
  12. public class LessItemLoss extends ModuleListener
  13. {
  14. public LessItemLoss(Module m)
  15. {
  16. super(m);
  17. }
  18. @SubscribeEvent
  19. public void onDeathEvent(PlayerDropsEvent e)
  20. {
  21. EntityPlayer p = e.getEntityPlayer();
  22. if(KajetansMod.worldManager.getWorldPreferences(p.world).skills)
  23. {
  24. e.setCanceled(true);
  25. int level = EffectUtils.getEffectLevel(p, Effect.LESS_ITEM_LOSS);
  26. ItemStack stack;
  27. List<ItemStack> list = p.inventory.mainInventory;
  28. for (int i = level; i < list.size(); i++)
  29. {
  30. stack = list.get(i);
  31. if(!stack.isEmpty())
  32. {
  33. p.dropItem(stack, true, false);
  34. list.set(i, ItemStack.EMPTY);
  35. }
  36. }
  37. list = p.inventory.offHandInventory;
  38. for (int i = 0; i < list.size(); i++)
  39. {
  40. stack = list.get(i);
  41. if(!stack.isEmpty())
  42. {
  43. p.dropItem(stack, true, false);
  44. list.set(i, ItemStack.EMPTY);
  45. }
  46. }
  47. if(EffectUtils.getEffectLevel(p, Effect.NO_ARMOR_DROPPING) >= 1)
  48. {
  49. list = p.inventory.armorInventory;
  50. for (int i = 0; i < list.size(); i++)
  51. {
  52. stack = list.get(i);
  53. if(!stack.isEmpty())
  54. {
  55. p.dropItem(stack, true, false);
  56. list.set(i, ItemStack.EMPTY);
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }