public static boolean removeFromSlot(final MapleClient c, final MapleInventoryType type, final short slot, short quantity, final boolean fromDrop, final boolean consume) { 
        if (c.getPlayer() == null || c.getPlayer().getInventory(type) == null) {
            return false;
        }
        int vermins = c.getPlayer().verifyAccMins(c);
        if (ServerConstants.accountSecurity && !c.hasSameIP(c.getAccountName())) {
            c.getSession().write(CWvsContext.broadcastMsg(-1, 
"You connected from a different IP than last time.\n" +
"For your character's security,\n" +
"transferring items and mesos will be\n" +
"restricted for " + vermins + " min."));
            return false;
        }
        final Item item = c.getPlayer().getInventory(type).getItem(slot);
        if (item != null) {
            final boolean allowZero = consume && GameConstants.isRechargable(item.getItemId());
            c.getPlayer().getInventory(type).removeItem(slot, quantity, allowZero);
            if (GameConstants.isHarvesting(item.getItemId())) {
                c.getPlayer().getStat().handleProfessionTool(c.getPlayer());
            }

            if (item.getQuantity() == 0 && !allowZero) {
                c.getSession().write(InventoryPacket.clearInventoryItem(type, item.getPosition(), fromDrop));
            } else {
                c.getSession().write(InventoryPacket.updateInventorySlot(type, item, fromDrop));
            }
            return true;
        }
        return false;
    }