public void EndLoad(ClientConnection connection) { lock (_lOnline) { if (connection.ActivePlayer != null) { var player = connection.ActivePlayer; if (!_onlineCharacters.ContainsKey(player.GameSessionId)) { _onlineCharacters.Add(player.GameSessionId, player); } connection.ActivePlayer.PlayerActions += (action, parameters) => { switch (action) { case Player.PlayerAction.Logout: if (_onlineCharacters.ContainsKey(player.GameSessionId)) { _onlineCharacters.Remove(player.GameSessionId); Log.Debug($"Player:{player.DatabaseCharacterData.CharacterName} has left the world"); } break; case Player.PlayerAction.Chat: ChatProcessor.HandleChatMessage(connection, parameters); break; } }; } } }