using System; using Newtonsoft.Json; using UnityEngine; namespace Oxide.Plugins; [Info("Signal Caller", "Michael Keulemans", "1.0.0")] [Description("Tells everyone who threw a supply signal and which grid it landed in.")] public class SignalCaller : RustPlugin { private ConfigData _config; private class ConfigData { [JsonProperty("Message")] public string Message = "{name} called in an airdrop at {grid}"; } protected override void LoadDefaultConfig() => _config = new ConfigData(); protected override void LoadConfig() { base.LoadConfig(); try { _config = Config.ReadObject() ?? new ConfigData(); } catch (Exception ex) { Debug.LogException(ex); _config = new ConfigData(); } } protected override void SaveConfig() => Config.WriteObject(_config, true); private void OnCargoPlaneSignaled(CargoPlane plane, SupplySignal signal) { var thrower = signal.creatorEntity as BasePlayer; if (thrower == null) return; var grid = MapHelper.PositionToString(signal.transform.position); PrintToChat(_config.Message.Replace("{name}", thrower.displayName).Replace("{grid}", grid)); } }