* @param client
	 */
	private void cmd_drink(final String arg, final Client client) {
		if (!arg.equals("")) {
			final Player player = getPlayer(client);

			// create a new list to hold drinkable items
			final ArrayList<Item> itemList = new ArrayList<Item>();

			// get drinkable items
			for (final Item item : player.getInventory()) {
				if (item.isDrinkable()) { // drinkable check
					itemList.add(item);
				}
			}

			debug( itemList.toString() );

			Item item = null;

			/*
			 * you should type 'drink healing' instead of 'drink potion' if you
			 * want a healing potion, otherwise you might get a potion of
			 * invisibility or bull's strength
			 */

			if (player.getMode() == PlayerMode.COMBAT) { // if in combat
				// try healing, etc potions first if just 'drink' is typed
				ArrayList<Item> healing = new ArrayList<Item>();

				for (final Item item1 : itemList) {
					/*
					 * need to check to see if something contains a healing
					 * effect
					 * 
					 * does it need to have solely a heal effect?
					 */
					if (item1.hasEffectType(Effect.Type.HEAL)) {
						healing.add(item1);
					}
				}
			}
			else { // else search by name for the item
				for (final Item item1 : itemList) {
					if (item1.getName().equals(arg) || item1.getName().contains(arg)) {
						if (item1 instanceof Stackable) {
							item = ((Stackable<Item>) item1).split(1);
						}

						item = item1;

						break;
					}
				}
			}

			if (item != null) {
				// determine what kind of drinkable item it is and apply an
				// effects
				// or status changes accordingly
				if (item instanceof Potion) {
					Potion potion = (Potion) item;

					debug("Potion?: " + potion.toString());

					List<Effect> effects = potion.getEffects();

					debug( effects.toString() );

					/* just one effect? */
					applyEffect(player, potion.getEffect());

					/*
					 * if the drinkable item is stackable too, then I need to be
					 * sure to use only one
					 */
				}
				else {
					send("You take a sip of your " + colors(item.getName(), getDisplayColor("item")) + ".", client);
				}

				// Script s = item.getScript(TriggerType.onUse);

				// if( s != null ) {
				final String result = pgm.interpret(item.getScript(TriggerType.onUse), player, item);

				if (!result.equals("")) send(result, client);
				// }

				player.getInventory().remove(item); // remove from inventory
				objectDB.remove(item);              // remove from database
			}
			else {
				send("You don't have one of those to drink.", client);
			}
		}
		else {
			send("Drink what?", client);
		}
	}