Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }