@@ -0,0 +1,1121 @@
+package skadistats.clarity.examples.allchat;%0A%0Aimport skadistats.clarity.processor.reader.OnMessage;%0Aimport skadistats.clarity.processor.runner.Context;%0Aimport skadistats.clarity.processor.runner.SimpleRunner;%0Aimport skadistats.clarity.source.MappedFileSource;%0Aimport skadistats.clarity.source.Source;%0Aimport skadistats.clarity.wire.s2.proto.S2UserMessages;%0A%0Apublic class AllChatProcessor %7B%0A    @OnMessage(S2UserMessages.CUserMessageSayText2.class)%0A    public void onMessage(Context ctx, S2UserMessages.CUserMessageSayText2 message) %7B%0A        System.out.format(%22%25s: %25s%5Cn%22, message.getParam1(), message.getParam2());%0A    %7D%0A    public static void main(String%5B%5D args) throws Exception %7B%0A        // 1) create an input source from the replay%0A        Source source = new MappedFileSource(%22replay.dem%22);%0A        // 2) create a simple runner that will read the replay once%0A        SimpleRunner runner = new SimpleRunner(source);%0A        // 3) create an instance of your processor%0A        AllChatProcessor processor = new AllChatProcessor();%0A        // 4) and hand it over to the runner%0A        runner.runWith(processor);%0A    %7D%0A%0A%7D%0A

add readme example processor as real source