From 5ef4492e84face67621f46bc968f0684daf715e2 Mon Sep 17 00:00:00 2001 From: funkemunky Date: Mon, 13 Jan 2020 08:33:56 -0500 Subject: [PATCH] Added backwards and forwards compatibility for Atlas 1.6+ --- pom.xml | 6 ++++++ src/main/java/dev/brighten/pl/AntiVPN.java | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dc7049a..8ad200d 100644 --- a/pom.xml +++ b/pom.xml @@ -54,6 +54,12 @@ 1.6.6 provided + + cc.funkemunky.utils + Atlas + 1.7 + provided + diff --git a/src/main/java/dev/brighten/pl/AntiVPN.java b/src/main/java/dev/brighten/pl/AntiVPN.java index 25dc308..a490a36 100644 --- a/src/main/java/dev/brighten/pl/AntiVPN.java +++ b/src/main/java/dev/brighten/pl/AntiVPN.java @@ -1,12 +1,14 @@ package dev.brighten.pl; import cc.funkemunky.api.Atlas; +import cc.funkemunky.api.reflections.types.WrappedClass; import cc.funkemunky.api.utils.MiscUtils; import dev.brighten.pl.handlers.AlertsHandler; import dev.brighten.pl.handlers.VPNHandler; import dev.brighten.pl.vpn.VPNAPI; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; public class AntiVPN extends JavaPlugin { @@ -17,6 +19,8 @@ public class AntiVPN extends JavaPlugin { public VPNHandler vpnHandler; public AlertsHandler alertsHandler; + public String atlasVersion; + public Plugin atlasInstance; public void onEnable() { INSTANCE = this; @@ -28,9 +32,20 @@ public class AntiVPN extends JavaPlugin { } public void enable() { + System.out.println("Enabling Atlas hook..."); + if((atlasInstance = Bukkit.getPluginManager().getPlugin("Atlas")) != null) { + atlasVersion = atlasInstance.getDescription().getVersion(); + } else { + System.out.println("Atlas not found! Disabling..."); + this.disable(); + return; + } saveDefaultConfig(); print(true, "scanner"); - Atlas.getInstance().initializeScanner(this, true, true); + //We use reflection and check versions to add backwards compatibility for the time being. + new WrappedClass(Atlas.class).getMethod("initializeScanner", + atlasVersion.startsWith("1.6") ? JavaPlugin.class : Plugin.class, boolean.class, boolean.class) + .invoke(atlasInstance, this, true, true); print(true, "vpn api and handlers"); vpnAPI = new VPNAPI();