* @param client
	 */
	private void cmd_where(final String arg, final Client client) {
		// send("Player     Class     S Race      Idle Status Location", client);
		// send("Player     Class     S Race      Idle Location", client);

		List<String> output = new LinkedList<String>();

		StringBuilder sb = new StringBuilder();

		int n = 0;

		output.add(Utils.padRight("", '-', 78));
		output.add("Player     Class     S Race      Idle     Location");
		output.add(Utils.padRight("", '-', 78));

		for (final Player player : players) {
			try {
				String name = player.getName();      // (char limit: 10 ?)
				String cname = player.getCName();
				// String title = player.getTitle(); // (char limit: 8 ?)
				String playerClass = player.getPClass().getName();
				String playerGender = "" + player.getGender().charAt(0);
				String race = player.getRace().toString();
				// String ustatus = player.getStatus(); // (char limit: 3 ?)
				int location = player.getLocation();  // set room # limit to 5 characters (max. 99999)
				String roomName = getRoom(location).getName(); // truncate to 24 characters?
				String locString = "";

				if (player.hasEffect("invisibility")) {
					locString = "INVISIBLE";
				}
				else {
					if (!getRoom(player.getLocation()).hasFlag(ObjectFlag.DARK)) {
						locString = roomName + " (#" + location + ")";
					}
					else {
						// Zone zone = getZone( getRoom( location ) );
						Zone zone = getRoom(location).getZone();

						if (zone != null) locString = zone.getName();
						else              locString = roomName;
					}
				}

				String idle = MudUtils.getIdleString( player.getIdleTime() );

				Player current = getPlayer(client);

				if (current.getNames().contains(name) || current.getName().equals(name)) {
					sb.append(Utils.padRight(name, 10)).append(" ");
					sb.append(Utils.padRight(playerClass, 9)).append(" ");
					sb.append(Utils.padRight(playerGender, 1)).append(" ");
					sb.append(Utils.padRight(race, 9)).append(" ");
					sb.append(Utils.padRight(idle, 8)).append(" ");
					sb.append(locString);

					output.add(sb.toString());
				}
				else {
					sb.append(Utils.padRight(cname, 10)).append(" ");
					sb.append(Utils.padRight(playerClass, 9)).append(" ");
					sb.append(Utils.padRight(playerGender, 1)).append(" ");
					sb.append(Utils.padRight(race, 9)).append(" ");
					sb.append(Utils.padRight(idle, 8)).append(" ");
					sb.append(locString);

					output.add(sb.toString());
				}

				n++;
			}
			catch (final NullPointerException npe) {
				debug("cmd_where(): one of the pieces of player information is null... (null pointer exception)");
				System.out.println("--- Stack Trace ---");
				npe.printStackTrace();
			}

			sb.delete(0, sb.length());
		}

		output.add(Utils.padRight("", '-', 78));
		output.add(n + " players currently online.");

		send(output, client);
	}