From 02fdde60384594590f1c6f349c7d5efda6090e92 Mon Sep 17 00:00:00 2001 From: Ryzhehvost Date: Tue, 14 Dec 2021 09:10:10 +0200 Subject: [PATCH] update to net6.0 and tasks --- .../ASF-Achievement-Manager.csproj | 4 +- .../ASFAchievementManager.cs | 77 +++++++++---------- ArchiSteamFarm | 2 +- build.bat | 2 +- 4 files changed, 39 insertions(+), 46 deletions(-) diff --git a/ASFAchievementManager/ASF-Achievement-Manager.csproj b/ASFAchievementManager/ASF-Achievement-Manager.csproj index 0827b22..e55dc52 100644 --- a/ASFAchievementManager/ASF-Achievement-Manager.csproj +++ b/ASFAchievementManager/ASF-Achievement-Manager.csproj @@ -2,8 +2,8 @@ Ryzhehvost - 0.2.0.0 - net5.0;net48 + 0.2.1.0 + net6.0;net48 enable latest diff --git a/ASFAchievementManager/ASFAchievementManager.cs b/ASFAchievementManager/ASFAchievementManager.cs index d40c90a..eca6955 100644 --- a/ASFAchievementManager/ASFAchievementManager.cs +++ b/ASFAchievementManager/ASFAchievementManager.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Composition; using System.Threading.Tasks; @@ -8,7 +8,6 @@ using ArchiSteamFarm.Steam.Storage; using ArchiSteamFarm.Plugins.Interfaces; using ArchiSteamFarm.Localization; -using JetBrains.Annotations; using SteamKit2; using System.Linq; using System.Collections.Concurrent; @@ -16,13 +15,16 @@ namespace ASFAchievementManager { [Export(typeof(IPlugin))] public sealed class ASFAchievementManager : IBotSteamClient, IBotCommand { - private static ConcurrentDictionary AchievementHandlers = new ConcurrentDictionary(); + private static readonly ConcurrentDictionary AchievementHandlers = new(); public string Name => "ASF Achievement Manager"; public Version Version => typeof(ASFAchievementManager).Assembly.GetName().Version ?? new Version("0"); - public void OnLoaded() => ASF.ArchiLogger.LogGenericInfo("ASF Achievement Manager Plugin by Ryzhehvost, powered by ginger cats"); + public Task OnLoaded() { + ASF.ArchiLogger.LogGenericInfo("ASF Achievement Manager Plugin by Ryzhehvost, powered by ginger cats"); + return Task.CompletedTask; + } - public async Task OnBotCommand([NotNull] Bot bot, ulong steamID, [NotNull] string message, string[] args) { + public async Task OnBotCommand(Bot bot, ulong steamID, string message, string[] args) { switch (args.Length) { case 0: @@ -30,37 +32,28 @@ public sealed class ASFAchievementManager : IBotSteamClient, IBotCommand { return null; case 1: - switch (args[0].ToUpperInvariant()) { - - default: - return null; - } + return args[0].ToUpperInvariant() switch { + _ => null, + }; default: - switch (args[0].ToUpperInvariant()) { - case "ALIST" when args.Length > 2: - return await ResponseAchievementList(steamID, args[1], Utilities.GetArgsAsText(args, 2, ",")).ConfigureAwait(false); - case "ALIST": - return await ResponseAchievementList(steamID, bot, args[1]).ConfigureAwait(false); - case "ASET" when args.Length > 3: - return await ResponseAchievementSet(steamID, args[1], args[2], Utilities.GetArgsAsText(args, 3, ","), true).ConfigureAwait(false); - case "ASET" when args.Length > 2: - return await ResponseAchievementSet(steamID, bot, args[1], Utilities.GetArgsAsText(args, 2, ","), true).ConfigureAwait(false); - case "ARESET" when args.Length > 3: - return await ResponseAchievementSet(steamID, args[1], args[2], Utilities.GetArgsAsText(args, 3, ","), false).ConfigureAwait(false); - case "ARESET" when args.Length > 2: - return await ResponseAchievementSet(steamID, bot, args[1], Utilities.GetArgsAsText(args, 2, ","), false).ConfigureAwait(false); - default: - return null; - } + return args[0].ToUpperInvariant() switch { + "ALIST" when args.Length > 2 => await ResponseAchievementList(steamID, args[1], Utilities.GetArgsAsText(args, 2, ",")).ConfigureAwait(false), + "ALIST" => await ResponseAchievementList(steamID, bot, args[1]).ConfigureAwait(false), + "ASET" when args.Length > 3 => await ResponseAchievementSet(steamID, args[1], args[2], Utilities.GetArgsAsText(args, 3, ","), true).ConfigureAwait(false), + "ASET" when args.Length > 2 => await ResponseAchievementSet(steamID, bot, args[1], Utilities.GetArgsAsText(args, 2, ","), true).ConfigureAwait(false), + "ARESET" when args.Length > 3 => await ResponseAchievementSet(steamID, args[1], args[2], Utilities.GetArgsAsText(args, 3, ","), false).ConfigureAwait(false), + "ARESET" when args.Length > 2 => await ResponseAchievementSet(steamID, bot, args[1], Utilities.GetArgsAsText(args, 2, ","), false).ConfigureAwait(false), + _ => null, + }; } } - public void OnBotSteamCallbacksInit([NotNull] Bot bot, [NotNull] CallbackManager callbackManager) { } + public Task OnBotSteamCallbacksInit(Bot bot, CallbackManager callbackManager) => Task.CompletedTask; - public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bot bot) { - AchievementHandler CurrentBotAchievementHandler = new AchievementHandler(); + public Task?> OnBotSteamHandlersInit(Bot bot) { + AchievementHandler CurrentBotAchievementHandler = new(); AchievementHandlers.TryAdd(bot, CurrentBotAchievementHandler); - return new HashSet { CurrentBotAchievementHandler }; + return Task.FromResult?>(new HashSet { CurrentBotAchievementHandler }); } //Responses @@ -82,7 +75,7 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo return null; } - HashSet gamesToGetAchievements = new HashSet(); + HashSet gamesToGetAchievements = new(); foreach (string game in gameIDs) { if (!uint.TryParse(game, out uint gameID) || (gameID == 0)) { @@ -95,7 +88,7 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo IList results = await Utilities.InParallel(gamesToGetAchievements.Select(appID => Task.Run(() => AchievementHandler.GetAchievements(bot, appID)))).ConfigureAwait(false); - List responses = new List(results.Where(result => !string.IsNullOrEmpty(result))); + List responses = new(results.Where(result => !string.IsNullOrEmpty(result))); return responses.Count > 0 ? bot.Commands.FormatBotResponse(string.Join(Environment.NewLine, responses)) : null; @@ -116,19 +109,19 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo IList results = await Utilities.InParallel(bots.Select(bot => ResponseAchievementList(steamID, bot, appids))).ConfigureAwait(false); - List responses = new List(results.Where(result => !string.IsNullOrEmpty(result))); + List responses = new(results.Where(result => !string.IsNullOrEmpty(result))); return responses.Count > 0 ? string.Join(Environment.NewLine, responses) : null; } - private static async Task ResponseAchievementSet(ulong steamID, Bot bot, string appid, string AchievementNumbers, bool set = true) { + private static async Task ResponseAchievementSet(ulong steamID, Bot bot, string appid, string achievementNumbers, bool set = true) { if (!bot.HasAccess(steamID, BotConfig.EAccess.Master)) { return null; } - if (string.IsNullOrEmpty(AchievementNumbers)) { - return bot.Commands.FormatBotResponse(string.Format(Strings.ErrorObjectIsNull, nameof(AchievementNumbers))); + if (string.IsNullOrEmpty(achievementNumbers)) { + return bot.Commands.FormatBotResponse(string.Format(Strings.ErrorObjectIsNull, nameof(achievementNumbers))); } if (!uint.TryParse(appid, out uint appId)) { return bot.Commands.FormatBotResponse(string.Format(Strings.ErrorIsInvalid, nameof(appId))); @@ -143,11 +136,11 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo return null; } - HashSet achievements = new HashSet(); + HashSet achievements = new(); - string[] achievementStrings = AchievementNumbers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); + string[] achievementStrings = achievementNumbers.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); - if (!AchievementNumbers.Equals("*")) { + if (!achievementNumbers.Equals("*")) { foreach (string achievement in achievementStrings) { if (!uint.TryParse(achievement, out uint achievementNumber) || (achievementNumber == 0)) { return bot.Commands.FormatBotResponse(string.Format(Strings.ErrorParsingObject, achievement)); @@ -162,7 +155,7 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo return bot.Commands.FormatBotResponse(await Task.Run(() => AchievementHandler.SetAchievements(bot, appId, achievements, set)).ConfigureAwait(false)); } - private static async Task ResponseAchievementSet(ulong steamID, string botNames, string appid, string AchievementNumbers, bool set = true) { + private static async Task ResponseAchievementSet(ulong steamID, string botNames, string appid, string achievementNumbers, bool set = true) { HashSet? bots = Bot.GetBots(botNames); @@ -170,9 +163,9 @@ public IReadOnlyCollection OnBotSteamHandlersInit([NotNull] Bo return Commands.FormatStaticResponse(string.Format(Strings.BotNotFound, botNames)); } - IList results = await Utilities.InParallel(bots.Select(bot => ResponseAchievementSet(steamID, bot, appid, AchievementNumbers, set))).ConfigureAwait(false); + IList results = await Utilities.InParallel(bots.Select(bot => ResponseAchievementSet(steamID, bot, appid, achievementNumbers, set))).ConfigureAwait(false); - List responses = new List(results.Where(result => !string.IsNullOrEmpty(result))); + List responses = new(results.Where(result => !string.IsNullOrEmpty(result))); return responses.Count > 0 ? string.Join(Environment.NewLine, responses) : null; } diff --git a/ArchiSteamFarm b/ArchiSteamFarm index 2d96975..944df1c 160000 --- a/ArchiSteamFarm +++ b/ArchiSteamFarm @@ -1 +1 @@ -Subproject commit 2d969758f6ad5089669d4d9baa7fba9e1638746b +Subproject commit 944df1cfc87ab2cf31278cb7dde846062251d6b7 diff --git a/build.bat b/build.bat index 0688a30..6be6fe9 100644 --- a/build.bat +++ b/build.bat @@ -21,7 +21,7 @@ if exist out rmdir /Q /S out rem release generic version -dotnet publish -c "Release" -f "net5.0" -o "out/generic" "/p:LinkDuringPublish=false" +dotnet publish -c "Release" -f "net6.0" -o "out/generic" "/p:LinkDuringPublish=false" mkdir .\out\%CurrDirName% copy .\out\generic\%CurrDirName%.dll .\out\%CurrDirName% 7z a -tzip -mx7 .\out\%CurrDirName%.zip .\out\%CurrDirName%