From 097ac05cebf12fb43f93c72fff86464344ff70c9 Mon Sep 17 00:00:00 2001 From: Archi Date: Wed, 11 Jan 2023 19:16:38 +0100 Subject: [PATCH] Remove assetID from inventories request Backend doesn't need to know that --- .../Data/AssetForMatching.cs | 62 +++++++++++++++++++ .../Data/AssetInInventory.cs | 30 +-------- .../Data/InventoriesRequest.cs | 4 +- 3 files changed, 66 insertions(+), 30 deletions(-) create mode 100644 ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetForMatching.cs diff --git a/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetForMatching.cs b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetForMatching.cs new file mode 100644 index 000000000..bc2443086 --- /dev/null +++ b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetForMatching.cs @@ -0,0 +1,62 @@ +// _ _ _ ____ _ _____ +// / \ _ __ ___ | |__ (_)/ ___| | |_ ___ __ _ _ __ ___ | ___|__ _ _ __ _ __ ___ +// / _ \ | '__|/ __|| '_ \ | |\___ \ | __|/ _ \ / _` || '_ ` _ \ | |_ / _` || '__|| '_ ` _ \ +// / ___ \ | | | (__ | | | || | ___) || |_| __/| (_| || | | | | || _|| (_| || | | | | | | | +// /_/ \_\|_| \___||_| |_||_||____/ \__|\___| \__,_||_| |_| |_||_| \__,_||_| |_| |_| |_| +// | +// Copyright 2015-2022 Ɓukasz "JustArchi" Domeradzki +// Contact: JustArchi@JustArchi.net +// | +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// | +// http://www.apache.org/licenses/LICENSE-2.0 +// | +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +using System; +using ArchiSteamFarm.Steam.Data; +using Newtonsoft.Json; + +namespace ArchiSteamFarm.OfficialPlugins.ItemsMatcher.Data; + +internal class AssetForMatching { + [JsonProperty("a", Required = Required.Always)] + internal readonly uint Amount; + + [JsonProperty("c", Required = Required.Always)] + internal readonly ulong ClassID; + + [JsonProperty("r", Required = Required.Always)] + internal readonly Asset.ERarity Rarity; + + [JsonProperty("e", Required = Required.Always)] + internal readonly uint RealAppID; + + [JsonProperty("t", Required = Required.Always)] + internal readonly bool Tradable; + + [JsonProperty("p", Required = Required.Always)] + internal readonly Asset.EType Type; + + internal AssetForMatching(Asset asset) { + ArgumentNullException.ThrowIfNull(asset); + + Amount = asset.Amount; + + ClassID = asset.ClassID; + Tradable = asset.Tradable; + + RealAppID = asset.RealAppID; + Type = asset.Type; + Rarity = asset.Rarity; + } + + [JsonConstructor] + protected AssetForMatching() { } +} diff --git a/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetInInventory.cs b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetInInventory.cs index 4cb5f7f9f..b6960fa1f 100644 --- a/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetInInventory.cs +++ b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/AssetInInventory.cs @@ -25,40 +25,14 @@ using Newtonsoft.Json; namespace ArchiSteamFarm.OfficialPlugins.ItemsMatcher.Data; -internal class AssetInInventory { - [JsonProperty("a", Required = Required.Always)] - internal readonly uint Amount; - +internal class AssetInInventory : AssetForMatching { [JsonProperty("d", Required = Required.Always)] internal readonly ulong AssetID; - [JsonProperty("c", Required = Required.Always)] - internal readonly ulong ClassID; - - [JsonProperty("r", Required = Required.Always)] - internal readonly Asset.ERarity Rarity; - - [JsonProperty("e", Required = Required.Always)] - internal readonly uint RealAppID; - - [JsonProperty("t", Required = Required.Always)] - internal readonly bool Tradable; - - [JsonProperty("p", Required = Required.Always)] - internal readonly Asset.EType Type; - - internal AssetInInventory(Asset asset) { + internal AssetInInventory(Asset asset) : base(asset) { ArgumentNullException.ThrowIfNull(asset); AssetID = asset.AssetID; - Amount = asset.Amount; - - ClassID = asset.ClassID; - Tradable = asset.Tradable; - - RealAppID = asset.RealAppID; - Type = asset.Type; - Rarity = asset.Rarity; } [JsonConstructor] diff --git a/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/InventoriesRequest.cs b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/InventoriesRequest.cs index 897c1829a..0d3a26802 100644 --- a/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/InventoriesRequest.cs +++ b/ArchiSteamFarm.OfficialPlugins.ItemsMatcher/Data/InventoriesRequest.cs @@ -34,7 +34,7 @@ internal sealed class InventoriesRequest { internal readonly Guid Guid; [JsonProperty(Required = Required.Always)] - internal readonly ImmutableHashSet Inventory; + internal readonly ImmutableHashSet Inventory; [JsonProperty(Required = Required.Always)] internal readonly ImmutableHashSet MatchableTypes; @@ -61,7 +61,7 @@ internal sealed class InventoriesRequest { Guid = guid; SteamID = steamID; - Inventory = inventory.Select(static asset => new AssetInInventory(asset)).ToImmutableHashSet(); + Inventory = inventory.Select(static asset => new AssetForMatching(asset)).ToImmutableHashSet(); MatchableTypes = matchableTypes.ToImmutableHashSet(); } }