From 70ed633bc0d74e435f95ad060b7f9feda3011ad2 Mon Sep 17 00:00:00 2001 From: Lacoi Date: Fri, 3 Nov 2023 16:13:34 +0100 Subject: [PATCH] asm: add NewYear setting --- src/ARKServerManager/Lib/ServerProfile.cs | 35 +++++++++++++ .../UserControls/ServerSettingsControl.xaml | 49 ++++++++++++++++++- .../Converters/DateTimeToStringConverter.cs | 35 +++++++++++++ .../DateTimeValidationRules.cs | 40 +++++++++++++++ 4 files changed, 158 insertions(+), 1 deletion(-) create mode 100644 src/ServerManager.Common/Converters/DateTimeToStringConverter.cs create mode 100644 src/ServerManager.Common/ValidationRules/DateTimeValidationRules.cs diff --git a/src/ARKServerManager/Lib/ServerProfile.cs b/src/ARKServerManager/Lib/ServerProfile.cs index 5419c1e8..f03a05d5 100644 --- a/src/ARKServerManager/Lib/ServerProfile.cs +++ b/src/ARKServerManager/Lib/ServerProfile.cs @@ -1228,6 +1228,22 @@ namespace ServerManagerTool.Lib get { return (float)GetValue(EventColorsChanceOverrideProperty); } set { SetValue(EventColorsChanceOverrideProperty, value); } } + + public static readonly DependencyProperty NewYear1UTCProperty = DependencyProperty.Register(nameof(NewYear1UTC), typeof(DateTime), typeof(ServerProfile), new PropertyMetadata(DateTime.MinValue)); + [DataMember] + public DateTime NewYear1UTC + { + get { return (DateTime)GetValue(NewYear1UTCProperty); } + set { SetValue(NewYear1UTCProperty, value); } + } + + public static readonly DependencyProperty NewYear2UTCProperty = DependencyProperty.Register(nameof(NewYear2UTC), typeof(DateTime), typeof(ServerProfile), new PropertyMetadata(DateTime.MinValue)); + [DataMember] + public DateTime NewYear2UTC + { + get { return (DateTime)GetValue(NewYear2UTCProperty); } + set { SetValue(NewYear2UTCProperty, value); } + } #endregion #region Rules @@ -4116,6 +4132,16 @@ namespace ServerManagerTool.Lib serverArgs.Append("?EventColorsChanceOverride=").Append(this.EventColorsChanceOverride); } + if (this.NewYear1UTC != DateTime.MinValue) + { + serverArgs.Append("?NewYear1UTC=").Append((new DateTimeOffset(this.NewYear1UTC.ToUniversalTime())).ToUnixTimeSeconds().ToString()); + } + + if (this.NewYear2UTC != DateTime.MinValue) + { + serverArgs.Append("?NewYear2UTC=").Append((new DateTimeOffset(this.NewYear2UTC.ToUniversalTime())).ToUnixTimeSeconds().ToString()); + } + if (!string.IsNullOrWhiteSpace(this.AdditionalArgs)) { var addArgs = this.AdditionalArgs.TrimStart(); @@ -4423,6 +4449,11 @@ namespace ServerManagerTool.Lib serverArgs.Append(" -MaxNumOfSaveBackups=").Append(this.MaxNumOfSaveBackups); } + if (this.NewYear1UTC != DateTime.MinValue || this.NewYear2UTC != DateTime.MinValue) + { + serverArgs.Append(" -NewYearEvent"); + } + return serverArgs.ToString(); } @@ -6136,6 +6167,8 @@ namespace ServerManagerTool.Lib this.ClearValue(EventNameProperty); this.ClearValue(EventColorsChanceOverrideProperty); + this.ClearValue(NewYear1UTCProperty); + this.ClearValue(NewYear2UTCProperty); } public void ResetSOTFSection() @@ -6923,6 +6956,8 @@ namespace ServerManagerTool.Lib this.SetValue(EventNameProperty, sourceProfile.EventName); this.SetValue(EventColorsChanceOverrideProperty, sourceProfile.EventColorsChanceOverride); + this.SetValue(NewYear1UTCProperty, sourceProfile.NewYear1UTC); + this.SetValue(NewYear2UTCProperty, sourceProfile.NewYear2UTC); } private void SyncServerFiles(ServerProfile sourceProfile) diff --git a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml index 54bb60c5..43b6cd31 100644 --- a/src/ARKServerManager/UserControls/ServerSettingsControl.xaml +++ b/src/ARKServerManager/UserControls/ServerSettingsControl.xaml @@ -1817,6 +1817,7 @@ + @@ -1832,7 +1833,53 @@ - +