private void HandleSingle(Session Session, bool Scratch, ref byte[] Bytes) { using (var Reader = new BinaryReader(new MemoryStream(Bytes, false))) { var Index = Bytes.Length; if (Scratch) { Index = Base64Encoding.DecodeInt32(Reader.ReadBytes(3)); } var Header = (short)Base64Encoding.DecodeInt32(Reader.ReadBytes(2)); var Content = Reader.ReadBytes(Index - 2); if (MessageEvents.ContainsKey(Header)) { Framework.Get<LogComponent>().BlurLine("MSG", ConsoleColor.Green, "[{0}] {1}", ConsoleColor.White, Header, MessageEvents[Header].ToString().Split('.').Last()); MessageEvents[Header].Invoke(Session, new MessageEvent(Header, Content)); Session.Push(); } else if (UnknownMessageEvents.ContainsKey(Header)) { Framework.Get<LogComponent>().BlurLine("MSG", ConsoleColor.Gray, "[{0}] {1}", ConsoleColor.White, Header, UnknownMessageEvents[Header]); } else { Framework.Get<LogComponent>().BlurLine("MSG", ConsoleColor.Red, "[{0}] Unknown", ConsoleColor.White, Header); } } }
private void HandlePolicy(Session Session) { Session.Write(PolicyResponse); Session.Push(); }