using Newtonsoft.Json; using UnityEngine; namespace Oxide.Plugins { [Info("PVETurret", "MikeHawke & The_Kiiiing", "1.0.2")] class PVETurret : RustPlugin { private ConfigData configData; class ConfigData { [JsonProperty(PropertyName = "PVE Turret Active")] public bool tur = false; [JsonProperty(PropertyName = "PVE GunTraps Active")] public bool trap = false; [JsonProperty(PropertyName = "PVE FlameTurret Active")] public bool flameTurret = false; } private bool LoadConfigVariables() { try { configData = Config.ReadObject(); } catch { return false; } SaveConfig(configData); return true; } void Init() { permission.RegisterPermission("PVETurret.admin", this); if (!LoadConfigVariables()) { Puts("Config file issue detected. Please delete file, or check syntax and fix."); return; } } protected override void LoadDefaultConfig() { Puts("Creating new config file."); configData = new ConfigData(); SaveConfig(configData); } void SaveConfig(ConfigData config) { Config.WriteObject(config, true); } [ChatCommand("PVETurret")] void turrettoggle(BasePlayer player, string cmd, string[] args) { if (!permission.UserHasPermission(player.userID.ToString(), "PVETurret.admin")) { SendReply(player, "You do not have permission to use this command"); return; } if (args.Length > 0) { switch (args[0].ToLower()) { case "tur": configData.tur = !configData.tur; SaveConfig(configData); SendReply(player, $"PVETurrets Turrets is set to {configData.tur}"); return; case "trap": configData.trap = !configData.trap; SaveConfig(configData); SendReply(player, $"PVETurrets GunTraps is set to {configData.trap}"); return; case "flame": configData.flameTurret = !configData.flameTurret; SaveConfig(configData); SendReply(player, $"PVETurrets FlameTurret is set to {configData.flameTurret}"); return; } } else { SendReply(player, "Syntax: /PVETurret trap or tur"); } } object CanBeTargeted(BasePlayer target, AutoTurret turret) { if (configData.tur && turret.OwnerID != 0 && target?.net?.connection != null) { return false; } return null; } object CanBeTargeted(BasePlayer target, GunTrap turret) { if (configData.trap && turret.OwnerID != 0 && target?.net?.connection != null) { return false; } return null; } object CanBeTargeted(BasePlayer target, FlameTurret turret) { if (configData.flameTurret && turret.OwnerID != 0 && target?.net?.connection != null) { return false; } return null; } } }