1
0
mirror of https://github.com/chylex/Minecraft-Phantom-Panel.git synced 2026-05-02 03:32:15 +02:00
Files
2026-04-06 09:33:01 +02:00

25 lines
932 B
C#

using MemoryPack;
namespace Phantom.Common.Data.Agent.Instance.Backups;
[MemoryPackable(GenerateType.VersionTolerant)]
public sealed partial record InstanceBackupSchedule(
[property: MemoryPackOrder(0)] ushort InitialDelayInMinutes,
[property: MemoryPackOrder(1)] ushort BackupIntervalInMinutes,
[property: MemoryPackOrder(2)] ushort BackupFailureRetryDelayInMinutes,
[property: MemoryPackOrder(3)] Optional<IInstancePlayerCountDetectionStrategy> PlayerCountDetectionStrategy
) {
[MemoryPackIgnore]
public TimeSpan InitialDelay => TimeSpan.FromMinutes(InitialDelayInMinutes);
[MemoryPackIgnore]
public TimeSpan BackupInterval => TimeSpan.FromMinutes(AtLeastOne(BackupIntervalInMinutes));
[MemoryPackIgnore]
public TimeSpan BackupFailureRetryDelay => TimeSpan.FromMinutes(AtLeastOne(BackupFailureRetryDelayInMinutes));
private static ushort AtLeastOne(ushort value) {
return Math.Max(value, (ushort) 1);
}
}