public void Handle(NetConnection sender, NetIncomingMessage message) { if (!(sender.Tag is Player)) { return; } var player = (Player)sender.Tag; playerRepository.Delete(player.Client.PersistentId); clientRepository.Delete(player.Client.PersistentId); var characterDisconnectedMessageData = new CharacterDisconnectedMessageData(); characterDisconnectedMessageData.Character = player.Character; outgoingMessageService.Send(characterDisconnectedMessageData, playerRepository.GetPlayersConnection(new List <Player>(playerRepository.Players.Values))); }
public SNMessageData GetMessageData(short type) { ClientMessageTypes header = (ClientMessageTypes)type; SNMessageData message = null; switch (header) { #region Authentification case ClientMessageTypes.PlayerLoginSuccess: message = new PlayerLoginSuccessMessageData(); break; case ClientMessageTypes.PlayerLoginError: message = new PlayerLoginErrorMessageData(); break; case ClientMessageTypes.SendCharacters: message = new SendCharactersMessageData(); break; case ClientMessageTypes.CharacterSelected: message = new CharacterSelectedMessageData(); break; #endregion #region Entities case ClientMessageTypes.EntityPosition: message = new EntityPositionMessageData(); break; case ClientMessageTypes.CharacterDisconnected: message = new CharacterDisconnectedMessageData(); break; #endregion default: loggingService.Log($"Cannot build client message {header.ToString()}", LogMessageType.WARNING); break; } return(message); }