From c7734b2294a43c512f63bfd7abc71bb8c8b8dcba Mon Sep 17 00:00:00 2001 From: Dawson Date: Thu, 4 Dec 2025 09:28:21 -0500 Subject: [PATCH] Refactored so in the future I can combine everything into one jar --- Bukkit/Loader/pom.xml | 4 ++++ .../antivpn/bukkit/loader/BukkitLoaderPlugin.java | 3 ++- Bukkit/Plugin/pom.xml | 2 +- .../antivpn/loader/JarInJarClassLoader.java | 15 +++++++++------ Velocity/VelocityLoader/pom.xml | 4 ++++ .../antivpn/velocity/VelocityPluginLoader.java | 3 ++- Velocity/VelocityPlugin/pom.xml | 2 +- 7 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Bukkit/Loader/pom.xml b/Bukkit/Loader/pom.xml index b4dff27..2de422c 100644 --- a/Bukkit/Loader/pom.xml +++ b/Bukkit/Loader/pom.xml @@ -53,6 +53,10 @@ antivpn-bukkit.jarinjar ${project.parent.basedir}/Plugin/target/Plugin-${project.version}.jar + + antivpn-source.jarinjar + ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar + diff --git a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java index 63cc412..f8ea3c8 100644 --- a/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java +++ b/Bukkit/Loader/src/main/java/dev/brighten/antivpn/bukkit/loader/BukkitLoaderPlugin.java @@ -7,12 +7,13 @@ import org.bukkit.plugin.java.JavaPlugin; public class BukkitLoaderPlugin extends JavaPlugin { private static final String JAR_NAME = "antivpn-bukkit.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.bukkit.BukkitPlugin"; private final LoaderBootstrap plugin; public BukkitLoaderPlugin() { - JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, JavaPlugin.class, this); } diff --git a/Bukkit/Plugin/pom.xml b/Bukkit/Plugin/pom.xml index b9bff33..e55809e 100644 --- a/Bukkit/Plugin/pom.xml +++ b/Bukkit/Plugin/pom.xml @@ -83,7 +83,7 @@ dev.brighten.antivpn Source 1.9.4 - compile + provided org.bstats diff --git a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java index 6488c0e..4d8a4c3 100644 --- a/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java +++ b/Common/loader-utils/src/main/java/dev/brighten/antivpn/loader/JarInJarClassLoader.java @@ -35,14 +35,15 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.util.Arrays; /** * Classloader that can load a jar from within another jar file. * - *

The "loader" jar contains the loading code & public API classes, + *

The "loader" jar contains the loading code & public API classes * and is class-loaded by the platform.

* - *

The inner "plugin" jar contains the plugin itself, and is class-loaded + *

The inner "plugin" jar contains the plugin itself and is class-loaded * by the loading code & this classloader.

*/ public class JarInJarClassLoader extends URLClassLoader { @@ -57,8 +58,10 @@ public class JarInJarClassLoader extends URLClassLoader { * @param jarResourcePath the path to the jar-in-jar resource within the loader jar * @throws LoadingException if something unexpectedly bad happens */ - public JarInJarClassLoader(ClassLoader loaderClassLoader, String jarResourcePath) throws LoadingException { - super(new URL[]{extractJar(loaderClassLoader, jarResourcePath)}, loaderClassLoader); + public JarInJarClassLoader(ClassLoader loaderClassLoader, String... jarResourcePath) throws LoadingException { + super(Arrays.stream(jarResourcePath) + .map(path -> extractJar(loaderClassLoader, path)) + .toArray(URL[]::new), loaderClassLoader); } public void addJarToClasspath(URL url) { @@ -127,10 +130,10 @@ public class JarInJarClassLoader extends URLClassLoader { } // create a temporary file - // on posix systems by default this is only read/writable by the process owner + // on posix systems; by default, this is only read/writable by the process owner Path path; try { - path = Files.createTempFile("luckperms-jarinjar", ".jar.tmp"); + path = Files.createTempFile(jarResourcePath, ".jar.tmp"); } catch (IOException e) { throw new LoadingException("Unable to create a temporary file", e); } diff --git a/Velocity/VelocityLoader/pom.xml b/Velocity/VelocityLoader/pom.xml index 1a52d54..5eaa4e1 100644 --- a/Velocity/VelocityLoader/pom.xml +++ b/Velocity/VelocityLoader/pom.xml @@ -81,6 +81,10 @@ antivpn-velocity.jarinjar ${project.parent.basedir}/VelocityPlugin/target/VelocityPlugin-${project.version}.jar + + antivpn-source.jarinjar + ${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar + diff --git a/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java index 8de032d..9c7add0 100644 --- a/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java +++ b/Velocity/VelocityLoader/src/main/java/dev/brighten/antivpn/velocity/VelocityPluginLoader.java @@ -20,6 +20,7 @@ import java.util.logging.Logger; public class VelocityPluginLoader { private static final String JAR_NAME = "antivpn-velocity.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.velocity.VelocityPlugin"; private final LoaderBootstrap plugin; @@ -32,7 +33,7 @@ public class VelocityPluginLoader { instances.put(Path.class, path); instances.put(String.class, metricsFactory); instances.put(LoaderBootstrap.class, this); - JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, Map.class, instances); plugin.onLoad(path.toFile()); } diff --git a/Velocity/VelocityPlugin/pom.xml b/Velocity/VelocityPlugin/pom.xml index 8ccae20..2f794f5 100644 --- a/Velocity/VelocityPlugin/pom.xml +++ b/Velocity/VelocityPlugin/pom.xml @@ -36,7 +36,7 @@ dev.brighten.antivpn Source 1.9.4 - compile + provided
org.bstats