Exemple #1
0
        private void EdgeDetection_MessageProcessed(object sender, MessageProcessedEventArgs e)
        {
            //var response = e.Parameter as Response;

            //var workingLine = response.Responses[Response.Edging].Single();
            //foreach (var p in CommandProcessors.Values)
            //{
            //    workingLine = p.DeleteCommandFrom(workingLine).Trim();
            //}

            //workingLine = _vocabularyProcesser.ReplaceVocabulary(Session, workingLine);

            //OnBeforeDommeSaid(e.Session.Domme, workingLine);

            // if the engine needs to pause here, then it can.
            //OnDommeSaid(e.Session.Domme, workingLine);
            Session = e.Session;
            //var doWork = ProcessCommands(e.Session, response.Responses[Response.Script].Single())
            //    .OnSuccess(sesh =>
            //    {
            //        // if none of the commands advanced the script, then do so now.
            //        if (Session.CurrentScript.LineNumber == sesh.CurrentScript.LineNumber && !sesh.CurrentScript.CurrentLine.StartsWith("["))
            //        {
            //            sesh.CurrentScript.LineNumber++;
            //        }
            //        return sesh;
            //    })
            //    .OnSuccess(sesh => Session = sesh);
        }
Exemple #2
0
 private static void a(object A_0, MessageProcessedEventArgs A_1)
 {
     try
     {
         byte[]           buffer    = A_1.get_Message().get_RawData();
         MessageDirection direction = 0;
         int       num       = BitConverter.ToInt32(buffer, 0);
         object    obj2      = typeof(Message).GetMethod("GetParser", BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static, null, new Type[] { typeof(int), typeof(MessageDirection) }, null).Invoke(null, new object[] { num, direction });
         Type      type      = Assembly.GetAssembly(typeof(Message)).GetType("Decal.Adapter.NetParser.MemberParser");
         Message   message   = (Message)typeof(Message).GetConstructor(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, null, new Type[] { typeof(byte[]), type }, null).Invoke(new object[] { buffer, obj2 });
         bool      flag      = false;
         Exception exception = null;
         try
         {
             message.get_Count();
             flag = true;
         }
         catch (Exception exception2)
         {
             exception = exception2;
         }
         if (!flag)
         {
             a(buffer, direction, exception);
         }
     }
     catch
     {
     }
 }
        // Игровое сообщение обработано
        private void MessageProcessed(object sender, MessageProcessedEventArgs e)
        {
            // Аргументы сообщений, которые будут отправлены позже
            var changesForClients = new List <StateChange>();

            // Изменить состояние сервера
            foreach (var change in e.Changes)
            {
                ApplyChange(change.ChangeMessage);

                // Добавить к отправляемым сообщениям
                if (change.TargetType != SendTargetType.NoOne)
                {
                    changesForClients.Add(change);
                }
            }

            // Отправить сообщения клиентам
            foreach (var clientChange in changesForClients)
            {
                var args = MessageEventArgs.CreateFromChange(clientChange);
                GotMessageToSend?.Invoke(this, args);
            }
        }
Exemple #4
0
        private void ScriptResponse_MessageProcessed(object sender, MessageProcessedEventArgs e)
        {
            var response = e.Parameter as Response;

            var getWorkingLine = _interpolationProcessor.Interpolate(e.Session, response.Responses[Response.Script].Single())
                                 .OnSuccess(wl =>
            {
                foreach (var p in CommandProcessors.Values)
                {
                    wl = p.DeleteCommandFrom(wl).Trim();
                }

                wl = _vocabularyProcesser.ReplaceVocabulary(Session, wl);
            });

            if (getWorkingLine.IsSuccess)
            {
                OnDommeSaid(e.Session.Domme, getWorkingLine.Value);
            }
            else
            {
                OnDommeSaid(e.Session.Domme, "Error: " + getWorkingLine.Error.Message);
            }

            var doWork = ProcessCommands(e.Session, response.Responses[Response.Script].Single())
                         .OnSuccess(sesh =>
            {
                // if none of the commands advanced the script, then do so now.
                if (Session.CurrentScript.LineNumber == sesh.CurrentScript.LineNumber && !sesh.CurrentScript.CurrentLine.StartsWith("["))
                {
                    sesh.CurrentScript.LineNumber++;
                }
                return(sesh);
            })
                         .OnSuccess(sesh => Session = sesh);
        }
Exemple #5
0
 private void OnMessageAcknowledged(MessageProcessedEventArgs e)
 {
     this.MessageAcknowledged?.Invoke(this, e);
 }
Exemple #6
0
 private void OnMessagePushed(MessageProcessedEventArgs e) => this.MessagePushed?.Invoke(this, e);
Exemple #7
0
 private async void MessageQueue_MessagePushed(object sender, MessageProcessedEventArgs e) => await this.messageHandlerContext.HandleMessageAsync(e.Message);