C#:
using Newtonsoft.Json;
namespace Oxide.Plugins
{
[Info("No Sun Glare", "Tryhard", "1.0.0")]
[Description("Removes sun or sun glare")]
public class NoSunGlare : RustPlugin
{
#region Oxide Hooks
private void Init()
{
UnityEngine.Application.logMessageReceived += HandleLog;
UnityEngine.Application.logMessageReceived -= Facepunch.Output.LogHandler;
}
private void Unload()
{
UnityEngine.Application.logMessageReceived += Facepunch.Output.LogHandler;
UnityEngine.Application.logMessageReceived -= HandleLog;
}
private void HandleLog(string message, string stackTrace, UnityEngine.LogType type)
{
if (!string.IsNullOrEmpty(message) && !message.Contains("weather")) Facepunch.Output.LogHandler(message, stackTrace, type);
}
private void OnServerInitialized()
{
if (configData.noSun) Server.Command("weather.cloud_opacity 1");
else Server.Command("weather.cloud_opacity 0.97");
Server.Command("weather.cloud_brightness 1.5");
Server.Command("weather.cloud_coloring 0");
Server.Command("weather.cloud_saturation 1");
Server.Command("weather.cloud_scattering 0");
Server.Command("weather.cloud_sharpness 0");
Server.Command("weather.cloud_size 0");
Server.Command("weather.cloud_coverage 1");
Server.Command("weather.rain 0");
Server.Command("weather.clear_chance 1");
Server.Command("weather.fog 0");
Server.Command("weather.rain 0");
Server.Command("weather.cloud_brightness 0.75");
Server.Command("weather.atmosphere_contrast 1.2");
Server.Command("weather.atmosphere_directionality 0");
Server.Command("weather.atmosphere_mie 0");
Server.Command("weather.atmosphere_rayleigh 1.3");
Server.Command("weather.cloud_attenuation -1");
}
#endregion
#region Config
private ConfigData configData = new ConfigData();
private class ConfigData
{
[JsonProperty(PropertyName = "sun/nosun")]
public bool noSun = true;
}
protected override void LoadConfig()
{
base.LoadConfig();
try
{
configData = Config.ReadObject<ConfigData>();
if (configData == null) LoadDefaultConfig();
}
catch
{
PrintError("Configuration file is corrupt, check your config file at https://jsonlint.com/!");
LoadDefaultConfig();
return;
}
SaveConfig();
}
protected override void LoadDefaultConfig() => configData = new ConfigData();
protected override void SaveConfig() => Config.WriteObject(configData);
#endregion
#region helpers
// Kopter#0420
#endregion
}
}