diff --git a/library/pom.xml b/library/pom.xml index 7062e6b..b845425 100644 --- a/library/pom.xml +++ b/library/pom.xml @@ -24,13 +24,11 @@ ${project.groupId} worldguardwrapper-implementation-v6 1.1.1-SNAPSHOT - runtime ${project.groupId} worldguardwrapper-implementation-v7 1.1.1-SNAPSHOT - runtime diff --git a/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java b/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java index 42fe80d..da8ebf0 100644 --- a/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java +++ b/library/src/main/java/org/codemc/worldguardwrapper/WorldGuardWrapper.java @@ -23,24 +23,23 @@ public class WorldGuardWrapper implements IWorldGuardImplementation { } @Delegate - private IWorldGuardImplementation delegate; - private Listener eventListener; + private IWorldGuardImplementation implementation; + private Listener listener; private WorldGuardWrapper() { - String version; + boolean legacy; try { Class.forName("com.sk89q.worldguard.WorldGuard"); - version = "v7"; + legacy = false; } catch (ClassNotFoundException e) { - version = "v6"; + legacy = true; } - try { - delegate = (IWorldGuardImplementation) Class.forName("org.codemc.worldguardwrapper.implementation." - + version + ".WorldGuardImplementation").newInstance(); - eventListener = (Listener) Class.forName("new org.codemc.worldguardwrapper.implementation." - + version + ".event.EventListener").newInstance(); - } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { - throw new RuntimeException("Unable to initialize WorldGuard implementation " + version, e); + if (legacy) { + implementation = new org.codemc.worldguardwrapper.implementation.v6.WorldGuardImplementation(); + listener = new org.codemc.worldguardwrapper.implementation.v6.event.EventListener(); + } else { + implementation = new org.codemc.worldguardwrapper.implementation.v7.WorldGuardImplementation(); + listener = new org.codemc.worldguardwrapper.implementation.v7.event.EventListener(); } } @@ -51,7 +50,7 @@ public class WorldGuardWrapper implements IWorldGuardImplementation { * @param plugin the plugin instance */ public void registerEvents(JavaPlugin plugin) { - Bukkit.getPluginManager().registerEvents(eventListener, plugin); + Bukkit.getPluginManager().registerEvents(listener, plugin); } }