2,293 Commits over 701 Days - 0.14cph!
Convert the normal tags to short tags within the server browser UI (this allows steam server queries to work with short tags)
Don't decompress tags in serverinfo as we are operating on the short tags instead
Log error if unique ^ prefix is found in tags before commpressing
Shorten large gamemode tags (monthly, vanilla, etc) down to a two characters (^a^b^c)
Expand tags back to full values when creating ServerInfo struct
Move hash & status from server tags -> rules
merge from full_server_demos -> aux2
merge simple_upload -> full_server_demos
Change blocksize convar from bytes -> MB
Fix wrong conditional compilation symbol in EnsureHarmonyLoaded()
Simplify the upload logic to upload each demo chunk slowly rather than try to squeeze each one within 5m
Set default max concurrent uploads to 20 streams
Add convar to print upload progress `print_upload_progress`
Add convar to configure upload timeout `upload_timeout` (default 100s)
merge from main -> ping_estimation
Merge from full_server_demos -> aux2
Network++
merge main -> full_server_demos
network++
merge packet_ordering_2 -> full_server_demos
▅▉▇▋▍ ▊▋▊▊ █▋▌█ -> █▍▉▄▌▊_▍▅█▉▋▇_▄▇█▆▇▅▍
Merge from main -> rpc refactor_2
Merge from main -> rpc refactor_2
▅▌▇▌▊ ▉█▅▋ ▄▋▌▊ -> ▉▌▅█▉▄_▄▄▋▊▋▄_▆▉▅▍▋▋▍
merge from harmony2_3 -> aux2
Add MonoMod to AppDomain assembly resolver to point to the loaded harmony dll
Cherrypick copying harmony to build directory
Pure reflection approach to load 0Harmony.dll, create Harmony instances & patch methods
Exclude 0Harmony from the build
Cherrypick disable assembly validation again
Cherrypick harmony 2.3 again
Fix copying of dlls to builds
Update HarmonyHook.cs to work in editor (because unity wants absolute path)
Update Rust.Harmony.Loader.dll
merge from ping_estimate -> aux2
Fix compile error from random namespaces at top of `PingEstimator.cs`
Merge from main -> harmony2
merge from ping_estimation -> aux2
Add ping results to server & client analytics
Add `ping_region_code_override` convar for servers to manually override their region
.meta files
Compile error
Add "Estimate Ping" button to browser
Add `browser_ping_estimate` client convar
Use region's ping instead of local cached ping when ping estimation is enabled
Parse region tag out in serverinfo
return IPingRegion instead of a string
fix region code not set inside tags
Set "region" tag `r` with the closest region code
Default to `?` region
Update region every 5 min
Add `ping_test` command to find the region with lowest latency
Hardcode endpoints for testing
Refactor what packets are ordered into `PacketOrdering.cs`
Reimplement packet ordering inside `NetWrite.PacketId()` so it doesn't require a breaking change