diff --git a/src/ARKServerManager/ARKServerManager.csproj b/src/ARKServerManager/ARKServerManager.csproj index e766e281..b748599d 100644 --- a/src/ARKServerManager/ARKServerManager.csproj +++ b/src/ARKServerManager/ARKServerManager.csproj @@ -232,6 +232,8 @@ + + diff --git a/src/ARKServerManager/Lib/ServerRuntime.cs b/src/ARKServerManager/Lib/ServerRuntime.cs index 122c7cad..87a98018 100644 --- a/src/ARKServerManager/Lib/ServerRuntime.cs +++ b/src/ARKServerManager/Lib/ServerRuntime.cs @@ -237,7 +237,7 @@ namespace ServerManagerTool.Lib public string GetServerLauncherFile() => Path.Combine(this.ProfileSnapshot.InstallDirectory, Config.Default.ServerConfigRelativePath, Config.Default.LauncherFile); - private void ProcessStatusUpdate(IAsyncDisposable registration, ServerStatusWatcher.ServerStatusUpdate update) + private void ProcessStatusUpdate(IAsyncDisposable registration, ServerStatusUpdate update) { if(!Object.ReferenceEquals(registration, this.updateRegistration)) { diff --git a/src/ARKServerManager/Lib/ServerStatusUpdate.cs b/src/ARKServerManager/Lib/ServerStatusUpdate.cs new file mode 100644 index 00000000..ae455874 --- /dev/null +++ b/src/ARKServerManager/Lib/ServerStatusUpdate.cs @@ -0,0 +1,13 @@ +using System.Diagnostics; +using ServerManagerTool.Enums; + +namespace ServerManagerTool.Lib +{ + public struct ServerStatusUpdate + { + public Process Process; + public WatcherServerStatus Status; + public QueryMaster.ServerInfo ServerInfo; + public int OnlinePlayerCount; + } +} diff --git a/src/ARKServerManager/Lib/ServerStatusUpdateRegistration.cs b/src/ARKServerManager/Lib/ServerStatusUpdateRegistration.cs new file mode 100644 index 00000000..debe1b12 --- /dev/null +++ b/src/ARKServerManager/Lib/ServerStatusUpdateRegistration.cs @@ -0,0 +1,23 @@ +using System; +using System.Net; +using System.Threading.Tasks; +using ServerManagerTool.Common.Interfaces; + +namespace ServerManagerTool.Lib +{ + public class ServerStatusUpdateRegistration : IAsyncDisposable + { + public string InstallDirectory; + public IPEndPoint LocalEndpoint; + public IPEndPoint SteamEndpoint; + public Action UpdateCallback; + public Func UnregisterAction; + + public string ProfileId; + + public async Task DisposeAsync() + { + await UnregisterAction(); + } + } +} diff --git a/src/ARKServerManager/Lib/ServerStatusWatcher.cs b/src/ARKServerManager/Lib/ServerStatusWatcher.cs index 79cf846d..f2958d83 100644 --- a/src/ARKServerManager/Lib/ServerStatusWatcher.cs +++ b/src/ARKServerManager/Lib/ServerStatusWatcher.cs @@ -1,7 +1,5 @@ -using ServerManagerTool.Common.Interfaces; -using System; +using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; using System.Linq; @@ -9,44 +7,17 @@ using System.Net; using System.Net.Sockets; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; +using NLog; +using ServerManagerTool.Common.Interfaces; +using ServerManagerTool.Common.Utils; +using ServerManagerTool.Enums; namespace ServerManagerTool.Lib { - using NLog; - using ServerManagerTool; - using ServerManagerTool.Common.Utils; - using ServerManagerTool.Enums; - using StatusCallback = Action; - public class ServerStatusWatcher { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - public struct ServerStatusUpdate - { - public Process Process; - public WatcherServerStatus Status; - public QueryMaster.ServerInfo ServerInfo; - public int OnlinePlayerCount; - } - - private class ServerStatusUpdateRegistration : IAsyncDisposable - { - public string InstallDirectory; - public IPEndPoint LocalEndpoint; - public IPEndPoint SteamEndpoint; - public StatusCallback UpdateCallback; - public Func UnregisterAction; - - public string AsmId; - public string ProfileId; - - public async Task DisposeAsync() - { - await UnregisterAction(); - } - } - private readonly List _serverRegistrations = new List(); private readonly ActionBlock> _eventQueue; private readonly Dictionary _nextExternalStatusQuery = new Dictionary(); @@ -72,7 +43,6 @@ namespace ServerManagerTool.Lib { var registration = new ServerStatusUpdateRegistration { - AsmId = Config.Default.ServerManagerUniqueKey, InstallDirectory = installDirectory, ProfileId = profileId, LocalEndpoint = localEndpoint, @@ -212,7 +182,7 @@ namespace ServerManagerTool.Lib } } - private void PostServerStatusUpdate(ServerStatusUpdateRegistration registration, StatusCallback callback, ServerStatusUpdate statusUpdate) + private void PostServerStatusUpdate(ServerStatusUpdateRegistration registration, Action callback, ServerStatusUpdate statusUpdate) { _eventQueue.Post(() => { diff --git a/src/ConanServerManager/Lib/ServerStatusUpdate.cs b/src/ConanServerManager/Lib/ServerStatusUpdate.cs index 10aa1eb1..ae455874 100644 --- a/src/ConanServerManager/Lib/ServerStatusUpdate.cs +++ b/src/ConanServerManager/Lib/ServerStatusUpdate.cs @@ -1,6 +1,5 @@ -using ServerManagerTool.Enums; -using System.Collections.ObjectModel; -using System.Diagnostics; +using System.Diagnostics; +using ServerManagerTool.Enums; namespace ServerManagerTool.Lib { diff --git a/src/ConanServerManager/Lib/ServerStatusUpdateRegistration.cs b/src/ConanServerManager/Lib/ServerStatusUpdateRegistration.cs index fe5b7def..fcd93950 100644 --- a/src/ConanServerManager/Lib/ServerStatusUpdateRegistration.cs +++ b/src/ConanServerManager/Lib/ServerStatusUpdateRegistration.cs @@ -1,7 +1,7 @@ -using ServerManagerTool.Common.Interfaces; -using System; +using System; using System.Net; using System.Threading.Tasks; +using ServerManagerTool.Common.Interfaces; namespace ServerManagerTool.Lib { diff --git a/src/ConanServerManager/Lib/ServerStatusWatcher.cs b/src/ConanServerManager/Lib/ServerStatusWatcher.cs index c78b62e1..a3465c1e 100644 --- a/src/ConanServerManager/Lib/ServerStatusWatcher.cs +++ b/src/ConanServerManager/Lib/ServerStatusWatcher.cs @@ -1,18 +1,16 @@ -using ConanData; -using NLog; -using ServerManagerTool.Common.Interfaces; -using ServerManagerTool.Common.Utils; -using ServerManagerTool.Enums; -using System; +using System; using System.Collections.Generic; -using System.Collections.ObjectModel; using System.Diagnostics; using System.IO; -using System.Linq; using System.Net; using System.Net.Sockets; using System.Threading.Tasks; using System.Threading.Tasks.Dataflow; +using ConanData; +using NLog; +using ServerManagerTool.Common.Interfaces; +using ServerManagerTool.Common.Utils; +using ServerManagerTool.Enums; namespace ServerManagerTool.Lib {