ModernUO/Projects/Server
Kamron Batman 3f6a87483b
feat: Adds auto archiving (#794)
## Adds Auto Archiving
Backups are archived once an hour, day, and month. Archives older than 60 days are pruned automatically.

_Note: Automatic pruning is off by default_

### Archive compression format
The following formats are supported:
* Zstd (The fastest with best compression ratio)
* GZip
* Zip
* None (Tar)

_Note: By default archives use [zstandard](http://facebook.github.io/zstd/) format.
The archive format can be changed in modernuo.json `autoArchive.compressionFormat`_

### Restoring world from archive
Move the archive to the Saves folder (tar.zst file). On startup the server will extract the file and restore the latest save. See pictures below.

### Manually extracting an archives
#### Windows
* Use the latest version of [7-zip w/ ZStandard](https://github.com/mcmilk/7-Zip-zstd/releases/latest)
  1. Extract the `.tar.zst` file.
  2. Extract the `.tar` file. (Yes you have to do it in two steps)
* On Windows 10 you can use the command line. `zstd.exe` is in the Assemblies folder after building ModernUO.
  1. `tar --use-compress-program "Distribution\Assemblies\zstd.exe -d" -xvf "Archives\Hourly\archivefile.tar.zst" -C "path to where you want to extract it"`
#### Mac
* Install [Keka](https://www.keka.io)
  1. Drop the .tar.zst onto the keka interface.
#### Linux
  1. Install zstd from a package manager
  2. Run `tar -I zstd -xvf "Archives\Hourly\archivefile.tar.zst" -C "path to where you want to extract it"`

### Other changes
* Changes Autosave to occur at the same time no matter when the server is booted.
* Adds `[SaveFrequency <delay> [warning]`command to set save frequency and warning frequency in-game.
* Adds support for time zones that are configurable. The system timezone can also be manually configured. Check `TimeZoneHandler.cs` for details.

<img width="257" alt="Screen Shot 2021-09-22 at 11 23 18 PM" src="https://user-images.githubusercontent.com/3953314/134464929-a5bf3cd8-2ef0-4476-a9ad-71d0816a19ac.png">
<img width="241" alt="Screen Shot 2021-09-22 at 11 23 39 PM" src="https://user-images.githubusercontent.com/3953314/134464945-5f6f96dc-3d1e-434d-8256-5c6b3705e786.png">
<img width="836" alt="Screen Shot 2021-09-22 at 11 34 39 PM" src="https://user-images.githubusercontent.com/3953314/134464957-625e57f2-ef47-4ca1-a0a7-cd40c9b6539c.png">
<img width="631" alt="Screen Shot 2021-09-22 at 11 34 50 PM" src="https://user-images.githubusercontent.com/3953314/134464969-b2d65c0d-f8f5-497a-a832-5d805e8e0b22.png">
2021-09-25 17:22:05 -07:00
..
Buffers fix(core): Removes implicit cast between Serial and uint (#728) 2021-08-25 00:27:19 -07:00
Collections feat: Adds tidy option for serialization. Codegens ballotbox. Fixes pooled timer leaking (#681) 2021-08-14 03:02:53 -07:00
Comparers feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Configuration feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
ContextMenus fix(core): Removes some uses of Linq (#421) 2021-01-18 21:05:11 -08:00
Diagnostics fix(core): Tightens the network stack (#479) 2021-02-07 23:30:56 -08:00
Events fix: Fixes boat movement & moves weapon ability out of core (#750) 2021-08-30 21:30:09 -07:00
Exceptions fix(core): Changes invalid gump response to write to network errors. (#510) 2021-02-15 08:31:53 -08:00
Geometry fix(cleanup): Cleans up attribute syntax (#734) 2021-08-26 18:30:16 -07:00
Gumps fix(core): Removes implicit cast between Serial and uint (#728) 2021-08-25 00:27:19 -07:00
Items fix: Adds idle cpu config and forces on in debug (#790) 2021-09-17 00:15:16 -07:00
Json feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Logging cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
Maps fix: Cleans up movement code (#787) 2021-09-16 23:23:22 -07:00
Menus Updates menu packets (#320) 2020-11-17 21:47:00 -08:00
Mobiles fix: Adds idle cpu config and forces on in debug (#790) 2021-09-17 00:15:16 -07:00
Network fix: Adds idle cpu config and forces on in debug (#790) 2021-09-17 00:15:16 -07:00
Random fix(core): Changes random source to use debut assert (#603) 2021-05-15 20:15:22 -07:00
Regions fix: Fixes spawners, adds convertpremiumspawners, exportspawners, and replaces with neruns distro (#751) 2021-09-03 21:52:44 -07:00
Serialization fix: Fixes spawners, adds convertpremiumspawners, exportspawners, and replaces with neruns distro (#751) 2021-09-03 21:52:44 -07:00
Targeting cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
Text fix(core): Fixes string wrapping for houses (#717) 2021-08-22 10:01:01 -07:00
TileMatrix fix(map): Fixes map diffs (Old Haven/Minax) (#720) 2021-08-22 23:35:18 -07:00
Timer feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
TimeZones feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Utilities feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
World feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
AssemblyHandler.cs feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Attributes.cs fix: Removes BodyValue and fixes modifying Body and BodyMod in props gump. (#743) 2021-08-28 22:56:00 -07:00
CityInfo.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
ClientVersion.cs fix(core): Updates slice with range selectors (#583) 2021-04-23 20:57:24 -07:00
Commands.cs fix(core): Updates slice with range selectors (#583) 2021-04-23 20:57:24 -07:00
Effects.cs fix(core): Cleans up uninitialized packets (#397) 2021-01-09 14:10:29 -08:00
EventLoopTasks.cs fix: Adds idle cpu config and forces on in debug (#790) 2021-09-17 00:15:16 -07:00
ExpansionInfo.cs feat(expansions): Adds expansion.json and loads expansions dynamically (#798) 2021-09-23 20:28:43 -07:00
Guild.cs fix(codegen): Adds manual dirty checking (#621) 2021-05-27 00:54:21 -07:00
HuePicker.cs fix(core): Removes implicit cast between Serial and uint (#728) 2021-08-25 00:27:19 -07:00
IAccount.cs fix(core): Fixes accounts and moves it to codegen (#644) 2021-06-05 19:39:16 -07:00
IEntity.cs fix: Cleanup IPoint3D calls (#704) 2021-08-19 09:11:48 -07:00
Interfaces.cs fix: Fixes spawners, adds convertpremiumspawners, exportspawners, and replaces with neruns distro (#751) 2021-09-03 21:52:44 -07:00
KeywordList.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
Main.cs feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
MultiData.cs fix(core): Moves map definitions and cleans up loading maps, regions, and tiles (#431) 2021-01-25 11:05:52 -08:00
MUO.ico Adds MUO Logo (#52) 2019-09-12 13:13:13 -07:00
NativeReader.cs fix(codegen): Fixes codegenning timers when they are null. (#723) 2021-08-23 20:44:02 -07:00
ObjectPropertyList.cs fix(core): Fixes OPL with stale header (#651) 2021-06-11 23:44:05 -07:00
Party.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
Poison.cs C# 9 Cleanup (#325) 2020-11-27 00:29:21 -08:00
Prompt.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
Race.cs fix: Updates races to properly support gargoyle equipment. (#744) 2021-08-29 00:43:55 -07:00
Sector.cs fix: Cleanup IPoint3D calls (#704) 2021-08-19 09:11:48 -07:00
SecureTrade.cs feat(timers): Adds timer pooling, fixes timer related bugs, and changes timer api (#667) 2021-08-07 14:33:35 -07:00
Serial.cs fix(core): Removes implicit cast between Serial and uint (#728) 2021-08-25 00:27:19 -07:00
Server.csproj fix: Updates dependencies, cleans up csproj, and updates README (#784) 2021-09-15 09:54:15 -07:00
Skills.cs fix(core): Fixes some properties that cannot be modified ingame (#604) 2021-05-15 23:47:33 -07:00
TileData.cs fix: Cleans up movement code (#787) 2021-09-16 23:23:22 -07:00
TileList.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00
VirtueInfo.cs Cleanup/Housekeeping (#242) 2020-09-12 15:31:21 -07:00