fix(core): Fixes flow for saves, adds logging and configurations (#513)
- [X] Adds better diagnostics for world saves. - [X] Adds world save stats. - [X] World now saves to a temporary folder. - [X] Backups are now stored by timestamp. - [X] Backup is now made after the world save. - [X] "Saves" folder is now configurable. - [X] Temporary folder is now configurable. - [X] Backups folder is now configurable.
This commit is contained in:
parent
6f5312cb89
commit
da01f5b8a5
19 changed files with 325 additions and 210 deletions
33
Projects/Server/World/WorldEvents.cs
Normal file
33
Projects/Server/World/WorldEvents.cs
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
namespace Server
|
||||
{
|
||||
public class WorldSavePostSnapshotEventArgs
|
||||
{
|
||||
public string OldSavePath { get; }
|
||||
public string NewSavePath { get; }
|
||||
|
||||
public WorldSavePostSnapshotEventArgs(string oldSavePath, string newSavePath)
|
||||
{
|
||||
OldSavePath = oldSavePath;
|
||||
NewSavePath = newSavePath;
|
||||
}
|
||||
}
|
||||
|
||||
public static partial class EventSink
|
||||
{
|
||||
public static event Action WorldLoad;
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void InvokeWorldLoad() => WorldLoad?.Invoke();
|
||||
|
||||
public static event Action WorldSave;
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void InvokeWorldSave() => WorldSave?.Invoke();
|
||||
|
||||
public static event Action<WorldSavePostSnapshotEventArgs> WorldSavePostSnapshot;
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static void InvokeWorldSavePostSnapshot(string oldSavePath, string newSavePath) =>
|
||||
WorldSavePostSnapshot?.Invoke(new WorldSavePostSnapshotEventArgs(oldSavePath, newSavePath));
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue