Extract PublicListing and MatchActively to a plugin, resurrect MatchActively (#2759)

* Start work on extracting remote communication

* ok

* Dockerfile fixes

* More fixes

* Prepare /Api/Announce and /Api/HeartBeat

* Decrease publish race conditions

* OK

* Misc

* Misc

* Misc

* Move Steam group part back to ASF core

* Finally implement match actively v2 core

* Update RemoteCommunication.cs

* Use single round exclusively, report inventories more often

* Use randomization when asking others for assetIDs

* Add support for license and crowdin

* Kill dead code

* Fix return type of inventories

* Fix responses for good

* Unify old backend with new

* Report whole inventory, always

Helps with optimization on the backend side in terms of inventory fetching

* Update RemoteCommunication.cs

* Determine index of each asset and tell server about it

* Update AnnouncementRequest.cs

* Fix ASF screwing up with the order

* Fix warnings

* Misc rename

* Final logging touches
This commit is contained in:
Łukasz Domeradzki
2022-12-15 18:46:37 +01:00
committed by GitHub
parent fd517294d1
commit 98ef37e722
33 changed files with 2292 additions and 2082 deletions

View File

@@ -129,6 +129,9 @@ public sealed class GlobalConfig {
[PublicAPI]
public static readonly ImmutableHashSet<uint> DefaultBlacklist = ImmutableHashSet<uint>.Empty;
[PublicAPI]
public static readonly Guid? DefaultLicenseID;
private static readonly ImmutableHashSet<string> ForbiddenIPCPasswordPhrases = ImmutableHashSet.Create(StringComparer.InvariantCultureIgnoreCase, "ipc", "api", "gui", "asf-ui", "asf-gui");
[JsonIgnore]
@@ -237,6 +240,9 @@ public sealed class GlobalConfig {
[JsonProperty(Required = Required.DisallowNull)]
public ArchiCryptoHelper.EHashingMethod IPCPasswordFormat { get; private set; } = DefaultIPCPasswordFormat;
[JsonProperty]
public Guid? LicenseID { get; private set; } = DefaultLicenseID;
[JsonProperty(Required = Required.DisallowNull)]
[Range(byte.MinValue, byte.MaxValue)]
public byte LoginLimiterDelay { get; private set; } = DefaultLoginLimiterDelay;
@@ -375,6 +381,9 @@ public sealed class GlobalConfig {
[UsedImplicitly]
public bool ShouldSerializeIPCPasswordFormat() => !Saving || (IPCPasswordFormat != DefaultIPCPasswordFormat);
[UsedImplicitly]
public bool ShouldSerializeLicenseID() => !Saving || ((LicenseID != DefaultLicenseID) && (LicenseID != Guid.Empty));
[UsedImplicitly]
public bool ShouldSerializeLoginLimiterDelay() => !Saving || (LoginLimiterDelay != DefaultLoginLimiterDelay);