public static void Quit(string playerId, Room.Room room) { //remove player from room and player cache try { var Player = Cache.getPlayer(playerId); if (Player?.Target != null) { SendToClient("You can't quit during combat.", playerId); return; } if (Player != null) { PlayerManager.RemovePlayerFromRoom(room, Player); Save.UpdatePlayer(Player); PlayerSetup.Player removedChar = null; MIMHub._PlayerCache.TryRemove(Player.HubGuid, out removedChar); SendToClient("Gods take note of your progress", playerId); SendToClient("See you soon!", playerId); broadcastToRoom(Player.Name + " has left the realm", room.players, playerId, true); try { HubContext.getHubContext.Clients.Client(playerId).quit(); } catch (Exception ex) { var log = new Error.Error { Date = DateTime.Now, ErrorMessage = ex.InnerException.ToString(), MethodName = "Quit" }; Save.LogError(log); } } } catch (Exception ex) { var log = new Error.Error { Date = DateTime.Now, ErrorMessage = ex.InnerException.ToString(), MethodName = "Quit" }; Save.LogError(log); } }
public void Quit(string playerId, Room.Room room) { //remove player from room and player cache try { var Player = Cache.getPlayer(playerId); if (Player?.Target != null) { SendToClient("You can't quit during combat.", playerId); return; } if (Player != null) { using (var db = new LiteDatabase(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ConfigurationManager.AppSettings["database"]))) { var col = db.GetCollection <QuitLocation>("QuitLocation"); var quitLoc = new QuitLocation { PlayerName = Player.Name, RoomName = room.title, RoomId = room.areaId }; col.Insert(Guid.NewGuid(), quitLoc); } PlayerManager.RemovePlayerFromRoom(room, Player); Save.SavePlayer(Player); PlayerSetup.Player removedChar = null; MIMHub._PlayerCache.TryRemove(Player.HubGuid, out removedChar); SendToClient("Gods take note of your progress", playerId); SendToClient("See you soon!", playerId); BroadcastToRoom(Player.Name + " has left the realm", room.players, playerId, true); try { _hubContext.Clients.Client(playerId).quit(); } catch (Exception ex) { var log = new Error.Error { Date = DateTime.Now, ErrorMessage = ex.InnerException.ToString(), MethodName = "Quit" }; Save.LogError(log); } } } catch (Exception ex) { var log = new Error.Error { Date = DateTime.Now, ErrorMessage = ex.InnerException.ToString(), MethodName = "Quit" }; Save.LogError(log); } }