object CanBeTargeted(BasePlayer player, BaseCombatEntity entity) { if (permission.UserHasPermission(player.UserIDString, turretsIgnore)) { return(false); } else if (permission.UserHasPermission(player.UserIDString, turretsNeverIgnore)) { return(null); } if (entity is NPCAutoTurret && _config.NPCTurretsAffected) { BuildingPrivlidge priviledge = entity.GetBuildingPrivilege(); if (priviledge != null && !priviledge.IsAuthed(player) && player.IsBuildingBlocked() && player.IsVisible(new Vector3(entity.transform.position.x, entity.transform.position.y + 0.8f, entity.transform.position.z), new Vector3(player.transform.position.x, player.transform.position.y + 1.5f, player.transform.position.z))) { return(null); } else { return(false); } } if ((entity is AutoTurret && !(entity is NPCAutoTurret) && _config.autoturretsAffected)) { AutoTurret turret = entity as AutoTurret; BuildingPrivlidge priviledge = turret.GetBuildingPrivilege(); if (priviledge != null && !priviledge.IsAuthed(player) && player.IsBuildingBlocked() && player.IsVisible(new Vector3(turret.transform.position.x, turret.transform.position.y + 0.8f, turret.transform.position.z), new Vector3(player.transform.position.x, player.transform.position.y + 1.5f, player.transform.position.z))) { if (_config.autoturretsShootAuthed && turret.IsAuthed(player)) { turret.SetTarget(player); return(null); } else if (!turret.IsAuthed(player)) { return(null); } } return(false); } if ((entity is FlameTurret && _config.flameTrapsAffected) || (entity is GunTrap && _config.shotgunTrapsAffected) && !player.IsBuildingBlocked() || !player.IsVisible(entity.transform.position, player.transform.position, Mathf.Infinity)) { return(false); } return(null); }
void OnTurretAuthorize(AutoTurret turret, BasePlayer player) { if (turret.IsAuthed(player)) { return; } var nameListLink = new List <string>(); var nameList = new List <string>(); var statusList = new List <string>(); var idList = new List <ulong>(); var positionList = new List <string>(); if (turret.authorizedPlayers.Count + 1 > configData.MaxAuth) { Puts(turret.authorizedPlayers[0].username); foreach (var authed in turret.authorizedPlayers) { nameListLink.Add($"[{authed.username}](https://steamcommunity.com/profiles/{authed.userid})"); nameList.Add(authed.username); idList.Add(authed.userid); var authedPlayer = BasePlayer.FindAwakeOrSleeping(authed.ToString()); if (authedPlayer == null || authedPlayer.IsConnected == false) { statusList.Add("Offline"); } else if (authedPlayer.IsConnected) { statusList.Add("Online"); } } positionList.Add($"Teleportpos ({turret.transform.position.x.ToString().Substring(0, 5)},{turret.transform.position.y.ToString().Substring(0, 5)},{turret.transform.position.z.ToString().Substring(0, 5)})"); nameList.Add(player.displayName); nameListLink.Add($"[{player.displayName}](https://steamcommunity.com/profiles/{player.userID})"); idList.Add(player.userID); if (player.IsConnected) { statusList.Add("Online"); } if (configData.IngameNotificationEnable) { NotifyAdminsIngame(positionList, nameList, statusList, idList); } if (configData.DiscordWebhookEnable && configData.DiscordWebhook != "" && configData.DiscordWebhook != null) { SendDiscordMessage(nameListLink, idList, positionList, statusList); } } }
private bool AddToWhiteList(AutoTurret at, BasePlayer player) { if (at.IsAuthed(player)) { return(false); } var protobufPlayer = new ProtoBuf.PlayerNameID(); protobufPlayer.userid = player.userID; protobufPlayer.username = player.name; at.authorizedPlayers.Add(protobufPlayer); at.SendNetworkUpdate(); at.SetTarget(null); return(true); }
private object OnTurretTarget(AutoTurret turret, BaseCombatEntity targ) { if (!configData.ShareAutoTurrets || !(targ is BasePlayer) || turret.OwnerID <= 0) { return(null); } var player = (BasePlayer)targ; if (turret.IsAuthed(player) || !HasFriend(turret.OwnerID, player.userID)) { return(null); } turret.authorizedPlayers.Add(new PlayerNameID { userid = player.userID, username = player.displayName }); return(false); }
private object OnTurretTarget(AutoTurret turret, BaseCombatEntity target) { if (!(target is BasePlayer) || turret.OwnerID <= 0) { return(null); } BasePlayer player = (BasePlayer)target; if (turret.IsAuthed(player) || !HasFriend(turret.OwnerID, player.userID)) { return(null); } turret.authorizedPlayers.Add(new ProtoBuf.PlayerNameID { userid = player.userID, username = player.displayName, }); return(false); }
public void ToggleTurret(AutoTurret turret, BasePlayer player = null) { if (turret == null) { return; } if (player != null && (!turret.IsAuthed(player) || turret.GetBuildingPrivilege()?.IsAuthed(player) == false)) { player.ChatMessage(_instance.Lang("NoPermThisTurret", player.UserIDString)); return; } if (turret.IsOnline()) { PowerTurretOff(turret); } else { PowerTurretOn(turret); } }
private bool RemoveFromWhiteList(AutoTurret at, BasePlayer player) { if (!at.IsAuthed(player)) { return(false); } int i = 0; foreach (var authedPlayer in at.authorizedPlayers) { if (authedPlayer.userid == player.userID) { at.authorizedPlayers.RemoveAt(i); at.SendNetworkUpdate(); at.SetTarget(null); return(true); } i++; } return(false); }
public void ToggleTurret(AutoTurret turret, BasePlayer player = null) { if (turret == null) { return; } if (player != null) { if (!turret.IsAuthed(player)) { player.ChatMessage(Instance.Lang("NoPermThisTurret", player.UserIDString)); return; } } // Turn turret on if off, off if on, make sure data is right if (turret.IsOnline()) { PowerTurretOff(turret); } else { PowerTurretOn(turret); } }
public override bool IsAuthorized(BasePlayer player) { return(Turret.IsAuthed(player)); }
public void TurretInput(InputState input, BasePlayer player) { if (input == null || player == null) { return; } BUTTON.TryParse(Button, out PowerButton); if (input.WasJustPressed(PowerButton)) { bool hasPermission = permission.UserHasPermission(player.UserIDString, perms); if (!hasPermission) { player.ChatMessage(msg("NoPermissions", player.UserIDString)); return; } RaycastHit hit; if (Physics.SphereCast(player.eyes.position, 0.5f, Quaternion.Euler(player.serverInput.current.aimAngles) * Vector3.forward, out hit)) { AutoTurret autoturret = hit.GetEntity()?.GetComponent <AutoTurret>(); SamSite samsite = hit.GetEntity()?.GetComponent <SamSite>(); if (autoturret != null) { if (hit.distance >= 1.5) { return; } if (!autoturret.IsAuthed(player)) { player.ChatMessage(msg("NotAuthed", player.UserIDString)); return; } if (!IsAuthed(player, autoturret)) { player.ChatMessage(msg("NoBuildPrivilege", player.UserIDString)); return; } if (autoturret.IsOnline()) { autoturret.SetIsOnline(false); PoweredTurrets.Remove(autoturret.net.ID); } else { autoturret.SetIsOnline(true); PoweredTurrets.Add(autoturret.net.ID); } autoturret.SendNetworkUpdateImmediate(); } if (samsite != null) { if (hit.distance >= 1.5) { return; } if (!IsAuthed(player, samsite)) { player.ChatMessage(msg("NoBuildPrivilege", player.UserIDString)); return; } if (samsite.IsPowered()) { samsite.UpdateHasPower(0, 1); PoweredSams.Remove(samsite.net.ID); } else { samsite.UpdateHasPower(25, 1); PoweredSams.Add(samsite.net.ID); } samsite.SendNetworkUpdateImmediate(); } } } }