public void OnDataRetrieved(AbstractDatagram datagram) { switch (datagram.GetDatagramId()) { case RequestIdentifiers.UsersInfo: _currentDataToUpdate = datagram as UsersInformationRequestBody; UpdateUsersInfo(_currentDataToUpdate); break; } }
public void FilterRequest(AbstractDatagram datagram, IPEndPoint endPoint) { lock (userManagerLock) { switch (datagram.GetDatagramId()) { case RequestIdentifiers.UserConnect: { lock (connectDisconnectLock) { var id = ((UserConnectRequestbody)datagram).UserIdentifier; var initialUserData = GetInitialUserData(id); _listener.Send(BinarySerializer.Serialize(initialUserData), endPoint); Console.Write("User Connected id: " + id + "\n"); PlayerConnectedRequest(initialUserData.UserInformation); _userManager.AddUser((UserConnectRequestbody)datagram, endPoint); break; } } case RequestIdentifiers.PlayerDisconnected: { lock (connectDisconnectLock) { _userManager.RemoveUser(datagram as PlayerDisconnectedRequestBody); break; } } case RequestIdentifiers.ConcreteUserInformation: { _userManager.UpdateUser(datagram as ConcreteUserInformation); break; } default: throw new ArgumentOutOfRangeException(); } } }
private void OnDataRetrieved(AbstractDatagram datagram) { switch (datagram.GetDatagramId()) { case RequestIdentifiers.PlayerConnected: { var userInfo = (datagram as PlayerConnectedRequestBody).UserInformation; PlayerConnected?.Invoke(userInfo); break; } case RequestIdentifiers.PlayerDisconnected: { var id = (datagram as PlayerDisconnectedRequestBody).UserIdentifier; PlayerDisconnected?.Invoke(id); } break; default: throw new ArgumentOutOfRangeException(); } }