diff --git a/src/StatisticsAnalysisTool/App.config b/src/StatisticsAnalysisTool/App.config index 9bdaa9589..ec9909526 100644 --- a/src/StatisticsAnalysisTool/App.config +++ b/src/StatisticsAnalysisTool/App.config @@ -242,15 +242,6 @@ https://discord.com/invite/sahSrSPmaJ - - https://www.albion-online-data.com/api/v2/stats/prices/ - - - https://www.albion-online-data.com/api/v2/stats/history/ - - - https://www.albion-online-data.com/api/v2/stats/Gold - GameFiles diff --git a/src/StatisticsAnalysisTool/Common/ApiController.cs b/src/StatisticsAnalysisTool/Common/ApiController.cs index c1c9ddb42..19cc1d871 100644 --- a/src/StatisticsAnalysisTool/Common/ApiController.cs +++ b/src/StatisticsAnalysisTool/Common/ApiController.cs @@ -7,12 +7,14 @@ using StatisticsAnalysisTool.Properties; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Reflection; using System.Text.Json; using System.Threading.Tasks; +using StatisticsAnalysisTool.Network; namespace StatisticsAnalysisTool.Common; @@ -41,13 +43,13 @@ public static async Task> GetCityItemPricesFromJsonAsync(st return new List(); } - var url = SettingsController.CurrentSettings.CityPricesApiUrl ?? Settings.Default.CityPricesApiUrlDefault; + var url = Path.Combine(GetServerBaseUrlByCurrentServer(), "stats/prices/"); url += uniqueName; if (marketLocations?.Count >= 1) { url += "?locations="; - url = marketLocations.Aggregate(url, (current, location) => current + $"{(int)location},"); + url = marketLocations.Aggregate(url, (current, location) => current + $"{(int) location},"); } if (qualities?.Count >= 1) @@ -65,7 +67,7 @@ public static async Task> GetCityItemPricesFromJsonAsync(st ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; using var response = await client.GetAsync(url); - if (response.StatusCode == (HttpStatusCode)429) + if (response.StatusCode == (HttpStatusCode) 429) { throw new TooManyRequestsException(); } @@ -93,12 +95,12 @@ public static async Task> GetHistoryItemPricesFrom if (locations?.Count > 0) { - locationsString = string.Join(",", locations.Select(x => ((int)x).ToString())); + locationsString = string.Join(",", locations.Select(x => ((int) x).ToString())); } var qualitiesString = quality.ToString(); - var url = SettingsController.CurrentSettings.CityPricesHistoryApiUrl ?? Settings.Default.CityPricesHistoryApiUrlDefault; + var url = Path.Combine(GetServerBaseUrlByCurrentServer(), "stats/history/"); url += uniqueName; url += $"?locations={locationsString}"; url += $"&date={date:M-d-yy}"; @@ -115,7 +117,7 @@ public static async Task> GetHistoryItemPricesFrom ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; using var response = await client.GetAsync(url); using var content = response.Content; - if (response.StatusCode == (HttpStatusCode)429) + if (response.StatusCode == (HttpStatusCode) 429) { throw new TooManyRequestsException(); } @@ -326,7 +328,9 @@ public static async Task> GetGameInfoPlayerSoloK public static async Task> GetGoldPricesFromJsonAsync(DateTime? dateTime, int count, int timeout = 300) { var dateString = dateTime != null ? $"{dateTime:yyyy-MM-dd'T'HH:mm:ss}" : string.Empty; - var url = $"{SettingsController.CurrentSettings.GoldStatsApiUrl ?? Settings.Default.GoldStatsApiUrlDefault}?date={dateString}&count={count}"; + + var url = Path.Combine(GetServerBaseUrlByCurrentServer(), "stats/Gold/"); + url += $"?date={dateString}&count={count}"; using var clientHandler = new HttpClientHandler(); clientHandler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true; @@ -553,5 +557,15 @@ private static MarketResponse MergeMarketAndPortalPrices(List li #endregion + private static string GetServerBaseUrlByCurrentServer() + { + return NetworkManager.AlbionServer switch + { + AlbionServer.West => SettingsController.CurrentSettings.AlbionDataProjectBaseUrlWest, + AlbionServer.East => SettingsController.CurrentSettings.AlbionDataProjectBaseUrlEast, + _ => SettingsController.CurrentSettings.AlbionDataProjectBaseUrlWest + }; + } + #endregion } \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Common/UserSettings/SettingsObject.cs b/src/StatisticsAnalysisTool/Common/UserSettings/SettingsObject.cs index 005a8a6cd..5e5f3dc4d 100644 --- a/src/StatisticsAnalysisTool/Common/UserSettings/SettingsObject.cs +++ b/src/StatisticsAnalysisTool/Common/UserSettings/SettingsObject.cs @@ -17,9 +17,8 @@ public class SettingsObject public bool IsOpenItemWindowInNewWindowChecked { get; set; } = true; public bool IsInfoWindowShownOnStart { get; set; } = true; public string SelectedAlertSound { get; set; } - public string CityPricesApiUrl { get; set; } = "https://www.albion-online-data.com/api/v2/stats/prices/"; - public string CityPricesHistoryApiUrl { get; set; } = "https://www.albion-online-data.com/api/v2/stats/history/"; - public string GoldStatsApiUrl { get; set; } = "https://www.albion-online-data.com/api/v2/stats/Gold"; + public string AlbionDataProjectBaseUrlWest { get; set; } = "https://albion-online-data.com/api/v2/"; + public string AlbionDataProjectBaseUrlEast { get; set; } = "https://east.albion-online-data.com/api/v2/"; public double MainWindowHeight { get; set; } = 100; public double MainWindowWidth { get; set; } = 100; public bool MainWindowMaximized { get; set; } diff --git a/src/StatisticsAnalysisTool/Enumerations/AlbionServer.cs b/src/StatisticsAnalysisTool/Enumerations/AlbionServer.cs new file mode 100644 index 000000000..ad4f9675a --- /dev/null +++ b/src/StatisticsAnalysisTool/Enumerations/AlbionServer.cs @@ -0,0 +1,8 @@ +namespace StatisticsAnalysisTool.Enumerations; + +public enum AlbionServer +{ + Unknown, + West, + East +} \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Enumerations/TreasureType.cs b/src/StatisticsAnalysisTool/Enumerations/TreasureType.cs index f02b77a3a..29a53b7f5 100644 --- a/src/StatisticsAnalysisTool/Enumerations/TreasureType.cs +++ b/src/StatisticsAnalysisTool/Enumerations/TreasureType.cs @@ -9,5 +9,6 @@ public enum TreasureType HellGate, Corrupted, StaticDungeon, - Avalon + Avalon, + Mist } \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Languages/de-DE.xml b/src/StatisticsAnalysisTool/Languages/de-DE.xml index fd0c7b8a6..114ee07f4 100644 --- a/src/StatisticsAnalysisTool/Languages/de-DE.xml +++ b/src/StatisticsAnalysisTool/Languages/de-DE.xml @@ -700,4 +700,10 @@ Ressourcenwert Gesammter Marktwert Navigation Tab Sichtbarkeit + Server + Unbekannter Server + West Server + Ost Server + Albion data project base url WEST + Albion data project base url OST \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Languages/en-US.xml b/src/StatisticsAnalysisTool/Languages/en-US.xml index 044bc0402..a94752ca3 100644 --- a/src/StatisticsAnalysisTool/Languages/en-US.xml +++ b/src/StatisticsAnalysisTool/Languages/en-US.xml @@ -700,4 +700,10 @@ Resource value Total market value Navigation tab visibility + Server + Unknown Server + West Server + East Server + Albion data project base url WEST + Albion data project base url EAST \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Models/LootedChests.cs b/src/StatisticsAnalysisTool/Models/LootedChests.cs index 4fbccd104..c65742375 100644 --- a/src/StatisticsAnalysisTool/Models/LootedChests.cs +++ b/src/StatisticsAnalysisTool/Models/LootedChests.cs @@ -1,7 +1,7 @@ -using System.ComponentModel; -using System.Runtime.CompilerServices; -using StatisticsAnalysisTool.Common; +using StatisticsAnalysisTool.Common; using StatisticsAnalysisTool.Properties; +using System.ComponentModel; +using System.Runtime.CompilerServices; namespace StatisticsAnalysisTool.Models; @@ -39,6 +39,14 @@ public class LootedChests : INotifyPropertyChanged private int _hellGatesEpicMonth; private int _hellGatesLegendaryWeek; private int _hellGatesLegendaryMonth; + private int _mistCommonWeek; + private int _mistCommonMonth; + private int _mistUncommonWeek; + private int _mistUncommonMonth; + private int _mistEpicWeek; + private int _mistEpicMonth; + private int _mistLegendaryWeek; + private int _mistLegendaryMonth; private int _outlandsCommonYear; private int _outlandsUncommonYear; private int _outlandsEpicYear; @@ -55,6 +63,10 @@ public class LootedChests : INotifyPropertyChanged private int _hellGatesUncommonYear; private int _hellGatesEpicYear; private int _hellGatesLegendaryYear; + private int _mistCommonYear; + private int _mistUncommonYear; + private int _mistEpicYear; + private int _mistLegendaryYear; private int _randomSoloDungeonCommonWeek; private int _randomSoloDungeonCommonMonth; private int _randomSoloDungeonCommonYear; @@ -437,7 +449,7 @@ public int RandomSoloDungeonLegendaryYear OnPropertyChanged(); } } - + #endregion #region Avalonian Road bindings @@ -688,6 +700,130 @@ public int HellGateLegendaryYear #endregion + #region Mist bindings + + public int MistCommonWeek + { + get => _mistCommonWeek; + set + { + _mistCommonWeek = value; + OnPropertyChanged(); + } + } + + public int MistCommonMonth + { + get => _mistCommonMonth; + set + { + _mistCommonMonth = value; + OnPropertyChanged(); + } + } + + public int MistCommonYear + { + get => _mistCommonYear; + set + { + _mistCommonYear = value; + OnPropertyChanged(); + } + } + + public int MistUncommonWeek + { + get => _mistUncommonWeek; + set + { + _mistUncommonWeek = value; + OnPropertyChanged(); + } + } + + public int MistUncommonMonth + { + get => _mistUncommonMonth; + set + { + _mistUncommonMonth = value; + OnPropertyChanged(); + } + } + + public int MistUncommonYear + { + get => _mistUncommonYear; + set + { + _mistUncommonYear = value; + OnPropertyChanged(); + } + } + + public int MistEpicWeek + { + get => _mistEpicWeek; + set + { + _mistEpicWeek = value; + OnPropertyChanged(); + } + } + + public int MistEpicMonth + { + get => _mistEpicMonth; + set + { + _mistEpicMonth = value; + OnPropertyChanged(); + } + } + + public int MistEpicYear + { + get => _mistEpicYear; + set + { + _mistEpicYear = value; + OnPropertyChanged(); + } + } + + public int MistLegendaryWeek + { + get => _mistLegendaryWeek; + set + { + _mistLegendaryWeek = value; + OnPropertyChanged(); + } + } + + public int MistLegendaryMonth + { + get => _mistLegendaryMonth; + set + { + _mistLegendaryMonth = value; + OnPropertyChanged(); + } + } + + public int MistLegendaryYear + { + get => _mistLegendaryYear; + set + { + _mistLegendaryYear = value; + OnPropertyChanged(); + } + } + + #endregion + public static string TranslationLootedChests => LanguageController.Translation("LOOTED_CHESTS"); public static string TranslationOpenWorld => LanguageController.Translation("OPEN_WORLD"); public static string TranslationStaticDungeons => LanguageController.Translation("STATIC_DUNGEONS"); @@ -695,6 +831,7 @@ public int HellGateLegendaryYear public static string TranslationRandomSoloDungeons => LanguageController.Translation("RANDOM_SOLO_DUNGEONS"); public static string TranslationRandomGroupDungeons => LanguageController.Translation("RANDOM_GROUP_DUNGEONS"); public static string TranslationHellGates => LanguageController.Translation("HELLGATES"); + public static string TranslationMists => LanguageController.Translation("MISTS"); public static string TranslationLast7Days => LanguageController.Translation("LAST_7_DAYS"); public static string TranslationLast30Days => LanguageController.Translation("LAST_30_DAYS"); public static string TranslationLast365Days => LanguageController.Translation("LAST_365_DAYS"); diff --git a/src/StatisticsAnalysisTool/Models/TranslationModel/SettingsWindowTranslation.cs b/src/StatisticsAnalysisTool/Models/TranslationModel/SettingsWindowTranslation.cs index ac6826aba..b346273e7 100644 --- a/src/StatisticsAnalysisTool/Models/TranslationModel/SettingsWindowTranslation.cs +++ b/src/StatisticsAnalysisTool/Models/TranslationModel/SettingsWindowTranslation.cs @@ -22,8 +22,8 @@ public class SettingsWindowTranslation public static string OpenToolDirectory => LanguageController.Translation("OPEN_TOOL_DIRECTORY"); public static string OpenDebugConsole => LanguageController.Translation("OPEN_DEBUG_CONSOLE"); public static string CreateDesktopShortcut => LanguageController.Translation("CREATE_DESKTOP_SHORTCUT"); - public static string CityPricesApiUrl => LanguageController.Translation("CITY_PRICES_API_URL"); - public static string CityPricesHistoryApiUrl => LanguageController.Translation("CITY_PRICES_HISTORY_API_URL"); + public static string AlbionDataProjectBaseUrlWest => LanguageController.Translation("ALBION_DATA_PROJECT_BASE_URL_WEST"); + public static string AlbionDataProjectBaseUrlEast => LanguageController.Translation("ALBION_DATA_PROJECT_BASE_URL_EAST"); public static string GoldStatsApiUrl => LanguageController.Translation("GOLD_STATS_API_URL"); public static string IsLootLoggerSaveReminderActive => LanguageController.Translation("IS_LOOT_LOGGER_SAVE_REMINDER_ACTIVE"); public static string ExportLootLoggingFileWithRealItemName => LanguageController.Translation("EXPORT_LOOT_LOGGING_FILE_WITH_REAL_ITEM_NAME"); diff --git a/src/StatisticsAnalysisTool/Network/Manager/TreasureController.cs b/src/StatisticsAnalysisTool/Network/Manager/TreasureController.cs index 1bff35144..0e881ac74 100644 --- a/src/StatisticsAnalysisTool/Network/Manager/TreasureController.cs +++ b/src/StatisticsAnalysisTool/Network/Manager/TreasureController.cs @@ -1,7 +1,6 @@ using StatisticsAnalysisTool.Common; using StatisticsAnalysisTool.Enumerations; using StatisticsAnalysisTool.Models; -using StatisticsAnalysisTool.Models.NetworkModel; using StatisticsAnalysisTool.Properties; using StatisticsAnalysisTool.ViewModels; using System; @@ -166,6 +165,23 @@ private void UpdateLootedChestsDashboardUi(object sender, NotifyCollectionChange _mainWindowViewModel.DashboardBindings.LootedChests.HellGateLegendaryYear = GetStats(TreasureRarity.Legendary, TreasureType.HellGate, -365); #endregion + + #region Mist + + _mainWindowViewModel.DashboardBindings.LootedChests.MistCommonWeek = GetStats(TreasureRarity.Standard, TreasureType.Mist, -7); + _mainWindowViewModel.DashboardBindings.LootedChests.MistCommonMonth = GetStats(TreasureRarity.Standard, TreasureType.Mist, -30); + _mainWindowViewModel.DashboardBindings.LootedChests.MistCommonYear = GetStats(TreasureRarity.Standard, TreasureType.Mist, -365); + _mainWindowViewModel.DashboardBindings.LootedChests.MistUncommonWeek = GetStats(TreasureRarity.Uncommon, TreasureType.Mist, -7); + _mainWindowViewModel.DashboardBindings.LootedChests.MistUncommonMonth = GetStats(TreasureRarity.Uncommon, TreasureType.Mist, -30); + _mainWindowViewModel.DashboardBindings.LootedChests.MistUncommonYear = GetStats(TreasureRarity.Uncommon, TreasureType.Mist, -365); + _mainWindowViewModel.DashboardBindings.LootedChests.MistEpicWeek = GetStats(TreasureRarity.Rare, TreasureType.Mist, -7); + _mainWindowViewModel.DashboardBindings.LootedChests.MistEpicMonth = GetStats(TreasureRarity.Rare, TreasureType.Mist, -30); + _mainWindowViewModel.DashboardBindings.LootedChests.MistEpicYear = GetStats(TreasureRarity.Rare, TreasureType.Mist, -365); + _mainWindowViewModel.DashboardBindings.LootedChests.MistLegendaryWeek = GetStats(TreasureRarity.Legendary, TreasureType.Mist, -7); + _mainWindowViewModel.DashboardBindings.LootedChests.MistLegendaryMonth = GetStats(TreasureRarity.Legendary, TreasureType.Mist, -30); + _mainWindowViewModel.DashboardBindings.LootedChests.MistLegendaryYear = GetStats(TreasureRarity.Legendary, TreasureType.Mist, -365); + + #endregion } #region Helper methods @@ -217,6 +233,11 @@ private static TreasureType GetTreasureType(string input) { var inputArray = input.Split("_"); + if (inputArray.Any(x => x == "MISTS")) + { + return TreasureType.Mist; + } + if (inputArray.Any(x => x == "TREASURE")) { return TreasureType.OpenWorld; diff --git a/src/StatisticsAnalysisTool/Network/NetworkManager.cs b/src/StatisticsAnalysisTool/Network/NetworkManager.cs index 2264c892e..83954e0e0 100644 --- a/src/StatisticsAnalysisTool/Network/NetworkManager.cs +++ b/src/StatisticsAnalysisTool/Network/NetworkManager.cs @@ -2,6 +2,7 @@ using PacketDotNet; using SharpPcap; using StatisticsAnalysisTool.Common; +using StatisticsAnalysisTool.Enumerations; using StatisticsAnalysisTool.Network.Handler; using StatisticsAnalysisTool.Network.Manager; using StatisticsAnalysisTool.ViewModels; @@ -9,6 +10,7 @@ using System.Collections.Generic; using System.Linq; using System.Reflection; +using System.Threading.Tasks; using System.Windows; namespace StatisticsAnalysisTool.Network; @@ -18,9 +20,13 @@ public class NetworkManager private static IPhotonReceiver _receiver; private static readonly List CapturedDevices = new(); private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod()?.DeclaringType); + private static DateTime _lastGetCurrentServerByIpTime = DateTime.MinValue; + private static int _serverEventCounter; + private static AlbionServer _lastServerType; + public static AlbionServer AlbionServer { get; private set; } = AlbionServer.Unknown; public static bool IsNetworkCaptureRunning => CapturedDevices.Where(device => device.Started).Any(device => device.Started); - + public static bool StartNetworkCapture(TrackingController trackingController) { ReceiverBuilder builder = ReceiverBuilder.Create(); @@ -82,7 +88,7 @@ public static bool StartNetworkCapture(TrackingController trackingController) builder.AddResponseHandler(new AuctionGetResponseHandler(trackingController)); _receiver = builder.Build(); - + try { CapturedDevices.AddRange(CaptureDeviceList.Instance); @@ -107,7 +113,7 @@ public static bool StartNetworkCapture(TrackingController trackingController) return false; } } - + private static bool StartDeviceCapture() { if (CapturedDevices.Count <= 0) @@ -137,7 +143,7 @@ private static bool StartDeviceCapture() { Log.Error(MethodBase.GetCurrentMethod()?.DeclaringType + " - MainWindowViewModel is null."); } - + return false; } @@ -173,6 +179,14 @@ private static void Device_OnPacketArrival(object sender, PacketCapture e) { try { + var server = GetCurrentServerByIp(e); + _ = UpdateMainWindowServerTypeAsync(server); + AlbionServer = server; + if (server == AlbionServer.Unknown) + { + return; + } + var packet = Packet.ParsePacket(e.GetPacket().LinkLayerType, e.GetPacket().Data).Extract(); if (packet != null && (packet.SourcePort == 5056 || packet.DestinationPort == 5056)) { @@ -201,4 +215,69 @@ private static void Device_OnPacketArrival(object sender, PacketCapture e) Log.Error(nameof(Device_OnPacketArrival), ex); } } + + private static AlbionServer GetCurrentServerByIp(PacketCapture e) + { + var packet = Packet.ParsePacket(e.GetPacket().LinkLayerType, e.GetPacket().Data); + var ipPacket = packet.Extract(); + var srcIp = ipPacket?.SourceAddress?.ToString(); + var albionServer = AlbionServer.Unknown; + + if (srcIp == null || string.IsNullOrEmpty(srcIp)) + { + albionServer = AlbionServer.Unknown; + } + else if (srcIp.Contains("5.188.125.")) + { + albionServer = AlbionServer.West; + } + else if (srcIp!.Contains("5.45.187.")) + { + albionServer = AlbionServer.East; + } + + return GetActiveAlbionServer(albionServer); + } + + private static AlbionServer GetActiveAlbionServer(AlbionServer albionServer) + { + if (albionServer != AlbionServer.Unknown && _lastServerType == albionServer) + { + _serverEventCounter++; + } + else if (albionServer != AlbionServer.Unknown) + { + _serverEventCounter = 1; + _lastServerType = albionServer; + } + + if (_serverEventCounter < 20 || albionServer == AlbionServer.Unknown) + { + return _lastServerType; + } + + _serverEventCounter = 20; + return albionServer; + } + + private static async Task UpdateMainWindowServerTypeAsync(AlbionServer albionServer) + { + if ((DateTime.Now - _lastGetCurrentServerByIpTime).TotalSeconds < 10) + { + return; + } + + await Task.Run(() => + { + var mainWindowViewModel = ServiceLocator.Resolve(); + mainWindowViewModel.ServerTypeText = albionServer switch + { + AlbionServer.East => LanguageController.Translation("EAST_SERVER"), + AlbionServer.West => LanguageController.Translation("WEST_SERVER"), + _ => LanguageController.Translation("UNKNOWN_SERVER") + }; + }); + + _lastGetCurrentServerByIpTime = DateTime.Now; + } } \ No newline at end of file diff --git a/src/StatisticsAnalysisTool/Properties/Settings.Designer.cs b/src/StatisticsAnalysisTool/Properties/Settings.Designer.cs index 9df6a51d9..50cdee824 100644 --- a/src/StatisticsAnalysisTool/Properties/Settings.Designer.cs +++ b/src/StatisticsAnalysisTool/Properties/Settings.Designer.cs @@ -202,33 +202,6 @@ public string FavoriteItemsFileName { } } - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://www.albion-online-data.com/api/v2/stats/prices/")] - public string CityPricesApiUrlDefault { - get { - return ((string)(this["CityPricesApiUrlDefault"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://www.albion-online-data.com/api/v2/stats/history/")] - public string CityPricesHistoryApiUrlDefault { - get { - return ((string)(this["CityPricesHistoryApiUrlDefault"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("https://www.albion-online-data.com/api/v2/stats/Gold")] - public string GoldStatsApiUrlDefault { - get { - return ((string)(this["GoldStatsApiUrlDefault"])); - } - } - [global::System.Configuration.ApplicationScopedSettingAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Configuration.DefaultSettingValueAttribute("GameFiles")] diff --git a/src/StatisticsAnalysisTool/Properties/Settings.settings b/src/StatisticsAnalysisTool/Properties/Settings.settings index 9c11ccb1f..b2db6502a 100644 --- a/src/StatisticsAnalysisTool/Properties/Settings.settings +++ b/src/StatisticsAnalysisTool/Properties/Settings.settings @@ -53,15 +53,6 @@ FavoriteItems.json - - https://www.albion-online-data.com/api/v2/stats/prices/ - - - https://www.albion-online-data.com/api/v2/stats/history/ - - - https://www.albion-online-data.com/api/v2/stats/Gold - GameFiles diff --git a/src/StatisticsAnalysisTool/Styles/DashboardStyles.xaml b/src/StatisticsAnalysisTool/Styles/DashboardStyles.xaml index f330c21a5..27975b67d 100644 --- a/src/StatisticsAnalysisTool/Styles/DashboardStyles.xaml +++ b/src/StatisticsAnalysisTool/Styles/DashboardStyles.xaml @@ -253,7 +253,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/StatisticsAnalysisTool/UserControls/SettingsControl.xaml b/src/StatisticsAnalysisTool/UserControls/SettingsControl.xaml index fc49f50de..863dfaea1 100644 --- a/src/StatisticsAnalysisTool/UserControls/SettingsControl.xaml +++ b/src/StatisticsAnalysisTool/UserControls/SettingsControl.xaml @@ -108,17 +108,13 @@ VerticalAlignment="Bottom" Click="OpenDebugConsole_Click" /> - - -