From 8585ea1da47c3a49abaeb9d697f721e02b0580d7 Mon Sep 17 00:00:00 2001 From: CyberL1 Date: Sat, 11 May 2024 10:39:05 +0200 Subject: [PATCH] feat: server online check --- MyMcRealms/Controllers/WorldsController.cs | 59 ++++++++++--------- .../MyMcAPI/Responses/AllServersResponse.cs | 1 + 2 files changed, 32 insertions(+), 28 deletions(-) diff --git a/MyMcRealms/Controllers/WorldsController.cs b/MyMcRealms/Controllers/WorldsController.cs index 3639eeb..fbaff44 100644 --- a/MyMcRealms/Controllers/WorldsController.cs +++ b/MyMcRealms/Controllers/WorldsController.cs @@ -38,36 +38,39 @@ namespace MyMcRealms.Controllers foreach (var world in AllServers.Servers) { - int versionsCompared = SemVersion.Parse(gameVerision, SemVersionStyles.OptionalPatch).ComparePrecedenceTo(SemVersion.Parse(world.GameVersion, SemVersionStyles.OptionalPatch)); - string isCompatible = versionsCompared == 0 ? "COMPATIBLE" : versionsCompared < 0 ? "NEEDS_DOWNGRADE" : "NEEDS_UPGRADE"; - - bool isOlderVersion = SemVersion.Parse(gameVerision, SemVersionStyles.OptionalPatch).ComparePrecedenceTo(SemVersion.Parse("1.20.3", SemVersionStyles.OptionalPatch)) < 0; - string isCompatibleOnOlderVersions = (isOlderVersion && isCompatible.StartsWith("NEEDS_")) ? "CLOSED" : "OPEN"; - - WorldResponse response = new() + if (world.Online) { - Id = AllServers.Servers.IndexOf(world), - Owner = "Owner", - OwnerUUID = "069a79f444e94726a5befca90e38aaf5", - Name = world.ServerName, - Motd = world.Motd, - State = isCompatibleOnOlderVersions, - WorldType = "NORMAL", - MaxPlayers = 10, - MinigameId = null, - MinigameName = null, - MinigameImage = null, - ActiveSlot = 1, - Member = false, - Players = [], - DaysLeft = 0, - Expired = false, - ExpiredTrial = false, - Compatibility = isCompatible, - ActiveVersion = world.GameVersion - }; + int versionsCompared = SemVersion.Parse(gameVerision, SemVersionStyles.OptionalPatch).ComparePrecedenceTo(SemVersion.Parse(world.GameVersion, SemVersionStyles.OptionalPatch)); + string isCompatible = versionsCompared == 0 ? "COMPATIBLE" : versionsCompared < 0 ? "NEEDS_DOWNGRADE" : "NEEDS_UPGRADE"; - allWorlds.Add(response); + bool isOlderVersion = SemVersion.Parse(gameVerision, SemVersionStyles.OptionalPatch).ComparePrecedenceTo(SemVersion.Parse("1.20.3", SemVersionStyles.OptionalPatch)) < 0; + string isCompatibleOnOlderVersions = (isOlderVersion && isCompatible.StartsWith("NEEDS_")) ? "CLOSED" : "OPEN"; + + WorldResponse response = new() + { + Id = AllServers.Servers.IndexOf(world), + Owner = "Owner", + OwnerUUID = "069a79f444e94726a5befca90e38aaf5", + Name = world.ServerName, + Motd = world.Motd, + State = isCompatibleOnOlderVersions, + WorldType = "NORMAL", + MaxPlayers = 10, + MinigameId = null, + MinigameName = null, + MinigameImage = null, + ActiveSlot = 1, + Member = false, + Players = [], + DaysLeft = 0, + Expired = false, + ExpiredTrial = false, + Compatibility = isCompatible, + ActiveVersion = world.GameVersion + }; + + allWorlds.Add(response); + } } ServersResponse servers = new() diff --git a/MyMcRealms/MyMcAPI/Responses/AllServersResponse.cs b/MyMcRealms/MyMcAPI/Responses/AllServersResponse.cs index f80028d..2e47c18 100644 --- a/MyMcRealms/MyMcAPI/Responses/AllServersResponse.cs +++ b/MyMcRealms/MyMcAPI/Responses/AllServersResponse.cs @@ -13,5 +13,6 @@ namespace MyMcRealms.MyMcAPI.Responses public string Connect { get; set; } = string.Empty; public string GameVersion { get; set; } = string.Empty; public string Motd { get; set; } = string.Empty; + public bool Online { get; set; } } }