using Newtonsoft.Json; using Oxide.Core; using System; namespace Oxide.Plugins { [Info("No Gibs", "bsdinis", "0.0.6")] [Description("Instantly kills gibs from Patrol, Bradley APC, CH47 or Scrap Helicopter.")] class NoGibs : RustPlugin { void Init() { try { config = Config.ReadObject(); if (config == null) { throw new Exception(); } else { SaveConfig(); } } catch { PrintError("CONFIG FILE IS INVALID!\nCheck config file and reload NoGibs."); Interface.Oxide.UnloadPlugin(Name); return; } } void OnServerInitialized() { foreach (BaseNetworkable entity in BaseNetworkable.serverEntities) { OnEntitySpawned(entity); } } protected override void LoadDefaultConfig() { config = new ConfigData() { disablePatrolGibs = false, disableAPCgibs = false, disableCH47gibs = false, disableCH47fireball = false, disableScrapHelicopterGibs = true, disableScrapHelicopterFireball = true, disableMinicopterFireball = true }; } ConfigData config; class ConfigData { [JsonProperty(PropertyName = "Disable Patrol Helicopter gibs")] public bool disablePatrolGibs; [JsonProperty(PropertyName = "Disable Bradley APC gibs")] public bool disableAPCgibs; [JsonProperty(PropertyName = "Disable CH47 gibs")] public bool disableCH47gibs; [JsonProperty(PropertyName = "Disable CH47 fireball")] public bool disableCH47fireball; [JsonProperty(PropertyName = "Disable Scrap Helicopter gibs")] public bool disableScrapHelicopterGibs; [JsonProperty(PropertyName = "Disable Scrap Helicopter fireball")] public bool disableScrapHelicopterFireball; [JsonProperty(PropertyName = "Disable Minicopter fireball")] public bool disableMinicopterFireball; } protected override void SaveConfig() => Config.WriteObject(config); void OnEntitySpawned(BaseNetworkable entity) { NextTick( () => { if (!entity.IsValid() || entity.IsDestroyed) { return; } if (entity.ShortPrefabName.StartsWith("servergibs_")) { if (entity.ShortPrefabName == "servergibs_patrolhelicopter") { if (config.disablePatrolGibs) { entity.Kill(); } } else if (entity.ShortPrefabName == "servergibs_bradley") { if (config.disableAPCgibs) { entity.Kill(); } } else if (entity.ShortPrefabName == "servergibs_ch47") { if (config.disableCH47gibs) { entity.Kill(); } } else if (entity.ShortPrefabName == "servergibs_scraptransport") { if (config.disableScrapHelicopterGibs) { entity.Kill(); } } return; } if (config.disableCH47fireball) { CH47Helicopter ch47 = entity as CH47Helicopter; if (ch47 != null) { ch47.fireBall.guid = null; return; } } PlayerHelicopter heli = entity as PlayerHelicopter; if (heli != null) { if (heli.ShortPrefabName == "scraptransporthelicopter") { if (config.disableScrapHelicopterFireball) { heli.fireBall.guid = null; } } else if (heli.ShortPrefabName == "minicopter.entity") { if (config.disableMinicopterFireball) { heli.fireBall.guid = null; } } } } ); } } }