public void doCommand(String messageData, String nick) {
		String[] str = messageData.split(" ");
		for (int i = 0; i < commands.size(); i++) {
			if (str[0].startsWith(commands.get(i).getName())) {
				if (commands.get(i).userNeedsToBeOp()
						&& ServerMain.uh.isOp(nick)) {
					try {
						ServerMain.EVENT_BUS.post(new CommandEvent(commands
								.get(i), nick, messageData, ServerMain.uh
								.getAddress(nick)));
						commands.get(i).performAction(messageData, nick);
						return;
					} catch (Exception e) {
						e.printStackTrace();
						ServerMain.sh
						.sendMessageToAllUsers(
								"[Server]",
								"Command '"
										+ str[0]
												+ "' has generated an exception while running.");
						return;
					}
				} else if (commands.get(i).userNeedsToBeOp()
						&& !ServerMain.uh.isOp(nick)) {
					ServerMain.sh.sendMessageToUser(nick, "You are not op :P",
							false);
					return;
				} else if (!commands.get(i).userNeedsToBeOp()) {
					try {
						commands.get(i).performAction(messageData, nick);
						return;
					} catch (Exception e) {
						e.printStackTrace();
						ServerMain.sh
						.sendMessageToAllUsers(
								"[Server]",
								"Command '"
										+ str[0]
												+ "' has generated an exception while running.");
						return;
					}
				}
			}
		}
		ServerMain.sh.sendMessageToUser(nick, "Command does not exist!", false);
	}