mirror of
https://github.com/funkemunky/AntiVPN.git
synced 2026-05-31 09:31:54 +00:00
Refactored so in the future I can combine everything into one jar
This commit is contained in:
@@ -53,6 +53,10 @@
|
||||
<resource>antivpn-bukkit.jarinjar</resource>
|
||||
<file>${project.parent.basedir}/Plugin/target/Plugin-${project.version}.jar</file>
|
||||
</transformer>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
|
||||
<resource>antivpn-source.jarinjar</resource>
|
||||
<file>${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar</file>
|
||||
</transformer>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
||||
+2
-1
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
<groupId>dev.brighten.antivpn</groupId>
|
||||
<artifactId>Source</artifactId>
|
||||
<version>1.9.4</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
|
||||
+9
-6
@@ -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.
|
||||
*
|
||||
* <p>The "loader" jar contains the loading code & public API classes,
|
||||
* <p>The "loader" jar contains the loading code & public API classes
|
||||
* and is class-loaded by the platform.</p>
|
||||
*
|
||||
* <p>The inner "plugin" jar contains the plugin itself, and is class-loaded
|
||||
* <p>The inner "plugin" jar contains the plugin itself and is class-loaded
|
||||
* by the loading code & this classloader.</p>
|
||||
*/
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -81,6 +81,10 @@
|
||||
<resource>antivpn-velocity.jarinjar</resource>
|
||||
<file>${project.parent.basedir}/VelocityPlugin/target/VelocityPlugin-${project.version}.jar</file>
|
||||
</transformer>
|
||||
<transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer">
|
||||
<resource>antivpn-source.jarinjar</resource>
|
||||
<file>${project.parent.parent.basedir}/Common/Source/target/Source-${project.version}.jar</file>
|
||||
</transformer>
|
||||
</transformers>
|
||||
<relocations>
|
||||
<relocation>
|
||||
|
||||
+2
-1
@@ -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());
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
<groupId>dev.brighten.antivpn</groupId>
|
||||
<artifactId>Source</artifactId>
|
||||
<version>1.9.4</version>
|
||||
<scope>compile</scope>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
|
||||
Reference in New Issue
Block a user