ModernUO/Projects/UOContent/Misc
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
..
Gifts/Winter2004 feat(timers): Adds timer pooling, fixes timer related bugs, and changes timer api (#667) 2021-08-07 14:33:35 -07:00
AccountPrompt.cs Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
Animations.cs Removes literal variables (#257) 2020-09-18 18:41:26 -07:00
AOS.cs fix(codegen): Fixes various code gen issues. Adds better embedded serialization support (#688) 2021-08-17 02:43:52 -07:00
AttackMessage.cs fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
AutoRestart.cs feat: Adds auto archiving (#794) 2021-09-25 17:22:05 -07:00
Broadcasts.cs Fixes exiting/crash handling/ctrl+c (#237) 2020-09-12 00:05:38 -07:00
BuffIcons.cs feat(timers): Adds timer pooling, fixes timer related bugs, and changes timer api (#667) 2021-08-07 14:33:35 -07:00
CharacterCreation.cs fix: Adds some missing equipment for warriors (#742) 2021-09-03 14:07:32 -07:00
Cleanup.cs fix: Code gens items. Fixes code genning of ore (#684) 2021-08-14 22:16:42 -07:00
ClientVerification.cs feat(timers): Adds timer pooling, fixes timer related bugs, and changes timer api (#667) 2021-08-07 14:33:35 -07:00
CrashGuard.cs chore(logging): Migrate some logs to ILogger (#582) 2021-04-22 08:45:49 -07:00
DispellableAttribute.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
DispellableFieldAttribute.cs Formats UO Content (#201) 2020-08-27 18:30:38 -07:00
DoorGenerator.cs fix(core): Tightens the network stack (#479) 2021-02-07 23:30:56 -08:00
Email.cs fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
Emitter.cs Fixes brace style (#248) 2020-09-13 21:49:46 -07:00
FoodDecay.cs fix(core): Adds Hashed & Hierarchical Timer Wheel (#655) 2021-07-11 22:42:06 -07:00
Geometry.cs fix(network): Adds UOG & Fixes ConnectUO packet (#552) 2021-03-15 16:18:28 -07:00
Guild.cs fix(core): Removes implicit cast between Serial and uint (#728) 2021-08-25 00:27:19 -07:00
HardwareInfo.cs fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
InhumanSpeech.cs fix(core): Converts healthbar packets (#367) 2020-12-27 23:22:21 -08:00
Keywords.cs Removes literal variables (#257) 2020-09-18 18:41:26 -07:00
LanguageStatistics.cs C# 9 Cleanup (#325) 2020-11-27 00:29:21 -08:00
LightCycle.cs fix(core): Adds Hashed & Hierarchical Timer Wheel (#655) 2021-07-11 22:42:06 -07:00
LoginStats.cs Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
Loot.cs Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
LootPack.cs fix(core): Updates slice with range selectors (#583) 2021-04-23 20:57:24 -07:00
MondainsLegacy.cs Fixes dupe exception (#258) 2020-09-19 15:46:07 -07:00
NameList.cs fix(core): Fixes errors from missing files (#511) 2021-02-14 18:30:53 -08:00
NameVerification.cs fix(core): Optimizes strings / .NET 5 compatibility changes (#354) 2020-12-20 23:21:55 -08:00
Notoriety.cs cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
PacketThrottles.cs fix(core): Handles a rare NPE with LoginTimer (#508) 2021-02-11 23:47:02 -08:00
Paperdoll.cs fix(core): Converts remaining player packets (#374) 2020-12-30 16:09:51 -08:00
Poison.cs Fixes brace style (#248) 2020-09-13 21:49:46 -07:00
ProfanityProtection.cs fix(core): Tightens the network stack (#479) 2021-02-07 23:30:56 -08:00
Profile.cs cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
RaceDefinitions.cs fix: Updates races to properly support gargoyle equipment. (#744) 2021-08-29 00:43:55 -07:00
RegenRates.cs fix: Cleanup IPoint3D calls (#704) 2021-08-19 09:11:48 -07:00
RenameRequests.cs fix(core): Optimizes strings / .NET 5 compatibility changes (#354) 2020-12-20 23:21:55 -08:00
ResourceInfo.cs fix(core): Optimizes strings / .NET 5 compatibility changes (#354) 2020-12-20 23:21:55 -08:00
ServerList.cs fix: Simplifies server list (#797) 2021-09-19 00:40:39 -07:00
ShardPoller.cs feat(timers): Adds timer pooling, fixes timer related bugs, and changes timer api (#667) 2021-08-07 14:33:35 -07:00
ShrinkTable.cs fix(core): Fixes errors from missing files (#511) 2021-02-14 18:30:53 -08:00
SkillCheck.cs fix(core): Caches DateTime.NowUtc (#548) 2021-03-13 01:32:04 -08:00
TextDefinition.cs C# 9 Cleanup (#325) 2020-11-27 00:29:21 -08:00
Titles.cs fix(core): Updates slice with range selectors (#583) 2021-04-23 20:57:24 -07:00
ToggleItem.cs Removes literal variables (#257) 2020-09-18 18:41:26 -07:00
TreasureMapProtection.cs cleanup: Fixes bugs and cleans up code (#660) 2021-07-19 20:49:59 -07:00
ValidationQueue.cs Fixes brace style (#248) 2020-09-13 21:49:46 -07:00
Weather.cs feat: Adds tidy option for serialization. Codegens ballotbox. Fixes pooled timer leaking (#681) 2021-08-14 03:02:53 -07:00
WebStatus.cs fix(core): Adds Hashed & Hierarchical Timer Wheel (#655) 2021-07-11 22:42:06 -07:00
WeightOverloading.cs Cleanup & Fixes for .NET 5 (#309) 2020-11-15 10:03:50 -08:00
WelcomeTimer.cs Removes UOAM vendors. (#241) 2020-09-12 11:56:52 -07:00