From 1df455699e557232231dc5975ec7fc39c4f76253 Mon Sep 17 00:00:00 2001 From: Cerus Date: Fri, 26 Apr 2024 21:14:12 +0200 Subject: [PATCH] fix: old versions --- api/pom.xml | 2 +- bukkit-16R3/pom.xml | 2 +- bukkit-17R1/pom.xml | 2 +- bukkit-18R1/pom.xml | 2 +- bukkit-18R2/pom.xml | 2 +- bukkit-19R1/pom.xml | 2 +- bukkit-19R2/pom.xml | 2 +- bukkit-19R3/pom.xml | 2 +- bukkit-20R1/pom.xml | 2 +- bukkit-20R2/pom.xml | 2 +- bukkit-20R3/pom.xml | 2 +- bukkit-20R4/pom.xml | 2 +- plugin/pom.xml | 2 +- .../plugin/VisualCraftingPlugin.java | 35 +++++++++++++------ pom.xml | 2 +- 15 files changed, 38 insertions(+), 25 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 5bdec52..e76c51e 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-16R3/pom.xml b/bukkit-16R3/pom.xml index a1babdd..afe0dfc 100644 --- a/bukkit-16R3/pom.xml +++ b/bukkit-16R3/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-17R1/pom.xml b/bukkit-17R1/pom.xml index 73cc835..4d9edc3 100644 --- a/bukkit-17R1/pom.xml +++ b/bukkit-17R1/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-18R1/pom.xml b/bukkit-18R1/pom.xml index ddfab42..0e2bca3 100644 --- a/bukkit-18R1/pom.xml +++ b/bukkit-18R1/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-18R2/pom.xml b/bukkit-18R2/pom.xml index 5a484fc..35b794f 100644 --- a/bukkit-18R2/pom.xml +++ b/bukkit-18R2/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-19R1/pom.xml b/bukkit-19R1/pom.xml index f5a8980..e42e294 100644 --- a/bukkit-19R1/pom.xml +++ b/bukkit-19R1/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-19R2/pom.xml b/bukkit-19R2/pom.xml index bd5f61c..4e8a4e5 100644 --- a/bukkit-19R2/pom.xml +++ b/bukkit-19R2/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/bukkit-19R3/pom.xml b/bukkit-19R3/pom.xml index 26d3252..590b115 100644 --- a/bukkit-19R3/pom.xml +++ b/bukkit-19R3/pom.xml @@ -6,7 +6,7 @@ dev.cerus.visualcrafting parent - 1.3.0 + 1.3.1 bukkit-19R3 diff --git a/bukkit-20R1/pom.xml b/bukkit-20R1/pom.xml index 7cbdc4c..337ee58 100644 --- a/bukkit-20R1/pom.xml +++ b/bukkit-20R1/pom.xml @@ -6,7 +6,7 @@ dev.cerus.visualcrafting parent - 1.3.0 + 1.3.1 bukkit-20R1 diff --git a/bukkit-20R2/pom.xml b/bukkit-20R2/pom.xml index a97e1fd..26ffafd 100644 --- a/bukkit-20R2/pom.xml +++ b/bukkit-20R2/pom.xml @@ -6,7 +6,7 @@ dev.cerus.visualcrafting parent - 1.3.0 + 1.3.1 bukkit-20R2 diff --git a/bukkit-20R3/pom.xml b/bukkit-20R3/pom.xml index 7acd386..dbe426c 100644 --- a/bukkit-20R3/pom.xml +++ b/bukkit-20R3/pom.xml @@ -6,7 +6,7 @@ dev.cerus.visualcrafting parent - 1.3.0 + 1.3.1 bukkit-20R3 diff --git a/bukkit-20R4/pom.xml b/bukkit-20R4/pom.xml index c101bda..b511c83 100644 --- a/bukkit-20R4/pom.xml +++ b/bukkit-20R4/pom.xml @@ -6,7 +6,7 @@ dev.cerus.visualcrafting parent - 1.3.0 + 1.3.1 bukkit-20R4 diff --git a/plugin/pom.xml b/plugin/pom.xml index f70aafd..6e6466d 100644 --- a/plugin/pom.xml +++ b/plugin/pom.xml @@ -5,7 +5,7 @@ parent dev.cerus.visualcrafting - 1.3.0 + 1.3.1 4.0.0 diff --git a/plugin/src/main/java/dev/cerus/visualcrafting/plugin/VisualCraftingPlugin.java b/plugin/src/main/java/dev/cerus/visualcrafting/plugin/VisualCraftingPlugin.java index a03c8c5..9f6ae4f 100644 --- a/plugin/src/main/java/dev/cerus/visualcrafting/plugin/VisualCraftingPlugin.java +++ b/plugin/src/main/java/dev/cerus/visualcrafting/plugin/VisualCraftingPlugin.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.lang.reflect.InvocationTargetException; import java.net.URL; import java.security.CodeSource; import java.util.logging.Level; @@ -50,17 +51,17 @@ public void onEnable() { // Initialize version adapter final VersionAdapter versionAdapter = switch (version) { - case "1.16.5" -> new VersionAdapter16R3(); - case "1.17", "1.17.1" -> new VersionAdapter17R1(); - case "1.18.1" -> new VersionAdapter18R1(); - case "1.18.2" -> new VersionAdapter18R2(); - case "1.19", "1.19.1", "1.19.2" -> new VersionAdapter19R1(); - case "1.19.3" -> new VersionAdapter19R2(); - case "1.19.4" -> new VersionAdapter19R3(); - case "1.20", "1.20.1" -> new VersionAdapter20R1(); - case "1.20.2" -> new VersionAdapter20R2(); - case "1.20.3", "1.20.4" -> new VersionAdapter20R3(); - case "1.20.5" -> new VersionAdapter20R4(); + case "1.16.5" -> createVersionAdapter("16R3"); + case "1.17", "1.17.1" -> createVersionAdapter("17R1"); + case "1.18.1" -> createVersionAdapter("18R1"); + case "1.18.2" -> createVersionAdapter("18R2"); + case "1.19", "1.19.1", "1.19.2" -> createVersionAdapter("19R1"); + case "1.19.3" -> createVersionAdapter("19R2"); + case "1.19.4" -> createVersionAdapter("19R3"); + case "1.20", "1.20.1" -> createVersionAdapter("20R1"); + case "1.20.2" -> createVersionAdapter("20R2"); + case "1.20.3", "1.20.4" -> createVersionAdapter("20R3"); + case "1.20.5" -> createVersionAdapter("20R4"); default -> null; }; if (versionAdapter == null) { @@ -185,6 +186,18 @@ private String normalize(final String s) { return Character.toUpperCase(s.charAt(0)) + s.substring(1).toLowerCase(); } + // Required to prevent the JVM from complaining about java versions + private VersionAdapter createVersionAdapter(String versionSlug) { + try { + String classPath = "dev.cerus.visualcrafting.v%s.VersionAdapter%s".formatted(versionSlug.toLowerCase(), versionSlug.toUpperCase()); + Class cls = Class.forName(classPath); + return (VersionAdapter) cls.getDeclaredConstructor().newInstance(); + } catch (ClassNotFoundException | InvocationTargetException | InstantiationException | IllegalAccessException | NoSuchMethodException e) { + getLogger().log(Level.SEVERE, "Could not create version adapter", e); + return null; + } + } + private String getDownloadSource() { StringBuilder sourceBuilder = new StringBuilder(); try (InputStream in = VisualCraftingPlugin.class.getClassLoader().getResourceAsStream("metadata")) { diff --git a/pom.xml b/pom.xml index e8eab31..d705a91 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ dev.cerus.visualcrafting parent pom - 1.3.0 + 1.3.1 plugin api