@Override
	protected void onMessage(final String channel, final String sender,
			final String login, final String hostname, String message) {
		boolean consume = false;
		if (channel.equals(getIntendedChannel())) {
			int cmdPre = 0;
			if (message.toUpperCase().startsWith(getNick().toUpperCase() + ":")) {
				cmdPre = (getNick() + ":").length();
			} else if (usePrependChar && message.startsWith(prependChar + "")) {
				cmdPre = 1;
			}
			if (cmdPre > 0) {
				message = message.substring(cmdPre).trim()
						.replaceAll(" +", " ");
				execute(message.split(" "), sender, false);
				consume = true;
			}
		}
		if (!consume) {
			for (final Module m : enabledModules.values()) {
				if (m.onMessage(channel, sender, login, hostname, message)) {
					break;
				}
			}
		}
	}