public Message parse(String s) {
        
        Pattern p = Pattern.compile("(?s)KAI_CLIENT_CHAT;(.*);(.*);(.*);");
        Matcher m = p.matcher(s);
        if (m.matches()){
            Chat msg = new Chat();
            msg.setRoom(new KaiString(m.group(1)));
            msg.setUser(new KaiString(m.group(2)));
            msg.setMessage(new KaiString(m.group(3)));
            
            return msg;
        }
        p = Pattern.compile("(?s)KAI_CLIENT_CHAT;(.*);(.*);(.*)");
        m = p.matcher(s);
        if (m.matches()){
            Chat msg = new Chat();
            msg.setRoom(new KaiString(m.group(1)));
            msg.setUser(new KaiString(m.group(2)));
            msg.setMessage(new KaiString(m.group(3)));
            
            return msg;
        }
        
        return null;
    }