internal static void AddHandler <T>(RealmCMD opcode, ProcessLoginPacketCallbackTypes <T> callback)
 {
     AddHandler(opcode, (session, data) =>
     {
         T generatedHandler = (T)Activator.CreateInstance(typeof(T), data);
         callback(session, generatedHandler);
     });
 }
Beispiel #2
0
        public void AddHandler <TCustomReader>(TOpcode opcode, ProcessLoginPacketCallbackTypes <TSession, TCustomReader> callback) where TCustomReader : BinaryReader
        {
            AddHandler(opcode, (session, data) =>
            {
                Array headerlessData = (data.BaseStream as MemoryStream).ToArray().Skip(session.HeaderLength).ToArray();

                var generatedHandler = (TCustomReader)Activator.CreateInstance(typeof(TCustomReader), headerlessData);

                callback(session, generatedHandler);
            });
        }