public void handleCommand(Message message) {
		if(!conn.conected()) return;

		String body = message.getBody();
		if(body.startsWith(prefix)){
			body = body.substring(prefix.length());
		}else{ //(message.getBody().startsWith(connection.getNick()){
			body = body.substring(conn.getNick().length());
			if(body.matches("[:>]? .*")){
				body = body.substring(1).trim();
			}else{
				return;
			}
		}

		String[] command = body.split(" +");
		if(logger.isTraceEnabled()){logger.trace("Handling command: " + Arrays.toString(command));}
		
		String from = message.getFrom();
		int priv = getPrivLevel(from);
		switch (command[0]) {
			case "commands":
				printCommands();
				break;
			case "help":
				printHelp(command[1]);
				break;
			default:
				CommandWrapper cw = plugins.getPlugin(command[0]);
				if(cw == null) return;
				Command c = cw.command;
				if(c.getPrivLevel() <= priv){
					c.handle(new eu.janinko.xmppmuc.Message(message,this), command);
				}else if(logger.isInfoEnabled()){
					logger.info("User " + from + " (priv " + priv + ") tried to do '" + message.getBody() + "' (priv " + c.getPrivLevel() + ")");
				}
				break;
		}
	}