From 3d744ccefe754788d74f2519ae205668cf4b60c5 Mon Sep 17 00:00:00 2001 From: AlexDev_ <56083016+alexdev03@users.noreply.github.com> Date: Mon, 19 Feb 2024 14:55:13 +0100 Subject: [PATCH] Added skip for compatibility check (#162) --- .../velocitab/config/ConfigProvider.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/net/william278/velocitab/config/ConfigProvider.java b/src/main/java/net/william278/velocitab/config/ConfigProvider.java index c9195e5..41bf739 100644 --- a/src/main/java/net/william278/velocitab/config/ConfigProvider.java +++ b/src/main/java/net/william278/velocitab/config/ConfigProvider.java @@ -28,10 +28,12 @@ import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.io.InputStream; +import java.lang.management.ManagementFactory; import java.net.URL; import java.nio.charset.StandardCharsets; import java.nio.file.Path; import java.util.Objects; +import java.util.Optional; /** * Interface for getting and setting data from plugin configuration files @@ -128,12 +130,27 @@ public interface ConfigProvider { } default void checkCompatibility() { + if (getSkipCompatibilityCheck().orElse(false)) { + getPlugin().getLogger().warn("Skipping compatibility check"); + return; + } + final Metadata metadata = getMetadata(); final Version proxyVersion = getVelocityVersion(); metadata.validateApiVersion(proxyVersion); metadata.validateBuild(proxyVersion); } + @NotNull + default Optional getSkipCompatibilityCheck() { + return ManagementFactory.getRuntimeMXBean().getInputArguments().stream() + .filter(s -> s.startsWith("-Dvelocitab.skip-compatibility-check=")) + .map(s -> s.substring(s.indexOf('=') + 1)) + .filter(s -> s.equalsIgnoreCase("true") || s.equalsIgnoreCase("false")) + .map(Boolean::parseBoolean) + .findFirst(); + } + @NotNull Version getVelocityVersion();