protected override void OnRun(IncomingMessage message) { ServerEnvelopeObject envelope = Manager.Serializer.GetObject<ServerEnvelopeObject>(message.Data); GameMessageType gmt = (GameMessageType)Enum.ToObject(typeof(GameMessageType), envelope.InnerOperationCode); switch (gmt) { case GameMessageType.Server_ReceiveTableListingRequest: OnTableListingRequest(Manager.Serializer.GetObject<TableListingRequest>(envelope.InnerData), envelope.RouteInfo); break; case GameMessageType.Server_ReceiveJoinTableRequest: OnJoinTableRequest(envelope); break; default: IncomingGameMessageQueueItem defaultItem = new IncomingGameMessageQueueItem(); defaultItem.OperationCode = (GameMessageType)envelope.InnerOperationCode; defaultItem.Data = envelope.InnerData; defaultItem.RouteInfo = envelope.RouteInfo; Manager.Tables[defaultItem.RouteInfo.TableId].PlayerPortal.IncomingQueue.Add(defaultItem); break; } message.WasMessageHandled = true; }
protected virtual void OnJoinTableRequest(ServerEnvelopeObject envelope) { JoinTableRequest jtres = Manager.Serializer.GetObject<JoinTableRequest>(envelope.InnerData); IncomingGameMessageQueueItem joinTableItem = new IncomingGameMessageQueueItem(); joinTableItem.OperationCode = (GameMessageType)envelope.InnerOperationCode; joinTableItem.Data = envelope.InnerData; joinTableItem.RouteInfo = envelope.RouteInfo; Manager.Tables[jtres.TableToJoin].PlayerPortal.IncomingQueue.Add(joinTableItem); }