diff --git a/BeatTogether.DedicatedServer.Instancing/Abstractions/IInstanceRegistry.cs b/BeatTogether.DedicatedServer.Instancing/Abstractions/IInstanceRegistry.cs
index 0511418..bd42a86 100644
--- a/BeatTogether.DedicatedServer.Instancing/Abstractions/IInstanceRegistry.cs
+++ b/BeatTogether.DedicatedServer.Instancing/Abstractions/IInstanceRegistry.cs
@@ -1,6 +1,7 @@
using BeatTogether.Core.Enums;
using BeatTogether.DedicatedServer.Kernel.Abstractions;
using System.Diagnostics.CodeAnalysis;
+using BeatTogether.Core.Models;
namespace BeatTogether.DedicatedServer.Instancing.Abstractions
{
@@ -10,6 +11,6 @@ public interface IInstanceRegistry
public bool RemoveInstance(IDedicatedInstance instance);
public bool TryGetInstance(string secret, [MaybeNullWhen(false)] out IDedicatedInstance instance);
public bool TryGetInstanceByCode(string code, [MaybeNullWhen(false)] out IDedicatedInstance instance);
- public bool TryGetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks, [MaybeNullWhen(false)] out IDedicatedInstance instance);
+ public bool TryGetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks, VersionRange versionRange, [MaybeNullWhen(false)] out IDedicatedInstance instance);
}
}
diff --git a/BeatTogether.DedicatedServer.Instancing/BeatTogether.DedicatedServer.Instancing.csproj b/BeatTogether.DedicatedServer.Instancing/BeatTogether.DedicatedServer.Instancing.csproj
index 2785408..ebae974 100644
--- a/BeatTogether.DedicatedServer.Instancing/BeatTogether.DedicatedServer.Instancing.csproj
+++ b/BeatTogether.DedicatedServer.Instancing/BeatTogether.DedicatedServer.Instancing.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/BeatTogether.DedicatedServer.Instancing/InstanceRegistry.cs b/BeatTogether.DedicatedServer.Instancing/InstanceRegistry.cs
index edf8f68..79e3823 100644
--- a/BeatTogether.DedicatedServer.Instancing/InstanceRegistry.cs
+++ b/BeatTogether.DedicatedServer.Instancing/InstanceRegistry.cs
@@ -4,6 +4,7 @@
using System.Diagnostics.CodeAnalysis;
using BeatTogether.Core.Enums;
using System.Linq;
+using BeatTogether.Core.Models;
namespace BeatTogether.DedicatedServer.Instancing
{
@@ -23,7 +24,7 @@ public bool AddInstance(IDedicatedInstance instance){
public bool RemoveInstance(IDedicatedInstance instance) => _instances.TryRemove(instance._configuration.Secret, out _) && _instancesByCode.TryRemove(instance._configuration.Code, out _);
- public bool TryGetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks, [MaybeNullWhen(false)] out IDedicatedInstance instance)
+ public bool TryGetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks, VersionRange versionRange, [MaybeNullWhen(false)] out IDedicatedInstance instance)
{
instance = null;
var AvaliableServers = _instances.Values.Where(s =>
@@ -33,7 +34,8 @@ public bool TryGetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServe
s._configuration.GameplayServerConfiguration.GameplayServerControlSettings == serverControlSettings &&
s._configuration.BeatmapDifficultyMask == difficultyMask &&
s._configuration.GameplayModifiersMask == modifiersMask &&
- s._configuration.SongPacksMask == songPackMasks
+ s._configuration.SongPacksMask == songPackMasks &&
+ s._configuration.SupportedVersionRange == versionRange
);
if (!AvaliableServers.Any())
return false;
diff --git a/BeatTogether.DedicatedServer.Instancing/LayerService.cs b/BeatTogether.DedicatedServer.Instancing/LayerService.cs
index fd496a7..6926348 100644
--- a/BeatTogether.DedicatedServer.Instancing/LayerService.cs
+++ b/BeatTogether.DedicatedServer.Instancing/LayerService.cs
@@ -6,6 +6,7 @@
using Serilog;
using System.Net;
using System.Threading.Tasks;
+using BeatTogether.Core.Models;
namespace BeatTogether.DedicatedServer.Instancing
{
@@ -50,10 +51,10 @@ public Task DisconnectPlayer(string InstanceSecret, string PlayerUserId)
return Task.CompletedTask;
}
- public Task GetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks)
+ public Task GetAvailablePublicServer(InvitePolicy invitePolicy, GameplayServerMode serverMode, SongSelectionMode songMode, GameplayServerControlSettings serverControlSettings, BeatmapDifficultyMask difficultyMask, GameplayModifiersMask modifiersMask, string songPackMasks, VersionRange versionRange)
{
IServerInstance? serverInstance = null;
- if (_instanceRegistry.TryGetAvailablePublicServer(invitePolicy, serverMode, songMode, serverControlSettings, difficultyMask, modifiersMask, songPackMasks, out var instance))
+ if (_instanceRegistry.TryGetAvailablePublicServer(invitePolicy, serverMode, songMode, serverControlSettings, difficultyMask, modifiersMask, songPackMasks, versionRange, out var instance))
{
serverInstance = new ServerInstance(instance, IPEndPoint.Parse($"{_instancingConfiguration.HostEndpoint}:{instance._configuration.Port}"));
}
diff --git a/BeatTogether.DedicatedServer.Interface/BeatTogether.DedicatedServer.Interface.csproj b/BeatTogether.DedicatedServer.Interface/BeatTogether.DedicatedServer.Interface.csproj
index d8a6cd6..c829173 100644
--- a/BeatTogether.DedicatedServer.Interface/BeatTogether.DedicatedServer.Interface.csproj
+++ b/BeatTogether.DedicatedServer.Interface/BeatTogether.DedicatedServer.Interface.csproj
@@ -17,7 +17,7 @@
-
+
diff --git a/BeatTogether.DedicatedServer.Kernel/BeatTogether.DedicatedServer.Kernel.csproj b/BeatTogether.DedicatedServer.Kernel/BeatTogether.DedicatedServer.Kernel.csproj
index 4a8fb86..30710f3 100644
--- a/BeatTogether.DedicatedServer.Kernel/BeatTogether.DedicatedServer.Kernel.csproj
+++ b/BeatTogether.DedicatedServer.Kernel/BeatTogether.DedicatedServer.Kernel.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/BeatTogether.DedicatedServer.Messaging/BeatTogether.DedicatedServer.Messaging.csproj b/BeatTogether.DedicatedServer.Messaging/BeatTogether.DedicatedServer.Messaging.csproj
index 045384b..4894a99 100644
--- a/BeatTogether.DedicatedServer.Messaging/BeatTogether.DedicatedServer.Messaging.csproj
+++ b/BeatTogether.DedicatedServer.Messaging/BeatTogether.DedicatedServer.Messaging.csproj
@@ -7,7 +7,7 @@
-
+
diff --git a/BeatTogether.DedicatedServer/BeatTogether.DedicatedServer.csproj b/BeatTogether.DedicatedServer/BeatTogether.DedicatedServer.csproj
index 722fe89..7ff2c59 100644
--- a/BeatTogether.DedicatedServer/BeatTogether.DedicatedServer.csproj
+++ b/BeatTogether.DedicatedServer/BeatTogether.DedicatedServer.csproj
@@ -1,4 +1,4 @@
-
+
Exe