示例#1
0
        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);
                }
            }
        }
示例#2
0
 private void HandlePolicy(Session Session)
 {
     Session.Write(PolicyResponse);
     Session.Push();
 }