using Network; using Newtonsoft.Json; namespace Oxide.Plugins { [Info("Server Say Prefix", "beee", "0.0.1")] class ServerSayPrefix : RustPlugin { private PluginConfig _config; const string DefaultServerSayPrefix = "SERVER "; private void OnBroadcastCommand(string command, object[] args) { if ((command != "chat.add") || args.Length < 3 || !args[2].ToString().StartsWith(DefaultServerSayPrefix)) return; args[2] = args[2].ToString().Replace(DefaultServerSayPrefix, _config.ServerSayPrefix); } #region Config private class PluginConfig { [JsonProperty("New Server Say Prefix")] public string ServerSayPrefix { get; set; } } private PluginConfig GetDefaultConfig() { PluginConfig result = new PluginConfig { ServerSayPrefix = "Server Name: ", }; return result; } private void CheckForConfigUpdates() { bool changes = false; if (_config == null) { PluginConfig tmpDefaultConfig = GetDefaultConfig(); _config = tmpDefaultConfig; changes = true; } if (changes) { PrintWarning("Config updated"); SaveConfig(); } } protected override void LoadDefaultConfig() => _config = GetDefaultConfig(); protected override void LoadConfig() { base.LoadConfig(); _config = Config.ReadObject(); CheckForConfigUpdates(); } protected override void SaveConfig() { Config.WriteObject(_config); } #endregion } }