public boolean select(final int... ids) {
		if (selected() && !selectedIsOnOf(ids)) {
			deselect();
		}

		if (selectedIsOnOf(ids)) {
			return true;
		}

		final Item item = ctx.inventory.select().id(ids).shuffle().poll();
		if ((ctx.game.tab() == Game.Tab.INVENTORY || ctx.game.tab(Game.Tab.INVENTORY)) && item.click("Use")) {
			return Condition.wait(new Callable<Boolean>() {
				@Override
				public Boolean call() throws Exception {
					return selectedIsOnOf(ids);
				}
			}, 50, 20);
		}

		deselect();

		return false;
	}