public Task SendRequest(Eleon.Modding.CmdId cmdID, object data) { (var trackingId, var task) = _requestTracker.GetNewTaskCompletionSource <object>(); SendRequest(cmdID, trackingId, data); return(task); }
public void SendRequest(Eleon.Modding.CmdId cmdId, ushort seqNr, object data) { ModProtocol.Package p = new ModProtocol.Package(cmdId, 0, seqNr, data); lock (clients) { foreach (ModProtocol con in clients) { con.AddToSendQueue(p); } } }
private void SendRequest(Eleon.Modding.CmdId cmdID, ushort seqNr, object data) { var newFormat = DateTime.Now.ToString("R") + " - " + "SendRequest: Command {0} SeqNr: {1}"; _traceSource.TraceEvent(TraceEventType.Information, 1, newFormat, cmdID, seqNr); //$$_traceSource.TraceEvent(TraceEventType.Information, 1, "SendRequest: Command {0} SeqNr: {1}", cmdID, seqNr); if (_client != null) { _client.Send(cmdID, (ushort)seqNr, data); } else { DebugLog("SendRequest: _client is null"); } }
private void OnClient_GameEventReceived(EPMConnector.ModProtocol.Package p) { try { DebugLog("OnClient_GameEventReceived: Command {0} SeqNr: {1}", p.cmd, p.seqNr); if (p.cmd == Eleon.Modding.CmdId.Event_Error) { Eleon.Modding.ErrorInfo eInfo = (Eleon.Modding.ErrorInfo)p.data; Eleon.Modding.CmdId cmdId = (Eleon.Modding.CmdId)p.seqNr; DebugLog("Event_Error - ErrorType {0}, CmdId {1}", eInfo.errorType, cmdId); } if (!_requestTracker.TryHandleEvent(p)) { if (p.data == null) { DebugLog("Empty Package cmd:{0}, seqnr:{1}", p.cmd, p.seqNr); //System.Diagnostics.Debugger.Break(); return; } switch (p.cmd) { case Eleon.Modding.CmdId.Event_Playfield_Loaded: ProcessEvent_Playfield_Loaded((Eleon.Modding.PlayfieldLoad)p.data); break; case Eleon.Modding.CmdId.Event_Playfield_Unloaded: ProcessEvent_Playfield_Unloaded((Eleon.Modding.PlayfieldLoad)p.data); break; case Eleon.Modding.CmdId.Event_Playfield_List: //ProcessEvent_Playfield_List((Eleon.Modding.PlayfieldList)p.data); break; case Eleon.Modding.CmdId.Event_Playfield_Stats: //ProcessEvent_Playfield_Stats((Eleon.Modding.PlayfieldStats)p.data); break; case Eleon.Modding.CmdId.Event_Dedi_Stats: ProcessEvent_Dedi_Stats((Eleon.Modding.DediStats)p.data); break; case Eleon.Modding.CmdId.Event_GlobalStructure_List: ProcessEvent_GlobalStructure_List((Eleon.Modding.GlobalStructureList)p.data); break; case Eleon.Modding.CmdId.Event_Structure_BlockStatistics: ProcessEvent_Structure_BlockStatistics((Eleon.Modding.IdStructureBlockInfo)p.data); break; case Eleon.Modding.CmdId.Event_Player_Connected: ProcessEvent_Player_Connected(entityId: ((Eleon.Modding.Id)p.data).id); break; case Eleon.Modding.CmdId.Event_Player_Disconnected: ProcessEvent_Player_Disconnected(entityId: ((Eleon.Modding.Id)p.data).id); break; case Eleon.Modding.CmdId.Event_Player_ChangedPlayfield: ProcessEvent_Player_ChangedPlayfield((Eleon.Modding.IdPlayfield)p.data); break; case Eleon.Modding.CmdId.Event_Player_Info: ProcessEvent_Player_Info((Eleon.Modding.PlayerInfo)p.data); break; case Eleon.Modding.CmdId.Event_Player_List: //ProcessEvent_Player_List((Eleon.Modding.IdList)p.data); break; case Eleon.Modding.CmdId.Event_Player_Inventory: ProcessEvent_Player_Inventory((Eleon.Modding.Inventory)p.data); break; case Eleon.Modding.CmdId.Event_Player_Credits: ProcessEvent_Player_Credits((Eleon.Modding.IdCredits)p.data); break; case Eleon.Modding.CmdId.Event_Player_ItemExchange: ProcessEvent_Player_ItemExchange((Eleon.Modding.ItemExchangeInfo)p.data); break; case Eleon.Modding.CmdId.Event_Player_DisconnectedWaiting: ProcessEvent_Player_DisconnectedWaiting((Eleon.Modding.Id)p.data); break; case Eleon.Modding.CmdId.Event_Entity_PosAndRot: ProcessEvent_Entity_PosAndRot((Eleon.Modding.IdPositionRotation)p.data); break; case Eleon.Modding.CmdId.Event_Faction_Changed: ProcessEvent_Faction_Changed((Eleon.Modding.FactionChangeInfo)p.data); break; case Eleon.Modding.CmdId.Event_Get_Factions: ProcessEvent_Get_Factions((Eleon.Modding.FactionInfoList)p.data); break; case Eleon.Modding.CmdId.Event_Statistics: ProcessEvent_Statistics((Eleon.Modding.StatisticsParam)p.data); break; case Eleon.Modding.CmdId.Event_NewEntityId: // from Request_NewEntityId DebugLog("Event_NewEntityId - New ID: {0}", ((Eleon.Modding.Id)p.data).id); break; case Eleon.Modding.CmdId.Event_AlliancesAll: ProcessEvent_AlliancesAll((Eleon.Modding.AlliancesTable)p.data); break; case Eleon.Modding.CmdId.Event_AlliancesFaction: ProcessEvent_AlliancesFaction((Eleon.Modding.AlliancesFaction)p.data); break; case Eleon.Modding.CmdId.Event_ChatMessage: ProcessEvent_ChatMessage((Eleon.Modding.ChatInfo)p.data); break; case Eleon.Modding.CmdId.Event_BannedPlayers: ProcessEvent_BannedPlayers((Eleon.Modding.BannedPlayerData)p.data); break; case Eleon.Modding.CmdId.Event_Ok: DebugLog("Event_Ok - seqnr {0}", p.seqNr); break; case Eleon.Modding.CmdId.Event_Error: { Eleon.Modding.ErrorInfo eInfo = (Eleon.Modding.ErrorInfo)p.data; Eleon.Modding.CmdId cmdId = (Eleon.Modding.CmdId)p.seqNr; DebugOutput("Event_Error - ErrorType {0}, CmdId {1}", eInfo.errorType, cmdId); BreakIfDebugBuild(); } break; case Eleon.Modding.CmdId.Event_TraderNPCItemSold: ProcessEvent_TraderNPCItemSold((Eleon.Modding.TraderNPCItemSoldInfo)p.data); break; case Eleon.Modding.CmdId.Event_Player_GetAndRemoveInventory: ProcessEvent_Player_GetAndRemoveInventory((Eleon.Modding.Inventory)p.data); break; case Eleon.Modding.CmdId.Event_Playfield_Entity_List: ProcessEvent_Playfield_Entity_List((Eleon.Modding.PlayfieldEntityList)p.data); break; case Eleon.Modding.CmdId.Event_ConsoleCommand: ProcessEvent_ConsoleCommand((Eleon.Modding.ConsoleCommandInfo)p.data); break; case Eleon.Modding.CmdId.Event_PdaStateChange: ProcessEvent_PdaStateChange((Eleon.Modding.PdaStateInfo)p.data); break; case Eleon.Modding.CmdId.Event_GameEvent: ProcessEvent_GameEvent((Eleon.Modding.GameEventData)p.data); break; case Eleon.Modding.CmdId.Event_DialogButtonIndex: // We don't do anything with this here as this is from other mods. break; default: DebugOutput("(1) Unknown package cmd {0}", p.cmd); BreakIfDebugBuild(); break; } } } catch (Exception ex) { var newFormat = DateTime.Now.ToString("R") + " - " + "OnClient_GameEventReceived Exception: {0} ({1})"; _traceSource.TraceEvent(TraceEventType.Error, 1, newFormat, ex.Message, p.cmd); //$$_traceSource.TraceEvent(TraceEventType.Error, 1, "OnClient_GameEventReceived Exception: {0}", ex.Message); BreakIfDebugBuild(); } }
private void SendRequest(Eleon.Modding.CmdId cmdID, ushort seqNr, object data) { _traceSource.TraceEvent(TraceEventType.Information, 1, "SendRequest: Command {0} SeqNr: {1}", cmdID, seqNr); _client.Send(cmdID, (ushort)seqNr, data); }