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" />
-
-
+
+
-
-
+
+
-
diff --git a/src/StatisticsAnalysisTool/ViewModels/MainWindowViewModel.cs b/src/StatisticsAnalysisTool/ViewModels/MainWindowViewModel.cs
index 1824caec5..8b33f7b9d 100644
--- a/src/StatisticsAnalysisTool/ViewModels/MainWindowViewModel.cs
+++ b/src/StatisticsAnalysisTool/ViewModels/MainWindowViewModel.cs
@@ -118,6 +118,7 @@ public class MainWindowViewModel : INotifyPropertyChanged
private double _toolTaskProgressBarValue;
private string _toolTaskCurrentTaskName;
private ToolTaskBindings _toolTaskBindings = new();
+ private string _serverTypeText;
public MainWindowViewModel()
{
@@ -260,6 +261,8 @@ public async Task InitAsync()
GridTryToLoadTheItemJsonAgainVisibility = Visibility.Collapsed;
GridTryToLoadTheMobsJsonAgainVisibility = Visibility.Collapsed;
+ ServerTypeText = LanguageController.Translation("UNKNOWN_SERVER");
+
if (!ItemController.IsItemsLoaded())
{
var itemListTaskTextObject = new TaskTextObject(LanguageController.Translation("GET_ITEM_LIST_JSON"));
@@ -1454,7 +1457,6 @@ public ObservableCollection EnteredCluster
}
}
-
public Visibility ErrorBarVisibility
{
get => _errorBarVisibility;
@@ -1465,6 +1467,16 @@ public Visibility ErrorBarVisibility
}
}
+ public string ServerTypeText
+ {
+ get => _serverTypeText;
+ set
+ {
+ _serverTypeText = value;
+ OnPropertyChanged();
+ }
+ }
+
public string ErrorBarText
{
get => _errorBarText;
diff --git a/src/StatisticsAnalysisTool/ViewModels/SettingsWindowViewModel.cs b/src/StatisticsAnalysisTool/ViewModels/SettingsWindowViewModel.cs
index a5e4ca586..d46b17967 100644
--- a/src/StatisticsAnalysisTool/ViewModels/SettingsWindowViewModel.cs
+++ b/src/StatisticsAnalysisTool/ViewModels/SettingsWindowViewModel.cs
@@ -4,7 +4,6 @@
using StatisticsAnalysisTool.Enumerations;
using StatisticsAnalysisTool.Models;
using StatisticsAnalysisTool.Models.TranslationModel;
-using StatisticsAnalysisTool.Properties;
using StatisticsAnalysisTool.Views;
using System;
using System.Collections.Generic;
@@ -34,8 +33,8 @@ public class SettingsWindowViewModel : INotifyPropertyChanged
private bool _isOpenItemWindowInNewWindowChecked;
private bool _showInfoWindowOnStartChecked;
private SettingsWindowTranslation _translation;
- private string _cityPricesApiUrl;
- private string _cityPricesHistoryApiUrl;
+ private string _albionDataProjectBaseUrlWest;
+ private string _albionDataProjectBaseUrlEast;
private string _goldStatsApiUrl;
private bool _isLootLoggerSaveReminderActive;
private string _itemsJsonSourceUrl;
@@ -81,9 +80,8 @@ private void InitializeSettings()
InitAlertSounds();
// Api urls
- CityPricesApiUrl = SettingsController.CurrentSettings.CityPricesApiUrl;
- CityPricesHistoryApiUrl = SettingsController.CurrentSettings.CityPricesHistoryApiUrl;
- GoldStatsApiUrl = SettingsController.CurrentSettings.GoldStatsApiUrl;
+ AlbionDataProjectBaseUrlWest = SettingsController.CurrentSettings.AlbionDataProjectBaseUrlWest;
+ AlbionDataProjectBaseUrlEast = SettingsController.CurrentSettings.AlbionDataProjectBaseUrlEast;
// Loot logger
IsLootLoggerSaveReminderActive = SettingsController.CurrentSettings.IsLootLoggerSaveReminderActive;
@@ -118,9 +116,8 @@ public void SaveSettings()
LanguageController.CurrentCultureInfo = new CultureInfo(LanguagesSelection.FileName);
LanguageController.SetLanguage();
- SettingsController.CurrentSettings.CityPricesApiUrl = string.IsNullOrEmpty(CityPricesApiUrl) ? Settings.Default.CityPricesApiUrlDefault : CityPricesApiUrl;
- SettingsController.CurrentSettings.CityPricesHistoryApiUrl = string.IsNullOrEmpty(CityPricesHistoryApiUrl) ? Settings.Default.CityPricesHistoryApiUrlDefault : CityPricesHistoryApiUrl;
- SettingsController.CurrentSettings.GoldStatsApiUrl = string.IsNullOrEmpty(GoldStatsApiUrl) ? Settings.Default.GoldStatsApiUrlDefault : GoldStatsApiUrl;
+ SettingsController.CurrentSettings.AlbionDataProjectBaseUrlWest = AlbionDataProjectBaseUrlWest;
+ SettingsController.CurrentSettings.AlbionDataProjectBaseUrlEast = AlbionDataProjectBaseUrlEast;
SettingsController.CurrentSettings.IsLootLoggerSaveReminderActive = IsLootLoggerSaveReminderActive;
SettingsController.CurrentSettings.IsSuggestPreReleaseUpdatesActive = IsSuggestPreReleaseUpdatesActive;
@@ -503,22 +500,22 @@ public bool ShowInfoWindowOnStartChecked
}
}
- public string CityPricesApiUrl
+ public string AlbionDataProjectBaseUrlWest
{
- get => _cityPricesApiUrl;
+ get => _albionDataProjectBaseUrlWest;
set
{
- _cityPricesApiUrl = value;
+ _albionDataProjectBaseUrlWest = value;
OnPropertyChanged();
}
}
- public string CityPricesHistoryApiUrl
+ public string AlbionDataProjectBaseUrlEast
{
- get => _cityPricesHistoryApiUrl;
+ get => _albionDataProjectBaseUrlEast;
set
{
- _cityPricesHistoryApiUrl = value;
+ _albionDataProjectBaseUrlEast = value;
OnPropertyChanged();
}
}
diff --git a/src/StatisticsAnalysisTool/Views/MainWindow.xaml b/src/StatisticsAnalysisTool/Views/MainWindow.xaml
index b3bb4d781..a3965cb0c 100644
--- a/src/StatisticsAnalysisTool/Views/MainWindow.xaml
+++ b/src/StatisticsAnalysisTool/Views/MainWindow.xaml
@@ -34,6 +34,8 @@
+