diff --git a/Daybreak.GWCA/CMakeLists.txt b/Daybreak.GWCA/CMakeLists.txt index 1735060c..6dd38c3f 100644 --- a/Daybreak.GWCA/CMakeLists.txt +++ b/Daybreak.GWCA/CMakeLists.txt @@ -11,7 +11,7 @@ endif() set(VERSION_MAJOR 0) set(VERSION_MINOR 9) set(VERSION_PATCH 9) -set(VERSION_TWEAK 46) +set(VERSION_TWEAK 47) set(VERSION_RC "${CMAKE_CURRENT_BINARY_DIR}/version.rc") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/version.rc.in" "${VERSION_RC}" @ONLY) diff --git a/Daybreak/Daybreak.csproj b/Daybreak/Daybreak.csproj index 4137d7d1..35b2bdb8 100644 --- a/Daybreak/Daybreak.csproj +++ b/Daybreak/Daybreak.csproj @@ -11,7 +11,7 @@ preview Daybreak.ico true - 0.9.9.46 + 0.9.9.47 true cfb2a489-db80-448d-a969-80270f314c46 True @@ -94,7 +94,7 @@ - + @@ -103,7 +103,7 @@ - + @@ -113,13 +113,14 @@ + - + diff --git a/Daybreak/Services/BuildTemplates/BuildTemplateManager.cs b/Daybreak/Services/BuildTemplates/BuildTemplateManager.cs index 5e0d3efc..360d01e5 100644 --- a/Daybreak/Services/BuildTemplates/BuildTemplateManager.cs +++ b/Daybreak/Services/BuildTemplates/BuildTemplateManager.cs @@ -71,7 +71,6 @@ public SingleBuildEntry CreateSingleBuild(string name) public TeamBuildEntry CreateTeamBuild() { - var emptyBuild = new Build(); var name = Guid.NewGuid().ToString(); var entry = new TeamBuildEntry { @@ -85,7 +84,6 @@ public TeamBuildEntry CreateTeamBuild() public TeamBuildEntry CreateTeamBuild(string name) { - var emptyBuild = new Build(); var entry = new TeamBuildEntry { Name = name, diff --git a/Daybreak/Services/Images/ImageCache.cs b/Daybreak/Services/Images/ImageCache.cs index 6eb96bf5..4269e837 100644 --- a/Daybreak/Services/Images/ImageCache.cs +++ b/Daybreak/Services/Images/ImageCache.cs @@ -65,7 +65,7 @@ public ImageCache( try { - var imageSource = await this.GetImageInternal(uri, scopedLogger); + var imageSource = await new TaskFactory().StartNew(() => this.GetImageInternal(uri, scopedLogger), TaskCreationOptions.LongRunning).Unwrap(); return imageSource; } catch(Exception ex) diff --git a/Daybreak/Services/Metrics/MetricsService.cs b/Daybreak/Services/Metrics/MetricsService.cs index 674e8212..3f2a6900 100644 --- a/Daybreak/Services/Metrics/MetricsService.cs +++ b/Daybreak/Services/Metrics/MetricsService.cs @@ -116,7 +116,6 @@ public IEnumerable GetMetrics() private void MeasurementRecorded(Instrument instrument, T measurement, ReadOnlySpan> tags, object? state) { MetricSet? newMetricSet = default; - RecordedMetric? newRecordedMetric = default; MetricsSemaphore.Wait(); if (measurement is null) @@ -139,7 +138,7 @@ private void MeasurementRecorded(Instrument instrument, T measurement, ReadOn metrics.RemoveFirst(); } - newRecordedMetric = new RecordedMetric { Instrument = instrument, Metric = metric }; + var newRecordedMetric = new RecordedMetric { Instrument = instrument, Metric = metric }; MetricsSemaphore.Release(); if (newMetricSet is not null) diff --git a/Daybreak/Services/Pathfinding/SharpNavPathfinder.cs b/Daybreak/Services/Pathfinding/SharpNavPathfinder.cs index 229080ad..21140184 100644 --- a/Daybreak/Services/Pathfinding/SharpNavPathfinder.cs +++ b/Daybreak/Services/Pathfinding/SharpNavPathfinder.cs @@ -48,7 +48,7 @@ public SharpNavPathfinder( public async Task> CalculatePath(PathingData map, Point startPoint, Point endPoint, CancellationToken cancellationToken) { - return await new TaskFactory().StartNew(() => this.CalculatePathInternal(map, startPoint, endPoint, cancellationToken), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current); + return await new TaskFactory().StartNew(() => this.CalculatePathInternal(map, startPoint, endPoint), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current); } public Task GenerateNavMesh(List trapezoids, CancellationToken cancellationToken) @@ -66,7 +66,7 @@ public async Task> CalculatePath return new TaskFactory().StartNew(() => this.GenerateNavMesh(ConvertTrapezoidsToTriangles(trapezoids), settings), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current); } - private Result CalculatePathInternal(PathingData pathingData, Point startPoint, Point endPoint, CancellationToken cancellationToken) + private Result CalculatePathInternal(PathingData pathingData, Point startPoint, Point endPoint) { var scopedLogger = this.logger.CreateScopedLogger(nameof(this.CalculatePath), string.Empty); if (pathingData is null || diff --git a/Daybreak/Services/Screenshots/BackgroundProvider.cs b/Daybreak/Services/Screenshots/BackgroundProvider.cs index 61b2bd6f..c4629f6e 100644 --- a/Daybreak/Services/Screenshots/BackgroundProvider.cs +++ b/Daybreak/Services/Screenshots/BackgroundProvider.cs @@ -41,7 +41,7 @@ public async Task GetBackground() Random.Shared.Next(this.liveOptions.Value.LocalScreenshotsEnabled ? 0 : 50, 101) >= 50) || maybeImage is null) { - (var maybeRemoteImage, var credit) = await this.bloogumClient.GetImage(true).ConfigureAwait(true); + (var maybeRemoteImage, var credit) = await new TaskFactory().StartNew(() => this.bloogumClient.GetImage(true), TaskCreationOptions.LongRunning).Unwrap().ConfigureAwait(true); maybeImage = maybeRemoteImage; creditText = credit; } diff --git a/Daybreak/Services/Startup/Actions/CredentialsOptionsMigrator.cs b/Daybreak/Services/Startup/Actions/CredentialsOptionsMigrator.cs index 0a4d3dde..b26e6366 100644 --- a/Daybreak/Services/Startup/Actions/CredentialsOptionsMigrator.cs +++ b/Daybreak/Services/Startup/Actions/CredentialsOptionsMigrator.cs @@ -5,6 +5,7 @@ using Newtonsoft.Json.Linq; using System; using System.Core.Extensions; +using System.Extensions; using System.Reflection; namespace Daybreak.Services.Startup.Actions; @@ -25,12 +26,20 @@ public CredentialsOptionsMigrator( public override void ExecuteOnStartup() { + var newOptionsKey = GetNewOptionsKey(); + var scopedLogger = this.logger.CreateScopedLogger(nameof(this.ExecuteOnStartup), string.Empty); + if (this.optionsProvider.TryGetKeyedOptions(newOptionsKey) is JObject) + { + scopedLogger.LogDebug($"Found [{newOptionsKey}]. No migration needed"); + return; + } + if (this.optionsProvider.TryGetKeyedOptions(OldOptionsKey) is not JObject options) { + scopedLogger.LogDebug($"Could not find [{OldOptionsKey}]. No migration possible"); return; } - var newOptionsKey = GetNewOptionsKey(); this.logger.LogInformation($"Found [{OldOptionsKey}]. Migrating options to [{newOptionsKey}]"); this.optionsProvider.SaveRegisteredOptions(newOptionsKey, options); } diff --git a/Daybreak/Services/TradeChat/TradeAlertingService.cs b/Daybreak/Services/TradeChat/TradeAlertingService.cs index 11494c7d..3befbf73 100644 --- a/Daybreak/Services/TradeChat/TradeAlertingService.cs +++ b/Daybreak/Services/TradeChat/TradeAlertingService.cs @@ -134,9 +134,9 @@ private async void StartAlertingService(CancellationToken cancellationToken) } await Task.WhenAll( - this.CheckTraderQuotes(cancellationToken), - this.CheckLiveTrades(this.kamadanTradeChatService, TraderSource.Kamadan, cancellationToken), - this.CheckLiveTrades(this.ascalonTradeChatService, TraderSource.Ascalon, cancellationToken)); + new TaskFactory().StartNew(() => this.CheckTraderQuotes(cancellationToken), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current).Unwrap(), + new TaskFactory().StartNew(() => this.CheckLiveTrades(this.kamadanTradeChatService, TraderSource.Kamadan, cancellationToken), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current).Unwrap(), + new TaskFactory().StartNew(() => this.CheckLiveTrades(this.ascalonTradeChatService, TraderSource.Ascalon, cancellationToken), cancellationToken, TaskCreationOptions.LongRunning, TaskScheduler.Current).Unwrap()); } private async Task CheckLiveTrades(ITradeChatService tradeChatService, TraderSource traderSource, CancellationToken cancellationToken) diff --git a/GWCA b/GWCA index f424ed46..2e2bf319 160000 --- a/GWCA +++ b/GWCA @@ -1 +1 @@ -Subproject commit f424ed4612f5514a6e9d8f500164d5f1242d033e +Subproject commit 2e2bf3192f16e14e4221a63211f22440037bddd1