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); } } } } }
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); } } } } }
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(); } } } } }
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); } } } } }
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)); } }
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)); } }
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); } } } } }
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)); } } } } }
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)); } }
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); } } } } }
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)); } }
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)); } } } } }