diff --git a/Sponge/SpongeLoader/pom.xml b/Sponge/SpongeLoader/pom.xml new file mode 100644 index 0000000..ba2f189 --- /dev/null +++ b/Sponge/SpongeLoader/pom.xml @@ -0,0 +1,97 @@ + + + 4.0.0 + + dev.brighten.antivpn + Sponge + 1.9.4 + ../pom.xml + + + SpongeLoader + + + 17 + 17 + UTF-8 + + + + + maven-repo + https://nexus.funkemunky.cc/repository/maven-public/ + + + funkemunky-releases + https://nexus.funkemunky.cc/content/repositories/releases/ + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + false + + + antivpn-sponge.jarinjar + ${project.parent.basedir}/SpongePlugin/target/SpongePlugin-${project.version}.jar + + + + + + + + + + src/main/resources + true + + + + + + + org.spongepowered + spongeapi + 11.0.0 + provided + + + dev.brighten.antivpn + SpongePlugin + ${project.version} + provided + + + dev.brighten.antivpn + loader-utils + 1.9.4 + compile + + + + + \ No newline at end of file diff --git a/Sponge/SpongeLoader/src/main/java/dev/brighten/antivpn/sponge/SpongeLoaderPlugin.java b/Sponge/SpongeLoader/src/main/java/dev/brighten/antivpn/sponge/SpongeLoaderPlugin.java new file mode 100644 index 0000000..d77a1eb --- /dev/null +++ b/Sponge/SpongeLoader/src/main/java/dev/brighten/antivpn/sponge/SpongeLoaderPlugin.java @@ -0,0 +1,55 @@ +package dev.brighten.antivpn.sponge; + +import com.google.inject.Inject; +import dev.brighten.antivpn.loader.JarInJarClassLoader; +import dev.brighten.antivpn.loader.LoaderBootstrap; +import org.apache.logging.log4j.Logger; +import org.spongepowered.api.Server; +import org.spongepowered.api.Sponge; +import org.spongepowered.api.config.ConfigManager; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.lifecycle.ConstructPluginEvent; +import org.spongepowered.api.event.lifecycle.StoppingEngineEvent; +import org.spongepowered.plugin.PluginContainer; +import org.spongepowered.plugin.builtin.jvm.Plugin; + +import java.util.Map; + +@Plugin("kaurivpn") +public class SpongeLoaderPlugin { + + private static final String JAR_NAME = "antivpn-sponge.jarinjar"; + private static final String SOURCE_NAME = "antivpn-source.jarinjar"; + private static final String BOOTSTRAP_CLASS = "dev.brighten.antivpn.bungee.BungeePlugin"; + + private final LoaderBootstrap plugin; + + @Inject + private PluginContainer container; + @Inject + private Logger logger; + + public SpongeLoaderPlugin() { + Map, Object> instances = Map.of(PluginContainer.class, container, Logger.class, logger); + JarInJarClassLoader loader = new JarInJarClassLoader(getClass().getClassLoader(), JAR_NAME, SOURCE_NAME); + this.plugin = loader.instantiatePlugin(BOOTSTRAP_CLASS, Map.class, instances); + + ConfigManager configManager = Sponge.configManager(); + + var path = configManager.sharedConfig(container).directory(); + + this.plugin.onLoad(path.toFile()); + } + + @Listener + public void onConstruct(final ConstructPluginEvent event) { + this.plugin.onEnable(); + } + + @Listener + public void onServer(final StoppingEngineEvent event) { + this.plugin.onDisable(); + } + + +} diff --git a/Sponge/SpongePlugin/pom.xml b/Sponge/SpongePlugin/pom.xml new file mode 100644 index 0000000..d27ce7c --- /dev/null +++ b/Sponge/SpongePlugin/pom.xml @@ -0,0 +1,159 @@ + + + 4.0.0 + + dev.brighten.antivpn + Sponge + 1.9.4 + ../pom.xml + + + SpongePlugin + + + + maven-repo + https://nexus.funkemunky.cc/repository/maven-public/ + + + funkemunky-releases + https://nexus.funkemunky.cc/content/repositories/releases/ + + + + + + org.spongepowered + spongeapi + 11.0.0 + provided + + + dev.brighten.antivpn + loader-utils + 1.9.4 + provided + + + dev.brighten.antivpn + Source + 1.9.4 + provided + + + + + 17 + 17 + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 17 + 17 + -XDignore.symbol.file + + + + org.apache.maven.plugins + maven-shade-plugin + 3.6.0 + + + package + + shade + + + + + *:* + + com/google/** + org/objectweb/** + org/checkerframework/** + + + + + + + org.yaml.snakeyaml + dev.brighten.antivpn.shaded.org.yaml.snakeyaml + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.github.benmanes.caffeine + dev.brighten.antivpn.shaded.com.github.benmanes.caffeine + + + org.h2 + dev.brighten.antivpn.shaded.org.h2 + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + org.bson + dev.brighten.antivpn.shaded.org.bson + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mongodb + dev.brighten.antivpn.shaded.com.mongodb + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mysql.cj + dev.brighten.antivpn.shaded.com.mysql.cj + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + com.mysql.jdbc + dev.brighten.antivpn.shaded.com.mysql.jdbc + + + dev.brighten.antivpn.depends.Relocate + dev.brighten.antivpn.depends.MavenLibraries + + + + + + + + + + + src/main/resources + true + + + + + \ No newline at end of file diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java similarity index 100% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongeListener.java diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java similarity index 100% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlayer.java diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java similarity index 100% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlayerExecutor.java diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java similarity index 63% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java index 1aa11f2..2e2f9bb 100644 --- a/Sponge/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java +++ b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/SpongePlugin.java @@ -1,60 +1,64 @@ package dev.brighten.antivpn.sponge; -import com.google.inject.Inject; import dev.brighten.antivpn.AntiVPN; +import dev.brighten.antivpn.loader.LoaderBootstrap; import dev.brighten.antivpn.sponge.command.SpongeCommand; import lombok.Getter; -import org.spongepowered.api.Server; import org.apache.logging.log4j.Logger; import org.spongepowered.api.Sponge; import org.spongepowered.api.command.Command; -import org.spongepowered.api.config.ConfigManager; import org.spongepowered.api.event.Listener; import org.spongepowered.api.event.lifecycle.*; import org.spongepowered.plugin.PluginContainer; -import org.spongepowered.plugin.builtin.jvm.Plugin; -@Plugin("kaurivpn") +import java.io.File; +import java.util.Map; + @Getter -public class SpongePlugin { +public class SpongePlugin implements LoaderBootstrap { //Plugin init - @Inject - private PluginContainer container; - @Inject - private Logger logger; @Getter private static SpongePlugin instance; - @Listener - public void onConstruct(final ConstructPluginEvent event) { - instance = this; + private Logger logger; + private PluginContainer container; + private final Map, Object> objects; + private File dataFolder; - ConfigManager configManager = Sponge.configManager(); - SpongeListener spongeListener = new SpongeListener(); - var path = configManager.sharedConfig(container).directory(); - - logger.info("Fucking path: " + path); - - AntiVPN.start(spongeListener, new SpongePlayerExecutor(), path.toFile()); - } - - @Listener - public void onServer(final StoppingEngineEvent event) { - AntiVPN.getInstance().getExecutor().disablePlugin(); + public SpongePlugin(Map, Object> objects) { + this.objects = objects; } @Listener public void onRegisterRawCommands(final RegisterCommandEvent event){ - if(AntiVPN.getInstance() == null) { - for(int i = 0 ; i < 5 ; i++) System.out.println("FUCKING NULL"); - return; - } AntiVPN.getInstance().getExecutor().log("Registering commands..."); for (dev.brighten.antivpn.command.Command command : AntiVPN.getInstance().getCommands()) { AntiVPN.getInstance().getExecutor().log("Registering command %s...", command.name()); event.register(this.container, new SpongeCommand(command), command.name(), command.aliases()); } } + + @Override + public void onLoad(File dataFolder) { + this.dataFolder = dataFolder; + container = (PluginContainer) objects.get(PluginContainer.class); + logger = (Logger) objects.get(Logger.class); + Sponge.eventManager().registerListeners(this.container, this); + } + + @Override + public void onEnable() { + instance = this; + + SpongeListener spongeListener = new SpongeListener(); + + AntiVPN.start(spongeListener, new SpongePlayerExecutor(), dataFolder); + } + + @Override + public void onDisable() { + AntiVPN.getInstance().getExecutor().disablePlugin(); + } } diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java similarity index 96% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java index 3bccdc2..06ea090 100644 --- a/Sponge/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java +++ b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommand.java @@ -33,7 +33,7 @@ public class SpongeCommand implements org.spongepowered.api.command.Command.Raw val children = command.children(); if(children.length > 0 && args.length > 0) { - for (dev.brighten.antivpn.command.Command child : children) { + for (Command child : children) { if(child.name().equalsIgnoreCase(args[0]) || Arrays.stream(child.aliases()) .anyMatch(alias -> alias.equalsIgnoreCase(args[0]))) { if(!sender.hasPermission("antivpn.command.*") @@ -65,7 +65,7 @@ public class SpongeCommand implements org.spongepowered.api.command.Command.Raw val children = command.children(); String[] args = arguments.input().split(" "); if(children.length > 0 && args.length > 0) { - for (dev.brighten.antivpn.command.Command child : children) { + for (Command child : children) { if(child.name().equalsIgnoreCase(args[0]) || Arrays.stream(child.aliases()) .anyMatch(alias2 -> alias2.equalsIgnoreCase(args[0]))) { return child.tabComplete(new SpongeCommandExecutor(sender), "alias", IntStream diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommandExecutor.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommandExecutor.java similarity index 100% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommandExecutor.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/command/SpongeCommandExecutor.java diff --git a/Sponge/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java b/Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java similarity index 100% rename from Sponge/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java rename to Sponge/SpongePlugin/src/main/java/dev/brighten/antivpn/sponge/util/StringUtil.java diff --git a/Sponge/pom.xml b/Sponge/pom.xml index c9ce89b..e3a38e5 100644 --- a/Sponge/pom.xml +++ b/Sponge/pom.xml @@ -2,176 +2,24 @@ + 4.0.0 - AntiVPN dev.brighten.antivpn + AntiVPN 1.9.4 - 4.0.0 + pom + + SpongePlugin + SpongeLoader + Sponge - - - spongepowered-repo - https://repo.spongepowered.org/maven/ - - - funkemunky-releases - https://nexus.funkemunky.cc/content/repositories/releases/ - - - - - - org.spongepowered - spongeapi - 11.0.0 - provided - - - dev.brighten.antivpn - Source - 1.9.4 - compile - - - com.github.ben-manes.caffeine - caffeine - 3.1.8 - compile - - - org.mongodb - mongo-java-driver - 3.12.14 - compile - - - com.mysql - mysql-connector-j - 9.1.0 - jar - compile - - - com.h2database - h2 - 2.2.220 - compile - - - 17 17 + UTF-8 - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 17 - 17 - -XDignore.symbol.file - - - - org.apache.maven.plugins - maven-shade-plugin - 3.6.0 - - - package - - shade - - - - - *:* - - com/google/** - org/objectweb/** - org/checkerframework/** - - - - - - - org.yaml.snakeyaml - dev.brighten.antivpn.shaded.org.yaml.snakeyaml - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.github.benmanes.caffeine - dev.brighten.antivpn.shaded.com.github.benmanes.caffeine - - - org.h2 - dev.brighten.antivpn.shaded.org.h2 - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - org.bson - dev.brighten.antivpn.shaded.org.bson - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mongodb - dev.brighten.antivpn.shaded.com.mongodb - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mysql.cj - dev.brighten.antivpn.shaded.com.mysql.cj - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - com.mysql.jdbc - dev.brighten.antivpn.shaded.com.mysql.jdbc - - - dev.brighten.antivpn.depends.Relocate - dev.brighten.antivpn.depends.MavenLibraries - - - - - - - - - - - src/main/resources - true - - - - \ No newline at end of file diff --git a/Sponge/src/main/resources/META-INF/sponge_plugins.json b/Sponge/src/main/resources/META-INF/sponge_plugins.json deleted file mode 100644 index be21d3b..0000000 --- a/Sponge/src/main/resources/META-INF/sponge_plugins.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "loader": { - "name": "java_plain", - "version": "1.0" - }, - "license": "All-Rights-Reserved", - "plugins": [ - { - "id": "kaurivpn", - "name": "Kauri VPN", - "version": "${version}", - "entrypoint": "dev.brighten.antivpn.sponge.SpongePlugin", - "description": "A simple and fast antivpn plugin.", - "branding": {}, - "links": { - }, - "contributors": [ - ], - "dependencies": [ - { - "id": "spongeapi", - "version": "11.0.0", - "load-order": "after", - "optional": false - } - ] - } - ] -}