From 2f8a24afaa2173b14368ef9a5cafff958dcd0f0b Mon Sep 17 00:00:00 2001 From: Mist475 <475misterymob@gmail.com> Date: Mon, 10 Jun 2024 10:56:46 +0200 Subject: [PATCH] cleanup version blocker --- .../lunatrius/schematica/Schematica.java | 34 ++++++------------- 1 file changed, 10 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/github/lunatrius/schematica/Schematica.java b/src/main/java/com/github/lunatrius/schematica/Schematica.java index 485074b4..9307f83c 100644 --- a/src/main/java/com/github/lunatrius/schematica/Schematica.java +++ b/src/main/java/com/github/lunatrius/schematica/Schematica.java @@ -14,6 +14,8 @@ import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.event.FMLServerStartingEvent; import cpw.mods.fml.common.network.NetworkCheckHandler; +import cpw.mods.fml.common.versioning.ArtifactVersion; +import cpw.mods.fml.common.versioning.DefaultArtifactVersion; import cpw.mods.fml.relauncher.Side; @Mod( @@ -30,33 +32,17 @@ public class Schematica { @SidedProxy(serverSide = Reference.PROXY_SERVER, clientSide = Reference.PROXY_CLIENT) public static CommonProxy proxy; + private final ArtifactVersion minimumClientJoinVersion = new DefaultArtifactVersion("1.11.0"); + + /** + * Block any clients older than 1.11.0 to ensure the server-client settings are respected + */ + @SuppressWarnings("unused") @NetworkCheckHandler public boolean checkModList(Map versions, Side side) { - if (side == Side.CLIENT) { - if (versions.containsKey("Schematica")) { - String version = versions.get("Schematica"); - String[] splitVersion = version.split("\\."); - boolean isAllowed = false; - - if (splitVersion.length < 3) return false; - - try { - int major = Integer.parseInt(splitVersion[0]); - int rev = Integer.parseInt(splitVersion[1]); - - if (major > 1) { - isAllowed = true; - } else if (major == 1 && rev >= 11) { - isAllowed = true; - } - } catch (NumberFormatException e) { - Reference.logger.warn("Failed to parse client version of " + version); - } - - return isAllowed; - } + if (side == Side.CLIENT && versions.containsKey(Reference.MODID)) { + return minimumClientJoinVersion.compareTo(new DefaultArtifactVersion(versions.get(Reference.MODID))) <= 0; } - return true; }