Compare only major.minor of the client's mod version
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+11
-2
@@ -12,7 +12,16 @@ namespace MSCO.Server;
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public sealed class GameServer
|
public sealed class GameServer
|
||||||
{
|
{
|
||||||
public const string ModVersion = "2.8"; // muss mit MSCO.ModVersion übereinstimmen
|
/// <summary>Netzwerk-Version (= MSCO.ProtocolVersion der Mod). Mods 2.8.x passen dazu (kleine Updates).</summary>
|
||||||
|
public const string ModVersion = "2.8";
|
||||||
|
|
||||||
|
/// <summary>"2.8.3" -> "2.8": kleine Mod-Updates (dritte Stelle) sind kompatibel.</summary>
|
||||||
|
public static string Protocol(string version)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(version)) return "";
|
||||||
|
string[] parts = version.Trim().Split('.');
|
||||||
|
return parts.Length >= 2 ? parts[0] + "." + parts[1] : version.Trim();
|
||||||
|
}
|
||||||
public const int ServerId = 0; // Absender-ID des Servers; Spieler bekommen 1, 2, ...
|
public const int ServerId = 0; // Absender-ID des Servers; Spieler bekommen 1, 2, ...
|
||||||
|
|
||||||
static string[] SaveFiles => SaveStore.SaveFiles;
|
static string[] SaveFiles => SaveStore.SaveFiles;
|
||||||
@@ -510,7 +519,7 @@ public sealed class GameServer
|
|||||||
c.SteamId = steamId != 0 ? steamId.ToString() : "name:" + c.Name.ToLowerInvariant();
|
c.SteamId = steamId != 0 ? steamId.ToString() : "name:" + c.Name.ToLowerInvariant();
|
||||||
|
|
||||||
// Andere Version ist erlaubt (der Spieler wurde in der Mod schon gewarnt), nur vermerken
|
// Andere Version ist erlaubt (der Spieler wurde in der Mod schon gewarnt), nur vermerken
|
||||||
if (version != ModVersion) Log($"{c.Name} uses MSCO {version} (server {ModVersion}) - syncing may not work correctly");
|
if (Protocol(version) != ModVersion) Log($"{c.Name} uses MSCO {version} (server {ModVersion}) - syncing may not work correctly");
|
||||||
if (config.BannedSteamIds.Contains(c.SteamId)) { Reject(c, "You are banned from this server"); return; }
|
if (config.BannedSteamIds.Contains(c.SteamId)) { Reject(c, "You are banned from this server"); return; }
|
||||||
if (JoinedCount >= config.MaxPlayers) { Reject(c, "Server is full"); return; }
|
if (JoinedCount >= config.MaxPlayers) { Reject(c, "Server is full"); return; }
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user