Beispiel #1
0
 public static void Clear()
 {
     for (int i = 0; i < Jailed.Count; i++)
     {
         string _id = Jailed[i];
         if (Jailed.Contains(_id))
         {
             string    _sql    = string.Format("SELECT jailTime, jailDate FROM Players WHERE steamid = '{0}'", _id);
             DataTable _result = SQL.TQuery(_sql);
             int       _jailTime;
             int.TryParse(_result.Rows[0].ItemArray.GetValue(0).ToString(), out _jailTime);
             DateTime _jailDate;
             DateTime.TryParse(_result.Rows[0].ItemArray.GetValue(1).ToString(), out _jailDate);
             _result.Dispose();
             if (_jailTime == -1)
             {
                 break;
             }
             TimeSpan varTime           = DateTime.Now - _jailDate;
             double   fractionalMinutes = varTime.TotalMinutes;
             int      _timepassed       = (int)fractionalMinutes;
             if (_timepassed >= _jailTime)
             {
                 ClientInfo _cInfo = ConnectionManager.Instance.Clients.ForPlayerId(_id);
                 if (_cInfo != null)
                 {
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                     if (_player.IsSpawned())
                     {
                         Jailed.Remove(_id);
                         _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _cInfo.playerId);
                         SQL.FastQuery(_sql);
                         EntityBedrollPositionList _position = _player.SpawnPoints;
                         if (_position.Count > 0)
                         {
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                         }
                         else
                         {
                             Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                         }
                         string _phrase501;
                         if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                         {
                             _phrase501 = " you have been released from jail.";
                         }
                         ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase501 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                     }
                 }
                 else
                 {
                     Jailed.Remove(_id);
                     _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _cInfo.playerId);
                     SQL.FastQuery(_sql);
                 }
             }
         }
     }
 }
Beispiel #2
0
        public static void Forgive(ClientInfo _cInfo)
        {
            int _killId;

            if (Zones.Forgive.TryGetValue(_cInfo.entityId, out _killId))
            {
                ClientInfo _cInfoKiller = ConnectionManager.Instance.Clients.ForEntityId(_killId);
                if (_cInfoKiller == null)
                {
                    Phrases.Dict.TryGetValue(200, out string _phrase200);
                    _phrase200 = _phrase200.Replace("{PlayerName}", _killId.ToString());
                    ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase200 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                }
                else
                {
                    if (!Jailed.Contains(_cInfoKiller.playerId))
                    {
                        Zones.Forgive.Remove(_cInfo.entityId);
                        Phrases.Dict.TryGetValue(196, out string _phrase196);
                        _phrase196 = _phrase196.Replace("{PlayerName}", _cInfoKiller.playerName);
                        ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase196 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                    }
                    else
                    {
                        EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfoKiller.entityId];
                        if (_player.IsSpawned())
                        {
                            Zones.Forgive.Remove(_cInfo.entityId);
                            Jailed.Remove(_cInfoKiller.playerId);
                            PersistentContainer.Instance.Players[_cInfoKiller.playerId].JailTime = 0;
                            PersistentContainer.Instance.Save();
                            EntityBedrollPositionList _position = _player.SpawnPoints;
                            if (_position.Count > 0)
                            {
                                _cInfoKiller.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                            }
                            else
                            {
                                Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                _cInfoKiller.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                            }
                            Phrases.Dict.TryGetValue(201, out string _phrase201);
                            _phrase201 = _phrase201.Replace("{PlayerName}", _cInfoKiller.playerName);
                            ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase201 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                            Phrases.Dict.TryGetValue(202, out string _phrase202);
                            _phrase202 = _phrase202.Replace("{PlayerName}", _cInfo.playerName);
                            ChatHook.ChatMessage(_cInfoKiller, LoadConfig.Chat_Response_Color + _phrase202 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                        }
                        else
                        {
                            Phrases.Dict.TryGetValue(203, out string _phrase203);
                            _phrase203 = _phrase203.Replace("{PlayerName}", _cInfoKiller.playerName);
                            ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase203 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                        }
                    }
                }
            }
        }
Beispiel #3
0
        public static void Forgive(ClientInfo _cInfo)
        {
            int _killId;

            if (Zones.Forgive.TryGetValue(_cInfo.entityId, out _killId))
            {
                ClientInfo _cInfoKiller = ConnectionManager.Instance.Clients.ForEntityId(_killId);
                if (_cInfoKiller == null)
                {
                    ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + ", this player is not online and so can not be forgiven or removed from jail.[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                }
                else
                {
                    if (!Jailed.Contains(_cInfoKiller.playerId))
                    {
                        Zones.Forgive.Remove(_cInfo.entityId);
                        ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + ", this player is not in jail.[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                    }
                    else
                    {
                        EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfoKiller.entityId];
                        if (_player.IsSpawned())
                        {
                            Zones.Forgive.Remove(_cInfo.entityId);
                            Jailed.Remove(_cInfoKiller.playerId);
                            Players.NoFlight.Add(_cInfoKiller.entityId);
                            EntityBedrollPositionList _position = _player.SpawnPoints;
                            if (_position.Count > 0)
                            {
                                _cInfoKiller.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                            }
                            else
                            {
                                Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                _cInfoKiller.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                            }
                            string _chatMessage = ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + ", you have forgiven {PlayerName} and released them from jail.[-]";
                            _chatMessage = _chatMessage.Replace("{PlayerName}", _cInfoKiller.playerName);
                            ChatHook.ChatMessage(_cInfo, _chatMessage, _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                            _chatMessage = ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + ", you have been forgiven and released from jail by {PlayerName}.[-]";
                            _chatMessage = _chatMessage.Replace("{PlayerName}", _cInfo.playerName);
                            ChatHook.ChatMessage(_cInfoKiller, _chatMessage, _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                            string _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _cInfoKiller.playerId);
                            SQL.FastQuery(_sql);
                        }
                        else
                        {
                            ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + ", this player is not spawned and so can not be forgiven or removed from jail.[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                        }
                    }
                }
            }
            else
            {
                Zones.Forgive.Remove(_cInfo.entityId);
            }
        }
 public static void Clear()
 {
     for (int i = 0; i < Jailed.Count; i++)
     {
         string _id = Jailed[i];
         if (Jailed.Contains(_id))
         {
             Player p = PersistentContainer.Instance.Players[_id, false];
             {
                 if (p.JailTime == -1)
                 {
                     break;
                 }
                 TimeSpan varTime           = DateTime.Now - p.JailDate;
                 double   fractionalMinutes = varTime.TotalMinutes;
                 int      _timepassed       = (int)fractionalMinutes;
                 if (_timepassed >= p.JailTime)
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.GetClientInfoForPlayerId(_id);
                     if (_cInfo != null)
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         if (_player.IsSpawned())
                         {
                             Jailed.Remove(_id);
                             PersistentContainer.Instance.Players[_cInfo.playerId, true].JailTime = 0;
                             PersistentContainer.Instance.Save();
                             EntityBedrollPositionList _position = _player.SpawnPoints;
                             if (_position.Count > 0)
                             {
                                 _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), false));
                             }
                             else
                             {
                                 Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                 _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), false));
                             }
                             string _phrase501;
                             if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                             {
                                 _phrase501 = "{PlayerName} you have been released from jail.";
                             }
                             _phrase501 = _phrase501.Replace("{PlayerName}", _cInfo.playerName);
                             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase501, Config.Chat_Response_Color), Config.Server_Response_Name, false, "ServerTools", false));
                         }
                     }
                     else
                     {
                         Jailed.Remove(_id);
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailTime = 0;
                         PersistentContainer.Instance.Save();
                     }
                 }
             }
         }
     }
 }
        public static void Forgive(ClientInfo _cInfo)
        {
            int _killId;

            if (Players.Forgive.TryGetValue(_cInfo.entityId, out _killId))
            {
                ClientInfo _cInfoKiller = ConnectionManager.Instance.GetClientInfoForEntityId(_killId);
                if (_cInfoKiller != null)
                {
                    Player p = PersistentContainer.Instance.Players[_cInfoKiller.playerId, false];
                    if (p == null)
                    {
                        Players.Forgive.Remove(_cInfo.entityId);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} this player is not in jail.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
                    }
                    else
                    {
                        if (!Jailed.Contains(_cInfoKiller.playerId))
                        {
                            Players.Forgive.Remove(_cInfo.entityId);
                            _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} this player is not in jail.[-]", Config.Chat_Response_Color, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
                        }
                        else
                        {
                            Players.Forgive.Remove(_cInfo.entityId);
                            EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfoKiller.entityId];
                            if (_player.IsSpawned())
                            {
                                Jailed.Remove(_cInfoKiller.playerId);
                                Players.NoFlight.Add(_cInfoKiller.entityId);
                                EntityBedrollPositionList _position = _player.SpawnPoints;
                                if (_position.Count > 0)
                                {
                                    _cInfoKiller.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), false));
                                }
                                else
                                {
                                    Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                    _cInfoKiller.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), false));
                                }
                            }
                            else
                            {
                                _cInfoKiller.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1} you have been forgiven and released from jail by {2}.[-]", Config.Chat_Response_Color, _cInfoKiller.playerName, _cInfo.playerName), Config.Server_Response_Name, false, "ServerTools", false));
                                PersistentContainer.Instance.Players[_cInfoKiller.playerId, true].JailTime = 0;
                                PersistentContainer.Instance.Save();
                            }
                        }
                    }
                }
            }
            else
            {
                Players.Forgive.Remove(_cInfo.entityId);
            }
        }
 public static void Clear()
 {
     for (int i = 0; i < Jailed.Count; i++)
     {
         string _id = Jailed[i];
         if (Jailed.Contains(_id))
         {
             int      _jailTime = PersistentContainer.Instance.Players[_id].JailTime;
             DateTime _jailDate = PersistentContainer.Instance.Players[_id].JailDate;
             if (_jailTime == -1)
             {
                 break;
             }
             TimeSpan varTime           = DateTime.Now - _jailDate;
             double   fractionalMinutes = varTime.TotalMinutes;
             int      _timepassed       = (int)fractionalMinutes;
             if (_timepassed >= _jailTime)
             {
                 ClientInfo _cInfo = ConnectionManager.Instance.Clients.ForPlayerId(_id);
                 if (_cInfo != null)
                 {
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                     if (_player.IsSpawned())
                     {
                         Jailed.Remove(_id);
                         PersistentContainer.Instance.Players[_cInfo.playerId].JailTime = 0;
                         PersistentContainer.Instance.Save();
                         EntityBedrollPositionList _position = _player.SpawnPoints;
                         if (_position.Count > 0)
                         {
                             _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                         }
                         else
                         {
                             Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                         }
                         string _phrase501;
                         if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                         {
                             _phrase501 = " you have been released from jail.";
                         }
                         ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase501 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                     }
                 }
                 else
                 {
                     Jailed.Remove(_id);
                     PersistentContainer.Instance.Players[_cInfo.playerId].JailTime = 0;
                     PersistentContainer.Instance.Save();
                 }
             }
         }
     }
 }
Beispiel #7
0
        public static void Forgive(ClientInfo _cInfo)
        {
            int _killId;

            if (Zones.Forgive.TryGetValue(_cInfo.entityId, out _killId))
            {
                ClientInfo _cInfoKiller = ConnectionManager.Instance.Clients.ForEntityId(_killId);
                if (_cInfoKiller == null)
                {
                    ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + "This player is not online and so can not be forgiven or removed from jail.[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                }
                else
                {
                    if (!Jailed.Contains(_cInfoKiller.playerId))
                    {
                        Zones.Forgive.Remove(_cInfo.entityId);
                        ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + "This player is not in jail.[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                    }
                    else
                    {
                        EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfoKiller.entityId];
                        if (_player.IsSpawned())
                        {
                            Zones.Forgive.Remove(_cInfo.entityId);
                            Jailed.Remove(_cInfoKiller.playerId);
                            PersistentContainer.Instance.Players[_cInfoKiller.playerId].JailTime = 0;
                            PersistentContainer.Instance.Save();
                            EntityBedrollPositionList _position = _player.SpawnPoints;
                            if (_position.Count > 0)
                            {
                                _cInfoKiller.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                            }
                            else
                            {
                                Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                _cInfoKiller.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                            }
                            string _chatMessage = LoadConfig.Chat_Response_Color + "You have forgiven {PlayerName} and released them from jail.[-]";
                            _chatMessage = _chatMessage.Replace("{PlayerName}", _cInfoKiller.playerName);
                            ChatHook.ChatMessage(_cInfo, _chatMessage, -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                            _chatMessage = LoadConfig.Chat_Response_Color + "You have been forgiven and released from jail by {PlayerName}.[-]";
                            _chatMessage = _chatMessage.Replace("{PlayerName}", _cInfo.playerName);
                            ChatHook.ChatMessage(_cInfoKiller, _chatMessage, -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                        }
                        else
                        {
                            ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + "This player is not spawned and so can not be forgiven or removed from jail.[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                        }
                    }
                }
            }
        }
Beispiel #8
0
        public static void CheckPlayer(ClientInfo _cInfo)
        {
            EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
            Player       p       = PersistentContainer.Instance.Players[_cInfo.playerId, false];

            if (p != null)
            {
                if (p.IsJailed)
                {
                    if (!Dict.ContainsKey(_cInfo.playerId))
                    {
                        Dict.Add(_cInfo.playerId, null);
                    }
                }
                else
                {
                    if (Dict.ContainsKey(_cInfo.playerId))
                    {
                        Dict.Remove(_cInfo.playerId);
                    }
                    if (!p.IsRemovedFromJail)
                    {
                        EntityBedrollPositionList _position = _player.SpawnPoints;
                        if (_position.Count > 0)
                        {
                            SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _cInfo.entityId, _position[0].x, _position[0].y, _position[0].z), _cInfo);
                        }
                        else
                        {
                            Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                            SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _cInfo.entityId, _pos[0].x, _pos[0].y, _pos[0].z), _cInfo);
                        }
                        string _phrase501;
                        if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                        {
                            _phrase501 = "{PlayerName} you have been released from jail.";
                        }
                        _phrase501 = _phrase501.Replace("{PlayerName}", _cInfo.playerName);
                        _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", CustomCommands.ChatColor, _phrase501), "Server", false, "", false));
                        PersistentContainer.Instance.Players[_cInfo.playerId, false].IsRemovedFromJail = true;
                        PersistentContainer.Instance.Save();
                    }
                }
            }
        }
 public static void BedBug(string _persistentPlayerId)
 {
     try
     {
         EntityPlayer _player = PersistentOperations.GetEntityPlayer(_persistentPlayerId);
         if (_player != null)
         {
             EntityBedrollPositionList _bedrollList = _player.SpawnPoints;
             if (_bedrollList != null)
             {
                 Vector3i            _bedrollPosition = _bedrollList.GetPos();
                 List <EntityPlayer> _playerList      = PersistentOperations.PlayerList();
                 if (_bedrollPosition != null && _playerList != null)
                 {
                     for (int i = 0; i < _playerList.Count; i++)
                     {
                         EntityPlayer _player2 = _playerList[i];
                         if (_player2 != null && _player2 != _player && _player2.SpawnPoints != null && _player2.SpawnPoints.GetPos().Equals(_bedrollPosition))
                         {
                             PersistentPlayerData _ppd = PersistentOperations.GetPersistentPlayerDataFromSteamId(_persistentPlayerId);
                             if (_ppd != null && !_player2.SpawnPoints.GetPos().Equals(_ppd.BedrollPos))
                             {
                                 _player2.SpawnPoints.Set(_ppd.BedrollPos);
                                 continue;
                             }
                             _player2.SpawnPoints.Clear();
                             GameManager.Instance.World.ObjectOnMapRemove(EnumMapObjectType.SleepingBag, _player2.entityId);
                             ConnectionManager.Instance.SendPackage(NetPackageManager.GetPackage <NetPackageEntityMapMarkerRemove>().Setup(EnumMapObjectType.SleepingBag, _player2.entityId), false, -1, -1, -1, -1);
                             ClientInfo _cInfo2 = PersistentOperations.GetClientInfoFromEntityId(_player2.entityId);
                             if (_cInfo2 != null)
                             {
                                 ChatHook.ChatMessage(_cInfo2, LoadConfig.Chat_Response_Color + "Detected bug with your bed. Check your bed and replace if needed[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                             }
                         }
                     }
                 }
             }
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in PersistentOperations.BedBug: {0}", e.Message));
     }
 }
Beispiel #10
0
 public static void RemoveFromJail(ClientInfo _cInfo, string _playerName)
 {
     string[] _command3 = { Command28 };
     if (!GameManager.Instance.adminTools.CommandAllowedFor(_command3, _cInfo))
     {
         Phrases.Dict.TryGetValue(199, out string _phrase199);
         ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase199 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
     }
     else
     {
         _playerName = _playerName.Replace("unjail ", "");
         ClientInfo _PlayertoUnJail = ConsoleHelper.ParseParamIdOrName(_playerName);
         if (_PlayertoUnJail == null)
         {
             Phrases.Dict.TryGetValue(200, out string _phrase200);
             _phrase200 = _phrase200.Replace("{PlayerName}", _playerName);
             ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase200 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
         }
         else
         {
             int _jailTime = PersistentContainer.Instance.Players[_PlayertoUnJail.playerId].JailTime;
             if (_jailTime == 0)
             {
                 Phrases.Dict.TryGetValue(196, out string _phrase196);
                 _phrase196 = _phrase196.Replace("{PlayerName}", _playerName);
                 ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase196 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
             }
             else
             {
                 if (!Jailed.Contains(_PlayertoUnJail.playerId))
                 {
                     Phrases.Dict.TryGetValue(196, out string _phrase196);
                     _phrase196 = _phrase196.Replace("{PlayerName}", _playerName);
                     ChatHook.ChatMessage(_cInfo, LoadConfig.Chat_Response_Color + _phrase196 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
                 else
                 {
                     Jailed.Remove(_PlayertoUnJail.playerId);
                     PersistentContainer.Instance.Players[_PlayertoUnJail.playerId].JailTime = 0;
                     PersistentContainer.Instance.Save();
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_PlayertoUnJail.entityId];
                     EntityBedrollPositionList _position = _player.SpawnPoints;
                     if (_position.Count > 0 && (PersistentOperations.ClaimedByAllyOrSelf(_PlayertoUnJail.playerId, _position.GetPos()) || PersistentOperations.ClaimedByNone(_PlayertoUnJail.playerId, _position.GetPos())))
                     {
                         _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                     }
                     else
                     {
                         Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                         if (PersistentOperations.ClaimedByAllyOrSelf(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)) || PersistentOperations.ClaimedByNone(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)))
                         {
                             _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                         }
                         else
                         {
                             _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             if (PersistentOperations.ClaimedByAllyOrSelf(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)) || PersistentOperations.ClaimedByNone(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)))
                             {
                                 _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                             }
                             else
                             {
                                 _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                 if (PersistentOperations.ClaimedByAllyOrSelf(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)) || PersistentOperations.ClaimedByNone(_PlayertoUnJail.playerId, new Vector3i(_pos[0].x, _pos[0].y, _pos[0].z)))
                                 {
                                     _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                                 }
                             }
                         }
                     }
                     Phrases.Dict.TryGetValue(191, out string _phrase191);
                     ChatHook.ChatMessage(_PlayertoUnJail, LoadConfig.Chat_Response_Color + _phrase191 + "[-]", -1, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
             }
         }
     }
 }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 3)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 to 3, found {0}.", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("off"))
         {
             Jail.IsEnabled = false;
             SdtdConsole.Instance.Output(string.Format("Jail has been set to off"));
             return;
         }
         else if (_params[0].ToLower().Equals("on"))
         {
             Jail.IsEnabled = true;
             SdtdConsole.Instance.Output(string.Format("Jail has been set to on"));
             return;
         }
         else if (_params[0].ToLower().Equals("add"))
         {
             if (_params.Count != 3)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 3, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length < 1 || _params[1].Length > 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add Id: Invalid Id {0}.", _params[1]));
                 return;
             }
             if (Jail.Jailed.Contains(_params[1]))
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add Id. {0} is already in the Jail list.", _params[1]));
                 return;
             }
             int _jailTime;
             if (!int.TryParse(_params[2], out _jailTime))
             {
                 SdtdConsole.Instance.Output(string.Format("Jail time is not valid: {0}", _params[2]));
                 return;
             }
             if (Jail.Jail_Position == "0,0,0" || Jail.Jail_Position == "0 0 0" || Jail.Jail_Position == "")
             {
                 SdtdConsole.Instance.Output(string.Format("Can not put a player in jail: Jail position has not been set."));
                 return;
             }
             else
             {
                 ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[1]);
                 if (_cInfo != null)
                 {
                     if (Jail.Jailed.Contains(_cInfo.playerId))
                     {
                         SdtdConsole.Instance.Output(string.Format("Player with Id {0} is already in jail.", _params[1]));
                         return;
                     }
                     else
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         if (_player.IsSpawned())
                         {
                             int      x, y, z;
                             string[] _cords = Jail.Jail_Position.Split(',');
                             int.TryParse(_cords[0], out x);
                             int.TryParse(_cords[1], out y);
                             int.TryParse(_cords[2], out z);
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(x, y, z), null, false));
                         }
                         Jail.Jailed.Add(_cInfo.playerId);
                         if (_jailTime >= 0)
                         {
                             string _phrase500;
                             if (!Phrases.Dict.TryGetValue(500, out _phrase500))
                             {
                                 _phrase500 = "you have been sent to jail.";
                             }
                             _phrase500 = _phrase500.Replace("{Minutes}", _jailTime.ToString());
                             ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + _phrase500 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                             SdtdConsole.Instance.Output(string.Format("You have put {0} in jail for {1} minutes.", _cInfo.playerName, _jailTime));
                         }
                         if (_jailTime == -1)
                         {
                             string _phrase500;
                             if (!Phrases.Dict.TryGetValue(500, out _phrase500))
                             {
                                 _phrase500 = "you have been sent to jail.";
                             }
                             ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + _phrase500 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                             SdtdConsole.Instance.Output(string.Format("You have put {0} in jail for life.", _cInfo.playerName));
                         }
                         string _sql = string.Format("UPDATE Players SET jailTime = {0}, jailName = '{1}', jailDate = '{2}' WHERE steamid = '{3}'", _jailTime, _cInfo.playerName, DateTime.Now, _cInfo.playerId);
                         SQL.FastQuery(_sql);
                     }
                 }
                 else
                 {
                     string _id  = SQL.EscapeString(_params[1]);
                     string _sql = string.Format("UPDATE Players SET jailTime = {0}, jailName = 'Unknown', jailDate = '{1}' WHERE steamid = '{2}'", _jailTime, DateTime.Now, _id);
                     SQL.FastQuery(_sql);
                     SdtdConsole.Instance.Output(string.Format("Player with Id {0} can not be found online but has been set for jail.", _id));
                     return;
                 }
             }
         }
         else if (_params[0].ToLower().Equals("remove"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 2, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not remove player Id: Invalid steam Id {0}.", _params[1]));
                 return;
             }
             else
             {
                 if (!Jail.Jailed.Contains(_params[1]))
                 {
                     SdtdConsole.Instance.Output(string.Format("Player with steam Id {0} is not in jail. ", _params[1]));
                     return;
                 }
                 else
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.Clients.ForPlayerId(_params[1]);
                     if (_cInfo != null)
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         EntityBedrollPositionList _position = _player.SpawnPoints;
                         Jail.Jailed.Remove(_cInfo.playerId);
                         if (_position.Count > 0)
                         {
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, -1, _position[0].z), null, false));
                         }
                         else
                         {
                             Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, -1, _pos[0].z), null, false));
                         }
                         string _phrase501;
                         if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                         {
                             _phrase501 = "you have been released from jail.";
                         }
                         _phrase501 = _phrase501.Replace("{PlayerName}", _cInfo.playerName);
                         ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + _phrase501 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                         string _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _cInfo.playerId);
                         SQL.FastQuery(_sql);
                         SdtdConsole.Instance.Output(string.Format("You have released a player with steam id {0} from jail. ", _params[1]));
                         return;
                     }
                     else
                     {
                         string _id  = SQL.EscapeString(_params[1]);
                         string _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _id);
                         SQL.FastQuery(_sql);
                         Jail.Jailed.Remove(_cInfo.playerId);
                         SdtdConsole.Instance.Output(string.Format("Player with steam Id {0} has been removed from the jail list.", _params[1]));
                         return;
                     }
                 }
             }
         }
         else if (_params[0].ToLower().Equals("list"))
         {
             if (_params.Count != 1)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}.", _params.Count));
                 return;
             }
             if (Jail.Jailed.Count == 0)
             {
                 SdtdConsole.Instance.Output("There are no Ids on the Jail list.");
                 return;
             }
             else
             {
                 for (int i = 0; i < Jail.Jailed.Count; i++)
                 {
                     string    _id     = Jail.Jailed[i];
                     string    _sql    = string.Format("SELECT jailTime, jailName, jailDate FROM Players WHERE steamid = '{0}'", _id);
                     DataTable _result = SQL.TQuery(_sql);
                     int       _jailTime;
                     int.TryParse(_result.Rows[0].ItemArray.GetValue(0).ToString(), out _jailTime);
                     DateTime _jailDate;
                     DateTime.TryParse(_result.Rows[0].ItemArray.GetValue(2).ToString(), out _jailDate);
                     if (_jailTime > 0)
                     {
                         TimeSpan varTime           = DateTime.Now - _jailDate;
                         double   fractionalMinutes = varTime.TotalMinutes;
                         int      _timepassed       = (int)fractionalMinutes;
                         int      _timeleft         = _jailTime - _timepassed;
                         SdtdConsole.Instance.Output(string.Format("Jailed player: steam Id {0} named {1} for {2} more minutes.", _id, _result.Rows[0].ItemArray.GetValue(1).ToString(), _timeleft));
                     }
                     else
                     {
                         SdtdConsole.Instance.Output(string.Format("Jailed player: steam Id {0} named {1} forever.", _id, _result.Rows[0].ItemArray.GetValue(1).ToString()));
                     }
                     _result.Dispose();
                 }
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}.", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in CommandJailConsole.Run: {0}.", e));
     }
 }
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 3)
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1 to 3, found {0}.", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("off"))
         {
             if (Jail.IsEnabled)
             {
                 Jail.IsEnabled = false;
                 Config.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jail has been set to off"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jail is already off"));
                 return;
             }
         }
         else if (_params[0].ToLower().Equals("on"))
         {
             if (!Jail.IsEnabled)
             {
                 Jail.IsEnabled = true;
                 Config.WriteXml();
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jail has been set to on"));
                 return;
             }
             else
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jail is already on"));
                 return;
             }
         }
         else if (_params[0].ToLower().Equals("add"))
         {
             if (_params.Count != 3)
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 3, found {0}", _params.Count));
                 return;
             }
             if (_params[1].Length < 3 || _params[1].Length > 17)
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not add Id: Invalid Id {0}", _params[1]));
                 return;
             }
             if (Jail.Jailed.Contains(_params[1]))
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not add Id. {0} is already in the Jail list", _params[1]));
                 return;
             }
             int _jailTime;
             if (!int.TryParse(_params[2], out _jailTime))
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jail time is not valid: {0}", _params[2]));
                 return;
             }
             if (Jail.Jail_Position == "0,0,0" || Jail.Jail_Position == "0 0 0" || Jail.Jail_Position == "")
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not put a player in jail: Jail position has not been set"));
                 return;
             }
             else
             {
                 ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[1]);
                 if (_cInfo != null)
                 {
                     if (Jail.Jailed.Contains(_cInfo.playerId))
                     {
                         SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Player with Id {0} is already in jail", _params[1]));
                         return;
                     }
                     else
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         if (_player != null && _player.IsSpawned())
                         {
                             int      x, y, z;
                             string[] _cords = Jail.Jail_Position.Split(',');
                             int.TryParse(_cords[0], out x);
                             int.TryParse(_cords[1], out y);
                             int.TryParse(_cords[2], out z);
                             _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(x, y, z), null, false));
                         }
                         Jail.Jailed.Add(_cInfo.playerId);
                         PersistentContainer.Instance.Players[_cInfo.playerId].JailTime = _jailTime;
                         PersistentContainer.Instance.Players[_cInfo.playerId].JailName = _cInfo.playerName;
                         PersistentContainer.Instance.Players[_cInfo.playerId].JailDate = DateTime.Now;
                         PersistentContainer.DataChange = true;
                         if (_jailTime > 0)
                         {
                             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] You have put {0} in jail for {1} minutes", _cInfo.playerName, _jailTime));
                             Phrases.Dict.TryGetValue(190, out string _phrase190);
                             ChatHook.ChatMessage(_cInfo, Config.Chat_Response_Color + _phrase190 + "[-]", -1, Config.Server_Response_Name, EChatType.Whisper, null);
                         }
                         if (_jailTime == -1)
                         {
                             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] You have put {0} in jail for life", _cInfo.playerName));
                             Phrases.Dict.TryGetValue(190, out string _phrase190);
                             ChatHook.ChatMessage(_cInfo, Config.Chat_Response_Color + _phrase190 + "[-]", -1, Config.Server_Response_Name, EChatType.Whisper, null);
                         }
                     }
                 }
                 else
                 {
                     if (PersistentContainer.Instance.Players[_params[1]] != null)
                     {
                         Jail.Jailed.Add(_cInfo.playerId);
                         PersistentContainer.Instance.Players[_params[1]].JailTime = _jailTime;
                         PersistentContainer.Instance.Players[_params[1]].JailName = _cInfo.playerName;
                         PersistentContainer.Instance.Players[_params[1]].JailDate = DateTime.Now;
                         PersistentContainer.DataChange = true;
                         SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Player with Id {0} can not be found online but has been set for jail", _params[1]));
                         return;
                     }
                 }
             }
         }
         else if (_params[0].ToLower().Equals("remove"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 2, found {0}", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Can not remove player Id: Invalid steam Id {0}", _params[1]));
                 return;
             }
             else
             {
                 if (!Jail.Jailed.Contains(_params[1]))
                 {
                     SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Player with steam Id {0} is not in jail", _params[1]));
                     return;
                 }
                 else
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.Clients.ForPlayerId(_params[1]);
                     if (_cInfo != null)
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         if (_player != null)
                         {
                             EntityBedrollPositionList _position = _player.SpawnPoints;
                             Jail.Jailed.Remove(_cInfo.playerId);
                             PersistentContainer.Instance.Players[_cInfo.playerId].JailTime = 0;
                             PersistentContainer.DataChange = true;
                             if (_position != null && _position.Count > 0)
                             {
                                 _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, -1, _position[0].z), null, false));
                             }
                             else
                             {
                                 Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                 _cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, -1, _pos[0].z), null, false));
                             }
                             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] You have released a player with steam id {0} from jail", _params[1]));
                             return;
                         }
                     }
                     else
                     {
                     }
                 }
             }
         }
         else if (_params[0].ToLower().Equals("list"))
         {
             if (_params.Count != 1)
             {
                 SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found {0}.", _params.Count));
                 return;
             }
             if (Jail.Jailed.Count == 0)
             {
                 SdtdConsole.Instance.Output("[SERVERTOOLS] There are no Ids on the Jail list.");
                 return;
             }
             else
             {
                 for (int i = 0; i < Jail.Jailed.Count; i++)
                 {
                     string _id       = Jail.Jailed[i];
                     int    _jailTime = PersistentContainer.Instance.Players[_id].JailTime;
                     string _jailName = PersistentContainer.Instance.Players[_id].JailName;
                     if (_jailTime > 0)
                     {
                         DateTime _jailDate         = PersistentContainer.Instance.Players[_id].JailDate;
                         TimeSpan varTime           = DateTime.Now - _jailDate;
                         double   fractionalMinutes = varTime.TotalMinutes;
                         int      _timepassed       = (int)fractionalMinutes;
                         int      _timeleft         = _jailTime - _timepassed;
                         SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jailed player: steam Id {0} named {1} for {2} more minutes.", _id, _jailName, _timeleft));
                     }
                     else if (_jailTime == -1)
                     {
                         SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Jailed player: steam Id {0} named {1} forever.", _id, _jailName));
                     }
                 }
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in CommandJailConsole.Execute: {0}", e.Message));
     }
 }
        public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
        {
            try
            {
                if (_params.Count < 1 || _params.Count > 3)
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1 to 3, found {0}.", _params.Count));

                    return;
                }
                if (_params[0].ToLower().Equals("off"))
                {
                    if (Jail.IsEnabled)
                    {
                        Jail.IsEnabled = false;
                        Config.WriteXml();
                        Config.LoadXml();
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Jail has been set to off"));

                        return;
                    }
                    else
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Jail is already off"));

                        return;
                    }
                }
                else if (_params[0].ToLower().Equals("on"))
                {
                    if (!Jail.IsEnabled)
                    {
                        Jail.IsEnabled = true;
                        Config.WriteXml();
                        Config.LoadXml();
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Jail has been set to on"));

                        return;
                    }
                    else
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Jail is already on"));

                        return;
                    }
                }
                else if (_params[0].ToLower().Equals("add"))
                {
                    if (_params.Count != 3)
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 3, found {0}", _params.Count));

                        return;
                    }
                    if (Jail.Jailed.Contains(_params[1]))
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Can not add Id. {0} is already in the Jail list", _params[1]));

                        return;
                    }
                    if (!int.TryParse(_params[2], out int jailTime))
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Jail time is not valid '{0}'", _params[2]));

                        return;
                    }
                    if (Jail.Jail_Position == "0,0,0" || Jail.Jail_Position == "0 0 0" || Jail.Jail_Position == "")
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Can not put a player in jail. The jail position has not been set"));

                        return;
                    }
                    else
                    {
                        ClientInfo cInfo = PersistentOperations.GetClientInfoFromNameOrId(_params[1]);
                        if (cInfo != null)
                        {
                            if (Jail.Jailed.Contains(cInfo.CrossplatformId.CombinedString))
                            {
                                SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Player with Id '{0}' is already in jail", _params[1]));

                                return;
                            }
                            else
                            {
                                EntityPlayer player = PersistentOperations.GetEntityPlayer(cInfo.entityId);
                                if (player != null && player.IsSpawned())
                                {
                                    string[] cords = Jail.Jail_Position.Split(',');
                                    int.TryParse(cords[0], out int x);
                                    int.TryParse(cords[1], out int y);
                                    int.TryParse(cords[2], out int z);
                                    cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(x, y, z), null, false));
                                }
                                Jail.Jailed.Add(cInfo.CrossplatformId.CombinedString);
                                PersistentContainer.Instance.Players[cInfo.CrossplatformId.CombinedString].JailTime = jailTime;
                                PersistentContainer.Instance.Players[cInfo.CrossplatformId.CombinedString].JailName = cInfo.playerName;
                                PersistentContainer.Instance.Players[cInfo.CrossplatformId.CombinedString].JailDate = DateTime.Now;
                                PersistentContainer.DataChange = true;
                                if (jailTime > 0)
                                {
                                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] You have put '{0}' named '{1}' in jail for '{2}' minutes", cInfo.CrossplatformId.CombinedString, cInfo.playerName, jailTime));

                                    Phrases.Dict.TryGetValue("Jail1", out string phrase);
                                    ChatHook.ChatMessage(cInfo, Config.Chat_Response_Color + phrase + "[-]", -1, Config.Server_Response_Name, EChatType.Whisper, null);
                                }
                                if (jailTime == -1)
                                {
                                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] You have put '{0}' named '{1}' in jail forever", cInfo.CrossplatformId.CombinedString, cInfo.playerName));

                                    Phrases.Dict.TryGetValue("Jail1", out string phrase);
                                    ChatHook.ChatMessage(cInfo, Config.Chat_Response_Color + phrase + "[-]", -1, Config.Server_Response_Name, EChatType.Whisper, null);
                                }
                            }
                        }
                        else
                        {
                            if (PersistentContainer.Instance.Players[_params[1]] != null)
                            {
                                if (_params[1].Contains("_"))
                                {
                                    Jail.Jailed.Add(_params[1]);
                                    PersistentContainer.Instance.Players[_params[1]].JailTime = jailTime;
                                    PersistentContainer.Instance.Players[_params[1]].JailName = cInfo.playerName;
                                    PersistentContainer.Instance.Players[_params[1]].JailDate = DateTime.Now;
                                    PersistentContainer.DataChange = true;
                                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Player with Id '{0}' can not be found online but has been set for jail", _params[1]));

                                    return;
                                }
                                else
                                {
                                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid EOS Id '{0}' ", _params[1]));

                                    return;
                                }
                            }
                        }
                    }
                }
                else if (_params[0].ToLower().Equals("remove"))
                {
                    if (_params.Count != 2)
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 2, found '{0}'", _params.Count));

                        return;
                    }
                    else
                    {
                        if (!Jail.Jailed.Contains(_params[1]))
                        {
                            SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Player with Id '{0}' is not in jail", _params[1]));

                            return;
                        }
                        else
                        {
                            ClientInfo cInfo = PersistentOperations.GetClientInfoFromNameOrId(_params[1]);
                            if (cInfo != null)
                            {
                                EntityPlayer player = PersistentOperations.GetEntityPlayer(cInfo.entityId);
                                if (player != null)
                                {
                                    EntityBedrollPositionList position = player.SpawnPoints;
                                    Jail.Jailed.Remove(cInfo.CrossplatformId.CombinedString);
                                    PersistentContainer.Instance.Players[cInfo.CrossplatformId.CombinedString].JailTime = 0;
                                    PersistentContainer.DataChange = true;
                                    if (position != null && position.Count > 0)
                                    {
                                        cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(position[0].x, -1, position[0].z), null, false));
                                    }
                                    else
                                    {
                                        Vector3[] pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                                        cInfo.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(pos[0].x, -1, pos[0].z), null, false));
                                    }
                                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] You have released Id '{0}' from jail", _params[1]));

                                    return;
                                }
                            }
                            else
                            {
                                if (PersistentContainer.Instance.Players[_params[1]] != null)
                                {
                                    if (_params[1].Contains("_"))
                                    {
                                        Jail.Jailed.Remove(_params[1]);
                                        PersistentContainer.Instance.Players[_params[1]].JailTime = 0;
                                        PersistentContainer.DataChange = true;
                                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Player with Id '{0}' can not be found online but has been set for jail", _params[1]));

                                        return;
                                    }
                                    else
                                    {
                                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid EOS Id '{0}' ", _params[1]));

                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
                else if (_params[0].ToLower().Equals("list"))
                {
                    if (_params.Count != 1)
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 1, found '{0}'", _params.Count));

                        return;
                    }
                    if (Jail.Jailed.Count == 0)
                    {
                        SingletonMonoBehaviour <SdtdConsole> .Instance.Output("[SERVERTOOLS] There are no Id on the jail list");

                        return;
                    }
                    else
                    {
                        for (int i = 0; i < Jail.Jailed.Count; i++)
                        {
                            string id       = Jail.Jailed[i];
                            int    jailTime = PersistentContainer.Instance.Players[id].JailTime;
                            string jailName = PersistentContainer.Instance.Players[id].JailName;
                            if (jailTime > 0)
                            {
                                DateTime jailDate          = PersistentContainer.Instance.Players[id].JailDate;
                                TimeSpan varTime           = DateTime.Now - jailDate;
                                double   fractionalMinutes = varTime.TotalMinutes;
                                int      timepassed        = (int)fractionalMinutes;
                                int      timeleft          = jailTime - timepassed;
                                SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Id '{0}' named '{1}' is jailed for {2} more minutes", id, jailName, timeleft));
                            }
                            else if (jailTime == -1)
                            {
                                SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Id '{0}' named '{1}' is jailed forever", id, jailName));
                            }
                        }
                    }
                }
                else
                {
                    SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid argument '{0}'", _params[0]));
                }
            }
            catch (Exception e)
            {
                Log.Out(string.Format("[SERVERTOOLS] Error in CommandJailConsole.Execute: {0}", e.Message));
            }
        }
Beispiel #14
0
 public static void RemoveFromJail(ClientInfo _cInfo, string _playerName)
 {
     string[] _command3 = { Command28 };
     if (!GameManager.Instance.adminTools.CommandAllowedFor(_command3, _cInfo.playerId))
     {
         string _phrase107;
         if (!Phrases.Dict.TryGetValue(107, out _phrase107))
         {
             _phrase107 = " you do not have permissions to use this command.";
         }
         ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase107 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
     }
     else
     {
         _playerName = _playerName.Replace("unjail ", "");
         ClientInfo _PlayertoUnJail = ConsoleHelper.ParseParamIdOrName(_playerName);
         if (_PlayertoUnJail == null)
         {
             string _phrase201;
             if (!Phrases.Dict.TryGetValue(201, out _phrase201))
             {
                 _phrase201 = " player {PlayerName} was not found online.";
             }
             _phrase201 = _phrase201.Replace("{PlayerName}", _playerName);
             ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase201 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
         }
         else
         {
             int _jailTime = PersistentContainer.Instance.Players[_PlayertoUnJail.playerId].JailTime;
             if (_jailTime == 0)
             {
                 string _phrase506;
                 if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                 {
                     _phrase506 = " player {PlayerName} is not in jail.";
                 }
                 _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                 ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase506 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
             }
             else
             {
                 if (!Jailed.Contains(_PlayertoUnJail.playerId))
                 {
                     string _phrase506;
                     if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                     {
                         _phrase506 = " player {PlayerName} is not in jail.";
                     }
                     _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                     ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase506 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
                 else
                 {
                     Jailed.Remove(_PlayertoUnJail.playerId);
                     PersistentContainer.Instance.Players[_PlayertoUnJail.playerId].JailTime = 0;
                     PersistentContainer.Instance.Save();
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_PlayertoUnJail.entityId];
                     EntityBedrollPositionList _position = _player.SpawnPoints;
                     if (_position.Count > 0)
                     {
                         _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                     }
                     else
                     {
                         Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                         _PlayertoUnJail.SendPackage(NetPackageManager.GetPackage <NetPackageTeleportPlayer>().Setup(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                     }
                     string _phrase501;
                     if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                     {
                         _phrase501 = " you have been released from jail.";
                     }
                     ChatHook.ChatMessage(_PlayertoUnJail, LoadConfig.Chat_Response_Color + _PlayertoUnJail.playerName + LoadConfig.Chat_Response_Color + _phrase501 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
             }
         }
     }
 }
Beispiel #15
0
 public static void RemoveFromJail(ClientInfo _cInfo, string _playerName)
 {
     if (!GameManager.Instance.adminTools.CommandAllowedFor(_cmd, _cInfo.playerId))
     {
         string _phrase200;
         if (!Phrases.Dict.TryGetValue(200, out _phrase200))
         {
             _phrase200 = "{AdminPlayerName} you do not have permissions to use this command.";
         }
         _phrase200 = _phrase200.Replace("{AdminPlayerName}", _cInfo.playerName);
         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase200), Config.Server_Response_Name, false, "ServerTools", false));
     }
     else
     {
         _playerName = _playerName.Replace("unjail ", "");
         ClientInfo _PlayertoUnJail = ConsoleHelper.ParseParamIdOrName(_playerName);
         if (_PlayertoUnJail == null)
         {
             string _phrase201;
             if (!Phrases.Dict.TryGetValue(201, out _phrase201))
             {
                 _phrase201 = "{AdminPlayerName} player {PlayerName} was not found online.";
             }
             _phrase201 = _phrase201.Replace("{AdminPlayerName}", _cInfo.playerName);
             _phrase201 = _phrase201.Replace("{PlayerName}", _playerName);
             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase201, Config.Chat_Response_Color), Config.Server_Response_Name, false, "ServerTools", false));
         }
         else
         {
             Player p = PersistentContainer.Instance.Players[_PlayertoUnJail.playerId, false];
             if (p == null)
             {
                 string _phrase506;
                 if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                 {
                     _phrase506 = "{AdminPlayerName} player {PlayerName} is not in jail.";
                 }
                 _phrase506 = _phrase506.Replace("{AdminPlayerName}", _cInfo.playerName);
                 _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                 _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase506, Config.Chat_Response_Color), Config.Server_Response_Name, false, "ServerTools", false));
             }
             else
             {
                 if (!Jailed.Contains(_PlayertoUnJail.playerId))
                 {
                     string _phrase506;
                     if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                     {
                         _phrase506 = "{AdminPlayerName} player {PlayerName} is not in jail.";
                     }
                     _phrase506 = _phrase506.Replace("{AdminPlayerName}", _cInfo.playerName);
                     _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                     _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase506, Config.Chat_Response_Color), Config.Server_Response_Name, false, "ServerTools", false));
                 }
                 else
                 {
                     Jailed.Remove(_PlayertoUnJail.playerId);
                     Players.NoFlight.Add(_PlayertoUnJail.entityId);
                     PersistentContainer.Instance.Players[_PlayertoUnJail.playerId, true].JailTime = 0;
                     PersistentContainer.Instance.Save();
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_PlayertoUnJail.entityId];
                     EntityBedrollPositionList _position = _player.SpawnPoints;
                     if (_position.Count > 0)
                     {
                         _PlayertoUnJail.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), false));
                     }
                     else
                     {
                         Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                         _PlayertoUnJail.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), false));
                     }
                     string _phrase501;
                     if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                     {
                         _phrase501 = "{PlayerName} you have been released from jail.";
                     }
                     _phrase501 = _phrase501.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                     _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase501, Config.Chat_Response_Color), Config.Server_Response_Name, false, "ServerTools", false));
                 }
             }
         }
     }
 }
Beispiel #16
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 4)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 to 4, found {0}.", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("add"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 2, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add SteamId: Invalid SteamId {0}.", _params[1]));
                 return;
             }
             if (Jail.JailPosition == "0,0,0")
             {
                 SdtdConsole.Instance.Output(string.Format("Can not put player in jail: Jail position has not been set."));
                 return;
             }
             else
             {
                 Player p = PersistentContainer.Instance.Players[_params[1], false];
                 if (p != null)
                 {
                     if (p.IsJailed)
                     {
                         SdtdConsole.Instance.Output(string.Format("SteamId {0} is already in jail. ", _params[1]));
                         return;
                     }
                 }
                 PersistentContainer.Instance.Players[_params[1], true].IsJailed          = true;
                 PersistentContainer.Instance.Players[_params[1], true].IsRemovedFromJail = false;
                 PersistentContainer.Instance.Save();
                 if (ConnectionManager.Instance.ClientCount() > 0)
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.GetClientInfoForPlayerId(_params[1]);
                     if (_cInfo != null)
                     {
                         float    xf;
                         float    yf;
                         float    zf;
                         string[] _cords = Jail.JailPosition.Split(',');
                         float.TryParse(_cords[0], out xf);
                         float.TryParse(_cords[1], out yf);
                         float.TryParse(_cords[2], out zf);
                         int x = (int)xf;
                         int y = (int)yf;
                         int z = (int)zf;
                         SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _cInfo.entityId, x, y, z), _cInfo);
                         if (!Jail.Dict.ContainsKey(_cInfo.playerId))
                         {
                             Jail.Dict.Add(_cInfo.playerId, null);
                         }
                         string _phrase500;
                         if (!Phrases.Dict.TryGetValue(500, out _phrase500))
                         {
                             _phrase500 = "{PlayerName} you have been sent to jail.";
                         }
                         _phrase500 = _phrase500.Replace("{PlayerName}", _cInfo.playerName);
                         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", CustomCommands.ChatColor, _phrase500), "Server", false, "", false));
                     }
                 }
                 SdtdConsole.Instance.Output(string.Format("You have put {0} in jail. ", _params[1]));
             }
         }
         else if (_params[0].ToLower().Equals("remove"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 2, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not remove SteamId: Invalid SteamId {0}.", _params[1]));
                 return;
             }
             else
             {
                 Player p = PersistentContainer.Instance.Players[_params[1], false];
                 if (p == null)
                 {
                     SdtdConsole.Instance.Output(string.Format("SteamId {0} is not in jail. ", _params[1]));
                     return;
                 }
                 if (!p.IsJailed)
                 {
                     SdtdConsole.Instance.Output(string.Format("SteamId {0} is not in jail. ", _params[1]));
                     return;
                 }
                 PersistentContainer.Instance.Players[_params[1], false].IsJailed = false;
                 if (ConnectionManager.Instance.ClientCount() > 0)
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.GetClientInfoForPlayerId(_params[1]);
                     if (_cInfo != null)
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         EntityBedrollPositionList _position = _player.SpawnPoints;
                         if (Jail.Dict.ContainsKey(_cInfo.playerId))
                         {
                             Jail.Dict.Remove(_cInfo.playerId);
                         }
                         if (_position.Count > 0)
                         {
                             SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _cInfo.entityId, _position[0].x, _position[0].y, _position[0].z), _cInfo);
                         }
                         else
                         {
                             Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _cInfo.entityId, _pos[0].x, _pos[0].y, _pos[0].z), _cInfo);
                         }
                         string _phrase501;
                         if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                         {
                             _phrase501 = "{PlayerName} you have been released from jail.";
                         }
                         _phrase501 = _phrase501.Replace("{PlayerName}", _cInfo.playerName);
                         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", CustomCommands.ChatColor, _phrase501), "Server", false, "", false));
                         PersistentContainer.Instance.Players[_params[1], false].IsRemovedFromJail = true;
                     }
                 }
                 PersistentContainer.Instance.Save();
                 SdtdConsole.Instance.Output(string.Format("You have released {0} from jail. ", _params[1]));
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}.", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in CommandJail.Run: {0}.", e));
     }
 }
Beispiel #17
0
 public static void RemoveFromJail(ClientInfo _cInfo, string _playerName)
 {
     if (!GameManager.Instance.adminTools.CommandAllowedFor(_cmd, _cInfo.playerId))
     {
         string _phrase107;
         if (!Phrases.Dict.TryGetValue(107, out _phrase107))
         {
             _phrase107 = " you do not have permissions to use this command.";
         }
         ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase107 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
     }
     else
     {
         _playerName = _playerName.Replace("unjail ", "");
         ClientInfo _PlayertoUnJail = ConsoleHelper.ParseParamIdOrName(_playerName);
         if (_PlayertoUnJail == null)
         {
             string _phrase201;
             if (!Phrases.Dict.TryGetValue(201, out _phrase201))
             {
                 _phrase201 = " player {PlayerName} was not found online.";
             }
             _phrase201 = _phrase201.Replace("{PlayerName}", _playerName);
             ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase201 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
         }
         else
         {
             string    _sql    = string.Format("SELECT jailTime FROM Players WHERE steamid = '{0}'", _PlayertoUnJail.playerId);
             DataTable _result = SQL.TQuery(_sql);
             int       _jailTime;
             int.TryParse(_result.Rows[0].ItemArray.GetValue(0).ToString(), out _jailTime);
             _result.Dispose();
             if (_jailTime == 0)
             {
                 string _phrase506;
                 if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                 {
                     _phrase506 = " player {PlayerName} is not in jail.";
                 }
                 _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                 ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase506 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
             }
             else
             {
                 if (!Jailed.Contains(_PlayertoUnJail.playerId))
                 {
                     string _phrase506;
                     if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                     {
                         _phrase506 = " player {PlayerName} is not in jail.";
                     }
                     _phrase506 = _phrase506.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                     ChatHook.ChatMessage(_cInfo, ChatHook.Player_Name_Color + _cInfo.playerName + LoadConfig.Chat_Response_Color + _phrase506 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
                 else
                 {
                     Jailed.Remove(_PlayertoUnJail.playerId);
                     Players.NoFlight.Add(_PlayertoUnJail.entityId);
                     _sql = string.Format("UPDATE Players SET jailTime = 0 WHERE steamid = '{0}'", _PlayertoUnJail.playerId);
                     SQL.FastQuery(_sql);
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_PlayertoUnJail.entityId];
                     EntityBedrollPositionList _position = _player.SpawnPoints;
                     if (_position.Count > 0)
                     {
                         _PlayertoUnJail.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, _position[0].y + 1, _position[0].z), null, false));
                     }
                     else
                     {
                         Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                         _PlayertoUnJail.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, _pos[0].y + 1, _pos[0].z), null, false));
                     }
                     string _phrase501;
                     if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                     {
                         _phrase501 = " you have been released from jail.";
                     }
                     ChatHook.ChatMessage(_PlayertoUnJail, LoadConfig.Chat_Response_Color + _PlayertoUnJail.playerName + LoadConfig.Chat_Response_Color + _phrase501 + "[-]", _cInfo.entityId, LoadConfig.Server_Response_Name, EChatType.Whisper, null);
                 }
             }
         }
     }
 }
Beispiel #18
0
 public override void Execute(List <string> _params, CommandSenderInfo _senderInfo)
 {
     try
     {
         if (_params.Count < 1 || _params.Count > 3)
         {
             SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1 to 3, found {0}.", _params.Count));
             return;
         }
         if (_params[0].ToLower().Equals("add"))
         {
             if (_params.Count != 3)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 3, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length < 1 || _params[1].Length > 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add Id: Invalid Id {0}.", _params[1]));
                 return;
             }
             if (Jail.Jailed.Contains(_params[1]))
             {
                 SdtdConsole.Instance.Output(string.Format("Can not add Id. {0} is already in the Jail list.", _params[1]));
                 return;
             }
             int _jailTime;
             if (!int.TryParse(_params[2], out _jailTime))
             {
                 SdtdConsole.Instance.Output(string.Format("Jail time is not valid: {0}", _params[2]));
                 return;
             }
             if (Jail.Jail_Position == "0,0,0")
             {
                 SdtdConsole.Instance.Output(string.Format("Can not put a player in jail: Jail position has not been set."));
                 return;
             }
             else
             {
                 ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[1]);
                 if (_cInfo != null)
                 {
                     if (Jail.Jailed.Contains(_cInfo.playerId))
                     {
                         SdtdConsole.Instance.Output(string.Format("Player with Id {0} is already in jail.", _params[1]));
                         return;
                     }
                     else
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         if (_player.IsSpawned())
                         {
                             int      x, y, z;
                             string[] _cords = Jail.Jail_Position.Split(',');
                             int.TryParse(_cords[0], out x);
                             int.TryParse(_cords[1], out y);
                             int.TryParse(_cords[2], out z);
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(x, y, z), false));
                         }
                         Jail.Jailed.Add(_cInfo.playerId);
                         if (_jailTime >= 0)
                         {
                             string _phrase500;
                             if (!Phrases.Dict.TryGetValue(500, out _phrase500))
                             {
                                 _phrase500 = "{PlayerName} you have been sent to jail.";
                             }
                             _phrase500 = _phrase500.Replace("{PlayerName}", _cInfo.playerName);
                             _phrase500 = _phrase500.Replace("{Minutes}", _jailTime.ToString());
                             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase500), Config.Server_Response_Name, false, "ServerTools", false));
                             SdtdConsole.Instance.Output(string.Format("You have put {0} in jail for {1} minutes.", _cInfo.playerName, _jailTime));
                         }
                         if (_jailTime == -1)
                         {
                             string _phrase500;
                             if (!Phrases.Dict.TryGetValue(500, out _phrase500))
                             {
                                 _phrase500 = "{PlayerName} you have been sent to jail.";
                             }
                             _phrase500 = _phrase500.Replace("{PlayerName}", _cInfo.playerName);
                             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase500), Config.Server_Response_Name, false, "ServerTools", false));
                             SdtdConsole.Instance.Output(string.Format("You have put {0} in jail for life.", _cInfo.playerName));
                         }
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailDate = DateTime.Now;
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailTime = _jailTime;
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailName = _cInfo.playerName;
                         PersistentContainer.Instance.Save();
                     }
                 }
                 else
                 {
                     PersistentContainer.Instance.Players[_params[1], true].JailDate = DateTime.Now;
                     PersistentContainer.Instance.Players[_params[1], true].JailTime = _jailTime;
                     PersistentContainer.Instance.Players[_params[1], true].JailName = "Offline, name unknown";
                     PersistentContainer.Instance.Save();
                     SdtdConsole.Instance.Output(string.Format("Player with Id {0} can not be found online but has been set for jail.", _params[1]));
                     return;
                 }
             }
         }
         else if (_params[0].ToLower().Equals("remove"))
         {
             if (_params.Count != 2)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 2, found {0}.", _params.Count));
                 return;
             }
             if (_params[1].Length != 17)
             {
                 SdtdConsole.Instance.Output(string.Format("Can not remove player Id: Invalid steam Id {0}.", _params[1]));
                 return;
             }
             else
             {
                 if (!Jail.Jailed.Contains(_params[1]))
                 {
                     SdtdConsole.Instance.Output(string.Format("Player with steam Id {0} is not in jail. ", _params[1]));
                     return;
                 }
                 else
                 {
                     ClientInfo _cInfo = ConnectionManager.Instance.GetClientInfoForPlayerId(_params[1]);
                     if (_cInfo != null)
                     {
                         EntityPlayer _player = GameManager.Instance.World.Players.dict[_cInfo.entityId];
                         EntityBedrollPositionList _position = _player.SpawnPoints;
                         Jail.Jailed.Remove(_cInfo.playerId);
                         if (_position.Count > 0)
                         {
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_position[0].x, -1, _position[0].z), false));
                         }
                         else
                         {
                             Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                             _cInfo.SendPackage(new NetPackageTeleportPlayer(new Vector3(_pos[0].x, -1, _pos[0].z), false));
                         }
                         string _phrase501;
                         if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                         {
                             _phrase501 = "{PlayerName} you have been released from jail.";
                         }
                         _phrase501 = _phrase501.Replace("{PlayerName}", _cInfo.playerName);
                         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", Config.Chat_Response_Color, _phrase501), Config.Server_Response_Name, false, "ServerTools", false));
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailTime = 0;
                         PersistentContainer.Instance.Save();
                         SdtdConsole.Instance.Output(string.Format("You have released a player with steam id {0} from jail. ", _params[1]));
                         return;
                     }
                     else
                     {
                         PersistentContainer.Instance.Players[_cInfo.playerId, true].JailTime = 0;
                         PersistentContainer.Instance.Save();
                         Jail.Jailed.Remove(_cInfo.playerId);
                         SdtdConsole.Instance.Output(string.Format("Player with steam Id {0} has been removed from the jail list.", _params[1]));
                         return;
                     }
                 }
             }
         }
         else if (_params[0].ToLower().Equals("list"))
         {
             if (_params.Count != 1)
             {
                 SdtdConsole.Instance.Output(string.Format("Wrong number of arguments, expected 1, found {0}.", _params.Count));
                 return;
             }
             if (Jail.Jailed.Count == 0)
             {
                 SdtdConsole.Instance.Output("There are no Ids on the Jail list.");
                 return;
             }
             else
             {
                 for (int i = 0; i < Jail.Jailed.Count; i++)
                 {
                     string _id = Jail.Jailed[i];
                     Player p   = PersistentContainer.Instance.Players[_id, false];
                     {
                         if (p.JailTime > 0)
                         {
                             TimeSpan varTime           = DateTime.Now - p.JailDate;
                             double   fractionalMinutes = varTime.TotalMinutes;
                             int      _timepassed       = (int)fractionalMinutes;
                             int      _timeleft         = p.JailTime - _timepassed;
                             SdtdConsole.Instance.Output(string.Format("Jailed player: steam Id {0} named {1} for {2} more minutes.", _id, p.JailName, _timeleft));
                         }
                         else
                         {
                             SdtdConsole.Instance.Output(string.Format("Jailed player: steam Id {0} named {1} forever.", _id, p.JailName));
                         }
                     }
                 }
             }
         }
         else
         {
             SdtdConsole.Instance.Output(string.Format("Invalid argument {0}.", _params[0]));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in CommandJail.Run: {0}.", e));
     }
 }
Beispiel #19
0
 public static void RemoveFromJail(ClientInfo _cInfo, string _playerName)
 {
     if (!GameManager.Instance.adminTools.CommandAllowedFor(_cmd, _cInfo.playerId))
     {
         string _phrase200;
         if (!Phrases.Dict.TryGetValue(200, out _phrase200))
         {
             _phrase200 = "{PlayerName} you do not have permissions to use this command.";
         }
         _phrase200 = _phrase200.Replace("{PlayerName}", _cInfo.playerName);
         _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", CustomCommands.ChatColor, _phrase200), "Server", false, "", false));
     }
     else
     {
         _playerName = _playerName.Replace("unjail ", "");
         ClientInfo _PlayertoUnJail = ConsoleHelper.ParseParamIdOrName(_playerName);
         if (_PlayertoUnJail == null)
         {
             string _phrase201;
             if (!Phrases.Dict.TryGetValue(201, out _phrase201))
             {
                 _phrase201 = "{AdminPlayerName} player {PlayerName} was not found.";
             }
             _phrase201 = _phrase201.Replace("{AdminPlayerName}", _cInfo.playerName);
             _phrase201 = _phrase201.Replace("{PlayerName}", _playerName);
             _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase201, CustomCommands.ChatColor), "Server", false, "", false));
         }
         else
         {
             Player p = PersistentContainer.Instance.Players[_PlayertoUnJail.playerId, false];
             if (p == null)
             {
                 string _phrase506;
                 if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                 {
                     _phrase506 = "{AdminPlayerName} player {PlayerName} is not in jail.";
                 }
                 _phrase506 = _phrase506.Replace("{AdminPlayerName}", _cInfo.playerName);
                 _phrase506 = _phrase506.Replace("{PlayerName}", _playerName);
                 _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase506, CustomCommands.ChatColor), "Server", false, "", false));
             }
             else
             {
                 if (!p.IsJailed)
                 {
                     string _phrase506;
                     if (!Phrases.Dict.TryGetValue(506, out _phrase506))
                     {
                         _phrase506 = "{AdminPlayerName} player {PlayerName} is not in jail.";
                     }
                     _phrase506 = _phrase506.Replace("{AdminPlayerName}", _cInfo.playerName);
                     _phrase506 = _phrase506.Replace("{PlayerName}", _playerName);
                     _cInfo.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{1}{0}[-]", _phrase506, CustomCommands.ChatColor), "Server", false, "", false));
                 }
                 else
                 {
                     if (Dict.ContainsKey(_PlayertoUnJail.playerId))
                     {
                         Dict.Remove(_PlayertoUnJail.playerId);
                     }
                     PersistentContainer.Instance.Players[_PlayertoUnJail.playerId, false].IsJailed          = false;
                     PersistentContainer.Instance.Players[_PlayertoUnJail.playerId, false].IsRemovedFromJail = true;
                     PersistentContainer.Instance.Save();
                     EntityPlayer _player = GameManager.Instance.World.Players.dict[_PlayertoUnJail.entityId];
                     EntityBedrollPositionList _position = _player.SpawnPoints;
                     if (_position.Count > 0)
                     {
                         SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _PlayertoUnJail.entityId, _position[0].x, _position[0].y, _position[0].z), _cInfo);
                     }
                     else
                     {
                         Vector3[] _pos = GameManager.Instance.World.GetRandomSpawnPointPositions(1);
                         SdtdConsole.Instance.ExecuteSync(string.Format("tele {0} {1} {2} {3}", _PlayertoUnJail.entityId, _pos[0].x, _pos[0].y, _pos[0].z), _cInfo);
                     }
                     string _phrase501;
                     if (!Phrases.Dict.TryGetValue(501, out _phrase501))
                     {
                         _phrase501 = "{PlayerName} you have been released from jail.";
                     }
                     _phrase501 = _phrase501.Replace("{PlayerName}", _PlayertoUnJail.playerName);
                     _PlayertoUnJail.SendPackage(new NetPackageGameMessage(EnumGameMessages.Chat, string.Format("{0}{1}[-]", CustomCommands.ChatColor, _phrase501), "Server", false, "", false));
                 }
             }
         }
     }
 }