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); }
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); } }
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); }
private void OnMessageAcknowledged(MessageProcessedEventArgs e) { this.MessageAcknowledged?.Invoke(this, e); }
private void OnMessagePushed(MessageProcessedEventArgs e) => this.MessagePushed?.Invoke(this, e);
private async void MessageQueue_MessagePushed(object sender, MessageProcessedEventArgs e) => await this.messageHandlerContext.HandleMessageAsync(e.Message);