Example #1
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer unturnedPlayer = (UnturnedPlayer)caller;

            var jailedPlayer = UnturnedPlayer.FromName(command[0]);

            if (command.Length < 1)
            {
                ChatManager.serverSendMessage($"Incorrect usage of command.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailedPlayer == null)
            {
                ChatManager.serverSendMessage($"Player does not exist.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            JailTime jailedTime = new JailTime();

            if (!PSRMPoliceUtilities.Instance.JailTimeService.IsPlayerJailed(jailedPlayer.CSteamID.ToString(), out jailedTime))
            {
                return;
            }
            if (jailedTime == null)
            {
                ChatManager.serverSendMessage($"{jailedPlayer} is not in jail.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            ChatManager.serverSendMessage($"{unturnedPlayer.CharacterName} freed {jailedPlayer.CharacterName} from {jailedTime.JailName}", Color.blue, null, null, EChatMode.GLOBAL, null, true);

            jailedPlayer.Teleport(new Vector3(PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.x, PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.x, PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.z), 0);
            PSRMPoliceUtilities.Instance.JailTimeService.RemoveJailedUser(jailedPlayer.CSteamID.ToString());
        }
Example #2
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer unturnedPlayer = (UnturnedPlayer)caller;

            var jailedPlayer = UnturnedPlayer.FromName(command[0]);

            if (command.Length < 1)
            {
                ChatManager.serverSendMessage($"Incorrect usage of command.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailedPlayer == null)
            {
                ChatManager.serverSendMessage($"Player does not exist.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            JailTime jailedTime = new JailTime();

            if (PSRMPoliceUtilities.Instance.JailTimeService.IsPlayerJailed(jailedPlayer.CSteamID.ToString(), out jailedTime))
            {
                if (jailedTime == null)
                {
                    return;
                }
                var jail = PSRMPoliceUtilities.Instance.Configuration.Instance.Jails.FirstOrDefault(x => x.Name == jailedTime.JailName);

                ChatManager.serverSendMessage($"{jailedPlayer.CharacterName} is in jail for {jailedTime.Reason} at {jail.Name} for {jailedTime.ExpireDate - DateTime.UtcNow}", Color.green, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
            }
        }
Example #3
0
        public bool IsPlayerJailed(string playerId, out JailTime jail)
        {
            if (Database.Data.Exists(x => x.PlayerId == playerId))
            {
                jail = Database.Data.FirstOrDefault(x => x.PlayerId == playerId);
                return(true);
            }

            jail = null;
            return(false);
        }
        private void OnPlayerDeath(UnturnedPlayer player, EDeathCause cause, ELimb limb, CSteamID murderer)
        {
            JailTime jailTime = new JailTime();

            if (Instance.JailTimeService.IsPlayerJailed(player.CSteamID.ToString(), out jailTime))
            {
                var jail = Instance.Configuration.Instance.Jails.FirstOrDefault(x => x.Name == jailTime.JailName);

                Logger.LogWarning($"{player.CharacterName} died while jailed so they were teleported back to their jail");
                player.Teleport(new Vector3(jail.X, jail.Y, jail.Z), 0f);
            }
        }
Example #5
0
        public void RegisterJailedUser(string playerId, Jail jail, double time, string reason)
        {
            var jailTime = new JailTime()
            {
                PlayerId   = playerId,
                JailName   = jail.Name,
                ExpireDate = DateTime.Now.AddSeconds(time),
                Reason     = reason
            };

            Database.AddJailTime(jailTime);
            JailTimes[playerId] = DateTime.Now.AddSeconds(time);
        }
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer unturnedPlayer = (UnturnedPlayer)caller;

            var jailedPlayer = UnturnedPlayer.FromName(command[0]);

            if (command[0].Length < 1)
            {
                jailedPlayer = unturnedPlayer;
            }

            if (jailedPlayer == null)
            {
                ChatManager.serverSendMessage($"Player does not exist.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            JailTime jailedTime = new JailTime();

            if (!PSRMPoliceUtilities.Instance.JailTimeService.IsPlayerJailed(jailedPlayer.CSteamID.ToString(), out jailedTime))
            {
                return;
            }
            if (jailedTime == null)
            {
                ChatManager.serverSendMessage($"{jailedPlayer} is not in jail.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            var currentCredits  = Uconomy.Instance.Database.GetBalance(jailedPlayer.CSteamID.ToString());
            var requiredCredits = PSRMPoliceUtilities.Instance.Configuration.Instance.CreditsPerMinute * (jailedTime.ExpireDate - DateTime.UtcNow).Minutes;

            if (currentCredits < requiredCredits)
            {
                ChatManager.serverSendMessage($"You need {requiredCredits} {Uconomy.Instance.Configuration.Instance.MoneyName}, but you only have {currentCredits} {Uconomy.Instance.Configuration.Instance.MoneyName}!", Color.red, null, null, EChatMode.GLOBAL, null, true);
                return;
            }

            Uconomy.Instance.Database.IncreaseBalance(unturnedPlayer.CSteamID.ToString(), -requiredCredits);
            ChatManager.serverSendMessage($"You bailed {jailedPlayer.CharacterName} for {requiredCredits} {Uconomy.Instance.Configuration.Instance.DatabaseName}.", Color.red, null, null, EChatMode.GLOBAL, null, true);

            ChatManager.serverSendMessage($"{unturnedPlayer.CharacterName} bailed {jailedPlayer.CharacterName} from {jailedTime.JailName}", Color.blue, null, null, EChatMode.GLOBAL, null, true);

            jailedPlayer.Teleport(new Vector3(PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.x, PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.x, PSRMPoliceUtilities.Instance.Configuration.Instance.RelaseLocation.z), 0);
            PSRMPoliceUtilities.Instance.JailTimesDatabase.Data.Remove(jailedTime);
        }
        private void OnPlayerUpdatePosition(UnturnedPlayer player, Vector3 position)
        {
            JailTime jailTime = new JailTime();

            if (!Instance.JailTimeService.IsPlayerJailed(player.CSteamID.ToString(), out jailTime))
            {
                return;
            }
            var jail = Instance.Configuration.Instance.Jails.FirstOrDefault(x => x.Name == jailTime.JailName);

            float radius = Vector3.Distance(new Vector3(jail.X, jail.Y, jail.Z), position);

            if (!(radius > Instance.Configuration.Instance.JailRadius))
            {
                return;
            }
            Logger.LogWarning($"{player.CharacterName} tried to get of their jail so they were teleported back.");
            player.Teleport(new Vector3(jail.X, jail.Y, jail.Z), 0f);
        }
Example #8
0
        public void Execute(IRocketPlayer caller, string[] command)
        {
            UnturnedPlayer unturnedPlayer = (UnturnedPlayer)caller;

            var jailedPlayer = UnturnedPlayer.FromName(command[0]);
            var jailName     = PSRMPoliceUtilities.Instance.Configuration.Instance.Jails.FirstOrDefault(x => x.Name.ToLower() == command[1].ToLower());
            var jailTime     = Convert.ToDouble(command[2]);
            var jailReason   = string.Join(" ", command[3]);

            if (command.Length <= 1)
            {
                ChatManager.serverSendMessage($"Incorrect usage of command.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailedPlayer == null)
            {
                ChatManager.serverSendMessage($"Player does not exist.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailedPlayer.IsAdmin || jailedPlayer.HasPermission("ps.policeutilities.jailimmune"))
            {
                ChatManager.serverSendMessage($"You cannot jail that player!", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailName == null)
            {
                ChatManager.serverSendMessage($"Jail does not exist.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailTime <= 1)
            {
                ChatManager.serverSendMessage($"Invalid time in seconds.", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            if (jailReason.Length < 1)
            {
                jailReason = "N/A";
            }

            JailTime jailedTime = new JailTime();

            if (PSRMPoliceUtilities.Instance.JailTimeService.IsPlayerJailed(jailedPlayer.CSteamID.ToString(), out jailedTime))
            {
                if (jailedTime == null)
                {
                    return;
                }
                var jail = PSRMPoliceUtilities.Instance.Configuration.Instance.Jails.FirstOrDefault(x => x.Name == jailedTime.JailName);
                ChatManager.serverSendMessage($"{jailedPlayer} is already in jail at {jailedTime.JailName} for {jailedTime.Reason}", Color.red, null, unturnedPlayer.SteamPlayer(), EChatMode.SAY, null, true);
                return;
            }

            PSRMPoliceUtilities.Instance.JailTimeService.RegisterJailedUser(jailedPlayer.CSteamID.ToString(), jailName, jailTime, jailReason);
            jailedPlayer.Teleport(new Vector3(jailName.X, jailName.Y, jailName.Z), 0f);
            ChatManager.serverSendMessage($"{unturnedPlayer.CharacterName} jailed {jailedPlayer.CharacterName} for {jailReason} at {jailName.Name} for {jailTime}!", Color.yellow, null, null, EChatMode.GLOBAL, null, true);
            Logger.LogWarning($"Jailed at {DateTime.Now}");
        }
Example #9
0
 public void RemoveJailTime(JailTime time)
 {
     Data.Remove(time);
     DataStorage.Save(Data);
 }
Example #10
0
 public void AddJailTime(JailTime time)
 {
     Data.Add(time);
     DataStorage.Save(Data);
 }