package me.km.effects.passive; import java.util.List; import me.km.KajetansMod; import me.km.api.Module; import me.km.api.ModuleListener; import me.km.effects.Effect; import me.km.effects.EffectUtils; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.event.entity.player.PlayerDropsEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class LessItemLoss extends ModuleListener { public LessItemLoss(Module m) { super(m); } @SubscribeEvent public void onDeathEvent(PlayerDropsEvent e) { EntityPlayer p = e.getEntityPlayer(); if(KajetansMod.worldManager.getWorldPreferences(p.world).skills) { e.setCanceled(true); int level = EffectUtils.getEffectLevel(p, Effect.LESS_ITEM_LOSS); ItemStack stack; List list = p.inventory.mainInventory; for (int i = level; i < list.size(); i++) { stack = list.get(i); if(!stack.isEmpty()) { p.dropItem(stack, true, false); list.set(i, ItemStack.EMPTY); } } list = p.inventory.offHandInventory; for (int i = 0; i < list.size(); i++) { stack = list.get(i); if(!stack.isEmpty()) { p.dropItem(stack, true, false); list.set(i, ItemStack.EMPTY); } } if(EffectUtils.getEffectLevel(p, Effect.NO_ARMOR_DROPPING) >= 1) { list = p.inventory.armorInventory; for (int i = 0; i < list.size(); i++) { stack = list.get(i); if(!stack.isEmpty()) { p.dropItem(stack, true, false); list.set(i, ItemStack.EMPTY); } } } } } }