public void buy(MapleClient c, int itemId, short quantity) {
	if (quantity <= 0) {
	    AutobanManager.getInstance().addPoints(c, 1000, 0, "Buying " + quantity + " " + itemId);
	    return;
	}
	MapleShopItem item = findById(itemId);
	if (item != null && item.getPrice() > 0) {
	    if (c.getPlayer().getMeso() >= item.getPrice() * quantity) {
		if (MapleInventoryManipulator.checkSpace(c, itemId, quantity, "")) {
		    if (InventoryConstants.isPet(itemId)) {
			MapleInventoryManipulator.addById(c, itemId, quantity, null, MaplePet.createPet(itemId));
		    } else {
			MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance();

			if (InventoryConstants.isRechargable(itemId)){
			    quantity = ii.getSlotMax(item.getItemId());
			    c.getPlayer().gainMeso(-(item.getPrice()), false);
			    MapleInventoryManipulator.addById(c, itemId, quantity);
			} else {
			    c.getPlayer().gainMeso(-(item.getPrice() * quantity), false);
			    MapleInventoryManipulator.addById(c, itemId, quantity);
			}
		    }
		} else {
		    c.getPlayer().dropMessage(1, "Your Inventory is full");
		}
		c.getSession().write(MaplePacketCreator.confirmShopTransaction((byte) 0));
	    }
	}
    }