package openblocks.enchantments.flimflams; import java.util.Random; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import openblocks.api.IFlimFlamAction; public class ItemDropFlimFlam implements IFlimFlamAction { private static final Random random = new Random(); @Override public boolean execute(EntityPlayerMP target) { boolean dropped = false; for (int i = 0; i < 4; i++) dropped |= tryDropStack(target, 36 + i); dropped |= tryDropStack(target, target.inventory.currentItem); return dropped; } protected boolean tryDropStack(EntityPlayerMP target, int slot) { final InventoryPlayer inv = target.inventory; ItemStack stack = inv.getStackInSlot(slot); if (stack == null || random.nextFloat() > 0.5f) return false; target.dropPlayerItemWithRandomChoice(inv.decrStackSize(slot, 1), true); return true; } }