public override void Execute(List <string> _params, CommandSenderInfo _senderInfo) { try { if (_params.Count < 3 || _params.Count > 4) { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 3 or 4, found {0}", _params.Count)); return; } if (_params.Count == 3) { ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[0]); if (_cInfo != null) { PersistentPlayerData _persistentPlayerData = GameManager.Instance.GetPersistentPlayerList().GetPlayerDataFromEntityID(_cInfo.entityId); if (_persistentPlayerData != null) { List <Vector3i> _claimBlockList = _persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; _persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} {2}", _cInfo.playerId, _params[1], _params[2]), (ClientInfo)null); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Id {0} has been banned. Their claims have been removed.", _params[0])); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. The player data for id can not be found.", _params[0])); return; } } else if (_params[0].Length == 17) { PersistentPlayerData _persistentPlayerData = GameManager.Instance.GetPersistentPlayerList().GetPlayerData(_params[0]); if (_persistentPlayerData != null) { List <Vector3i> _claimBlockList = _persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; _persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} {2}", _cInfo.playerId, _params[1], _params[2]), (ClientInfo)null); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Id {0} has been banned. Their claims have been removed.", _params[0])); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. The player data for id can not be found.", _params[0])); return; } } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. If the player is offline, use their steam id to ban them", _params[0])); return; } } if (_params.Count == 4) { ClientInfo _cInfo = ConsoleHelper.ParseParamIdOrName(_params[0]); if (_cInfo != null) { PersistentPlayerData _persistentPlayerData = GameManager.Instance.GetPersistentPlayerList().GetPlayerDataFromEntityID(_cInfo.entityId); if (_persistentPlayerData != null) { List <Vector3i> _claimBlockList = _persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; _persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} {2} {3}", _cInfo.playerId, _params[1], _params[2], _params[3]), (ClientInfo)null); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Id {0} has been banned. Their claims have been removed.", _params[0])); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. The player data for id can not be found.", _params[0])); return; } } else if (_params[0].Length == 17) { PersistentPlayerData _persistentPlayerData = GameManager.Instance.GetPersistentPlayerList().GetPlayerData(_params[0]); if (_persistentPlayerData != null) { List <Vector3i> _claimBlockList = _persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; _persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SdtdConsole.Instance.ExecuteSync(string.Format("ban add {0} {1} {2} {3}", _cInfo.playerId, _params[1], _params[2], _params[3]), (ClientInfo)null); SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Id {0} has been banned. Their claims have been removed.", _params[0])); return; } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. The player data for id can not be found.", _params[0])); return; } } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. If the player is offline, use their steam id to ban them", _params[0])); return; } } else { SdtdConsole.Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0])); } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in BanPlayer.Execute: {0}", e.Message)); } }
public override void Execute(List <string> _params, CommandSenderInfo _senderInfo) { try { if (_params.Count < 3 || _params.Count > 4) { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Wrong number of arguments, expected 3 or 4, found {0}", _params.Count)); return; } if (_params.Count == 3) { ClientInfo cInfo = PersistentOperations.GetClientInfoFromNameOrId(_params[0]); if (cInfo != null) { PersistentPlayerData persistentPlayerData = PersistentOperations.GetPersistentPlayerDataFromEntityId(cInfo.entityId); if (persistentPlayerData != null) { List <Vector3i> claimBlockList = persistentPlayerData.GetLandProtectionBlocks(); if (claimBlockList != null) { for (int i = 0; i < claimBlockList.Count; i++) { Vector3i claimLocation = claimBlockList[i]; persistentPlayerData.RemoveLandProtectionBlock(claimLocation); } } SingletonMonoBehaviour <SdtdConsole> .Instance.ExecuteSync(string.Format("ban add {0} {1} {2}", cInfo.CrossplatformId.CombinedString, _params[1], _params[2]), null); SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Id '{0}' '{1}' has been banned. Their claims have been removed", cInfo.PlatformId.CombinedString, cInfo.CrossplatformId.CombinedString, _params[0])); return; } else { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to ban '{0}'. The player data can not be found", _params[0])); return; } } else { PersistentPlayerData persistentPlayerData = PersistentOperations.GetPersistentPlayerDataFromId(_params[0]); if (persistentPlayerData != null) { List <Vector3i> _claimBlockList = persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SingletonMonoBehaviour <SdtdConsole> .Instance.ExecuteSync(string.Format("ban add {0} {1} {2}", persistentPlayerData.UserIdentifier.CombinedString, _params[1], _params[2]), null); SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] '{0}' has been banned. Their claims have been removed", _params[0])); return; } else { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to ban '{0}'. The player data can not be found", _params[0])); return; } } } if (_params.Count == 4) { ClientInfo cInfo = ConsoleHelper.ParseParamIdOrName(_params[0]); if (cInfo != null) { PersistentPlayerData _persistentPlayerData = GameManager.Instance.GetPersistentPlayerList().GetPlayerDataFromEntityID(cInfo.entityId); if (_persistentPlayerData != null) { List <Vector3i> _claimBlockList = _persistentPlayerData.GetLandProtectionBlocks(); if (_claimBlockList != null) { for (int i = 0; i < _claimBlockList.Count; i++) { Vector3i _claimLocation = _claimBlockList[i]; _persistentPlayerData.RemoveLandProtectionBlock(_claimLocation); } } SingletonMonoBehaviour <SdtdConsole> .Instance.ExecuteSync(string.Format("ban add {0} {1} {2} {3}", cInfo.CrossplatformId.CombinedString, _params[1], _params[2], _params[3]), null); SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Id {0} has been banned. Their claims have been removed", _params[0])); return; } else { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to ban id {0}. The player data for id can not be found", _params[0])); return; } } else { PersistentPlayerData persistentPlayerData = PersistentOperations.GetPersistentPlayerDataFromId(_params[0]); if (persistentPlayerData != null) { List <Vector3i> claimBlockList = persistentPlayerData.GetLandProtectionBlocks(); if (claimBlockList != null) { for (int i = 0; i < claimBlockList.Count; i++) { Vector3i claimLocation = claimBlockList[i]; persistentPlayerData.RemoveLandProtectionBlock(claimLocation); } } SingletonMonoBehaviour <SdtdConsole> .Instance.ExecuteSync(string.Format("ban add {0} {1} {2} {3}", persistentPlayerData.UserIdentifier.CombinedString, _params[1], _params[2], _params[3]), null); SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] '{0}' has been banned. Their claims have been removed", _params[0])); return; } else { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Unable to ban '{0}'. The player data can not be found", _params[0])); return; } } } else { SingletonMonoBehaviour <SdtdConsole> .Instance.Output(string.Format("[SERVERTOOLS] Invalid argument {0}", _params[0])); } } catch (Exception e) { Log.Out(string.Format("[SERVERTOOLS] Error in BanPlayer.Execute: {0}", e.Message)); } }