From 4aa1782cfd222ca91da2ba1e411707e95b2c4a21 Mon Sep 17 00:00:00 2001 From: Jeremy Wood Date: Fri, 24 Mar 2023 23:31:58 -0400 Subject: [PATCH] Revert "Add automatic listener registration through ListenerFeature." This reverts commit d03063f2b9341b55379dbecee4be751b6503798e. --- .../MultiverseCore/MultiverseCore.java | 12 +++++ .../inject/features/ListenerFeature.java | 47 ------------------- .../listeners/MVChatListener.java | 3 +- .../listeners/MVEntityListener.java | 3 +- .../listeners/MVPlayerListener.java | 3 +- .../listeners/MVPortalListener.java | 3 +- .../listeners/MVWeatherListener.java | 3 +- .../listeners/MVWorldInitListener.java | 3 +- .../listeners/MVWorldListener.java | 6 +-- 9 files changed, 20 insertions(+), 63 deletions(-) delete mode 100644 src/main/java/com/onarandombox/MultiverseCore/inject/features/ListenerFeature.java diff --git a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java index 8f9b2764..019b87ab 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java +++ b/src/main/java/com/onarandombox/MultiverseCore/MultiverseCore.java @@ -31,7 +31,9 @@ import com.onarandombox.MultiverseCore.world.WorldProperties; import jakarta.inject.Inject; import jakarta.inject.Provider; import me.main__.util.SerializationConfig.SerializationConfig; +import org.bukkit.event.Listener; import org.bukkit.plugin.PluginDescriptionFile; +import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPluginLoader; import org.glassfish.hk2.api.MultiException; @@ -117,6 +119,7 @@ public class MultiverseCore extends JavaPlugin implements MVCore { // Init all the other stuff // TODO consider moving this into the AnchorManager constructor serviceLocator.getService(AnchorManager.class).loadAnchors(); + this.registerEvents(); this.registerCommands(); this.setUpLocales(); this.registerDestinations(); @@ -158,6 +161,15 @@ public class MultiverseCore extends JavaPlugin implements MVCore { return !getConfigProvider().getConfig().getSilentStart(); } + /** + * Function to Register all the Events needed. + */ + private void registerEvents() { + // TODO add automatic listener registration through hk2 + PluginManager pluginManager = getServer().getPluginManager(); + getAllServices(Listener.class).forEach(listener -> pluginManager.registerEvents(listener, this)); + } + /** * Register Multiverse-Core commands to Command Manager. */ diff --git a/src/main/java/com/onarandombox/MultiverseCore/inject/features/ListenerFeature.java b/src/main/java/com/onarandombox/MultiverseCore/inject/features/ListenerFeature.java deleted file mode 100644 index 8c49955a..00000000 --- a/src/main/java/com/onarandombox/MultiverseCore/inject/features/ListenerFeature.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.onarandombox.MultiverseCore.inject.features; - -import com.onarandombox.MultiverseCore.inject.InjectionFeature; -import com.onarandombox.MultiverseCore.inject.registration.AbstractAutoRegistration; -import com.onarandombox.MultiverseCore.inject.registration.AutoRegistrationBinder; -import com.onarandombox.MultiverseCore.inject.registration.RegistrationFilter; -import jakarta.inject.Inject; -import jakarta.inject.Provider; -import org.bukkit.event.Listener; -import org.bukkit.plugin.Plugin; -import org.glassfish.hk2.api.ServiceLocator; -import org.glassfish.hk2.utilities.ServiceLocatorUtilities; -import org.jetbrains.annotations.NotNull; -import org.jvnet.hk2.annotations.Service; - -@Service -class ListenerFeature implements InjectionFeature { - - @Override - public void postServicesCreation(ServiceLocator locator) { - ServiceLocatorUtilities.bind(locator, AutoRegistrationBinder.with(ListenerAutoRegistration.class)); - } - - @Service - private static final class ListenerAutoRegistration extends AbstractAutoRegistration { - - private final @NotNull Provider pluginProvider; - - @Inject - private ListenerAutoRegistration( - @NotNull Provider pluginProvider, - @NotNull Provider filterProvider - ) { - super(filterProvider, Listener.class); - this.pluginProvider = pluginProvider; - } - - private Plugin getPlugin() { - return pluginProvider.get(); - } - - @Override - protected void register(Listener instance) { - getPlugin().getServer().getPluginManager().registerEvents(instance, getPlugin()); - } - } -} diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVChatListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVChatListener.java index 67a5c16f..7e3f1aaa 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVChatListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVChatListener.java @@ -4,7 +4,6 @@ import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.config.MVCoreConfigProvider; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.ChatColor; import org.bukkit.event.EventHandler; @@ -16,7 +15,7 @@ import org.jvnet.hk2.annotations.Service; * Multiverse's {@link org.bukkit.event.Listener} for players. */ @Service -public class MVChatListener implements AutoLoadedService, Listener { +public class MVChatListener implements Listener { private final MVCoreConfigProvider configProvider; private final MVWorldManager worldManager; private final MVPlayerListener playerListener; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java index e0721380..b9e96e2e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVEntityListener.java @@ -12,7 +12,6 @@ import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.api.WorldPurger; import com.onarandombox.MultiverseCore.config.MVCoreConfigProvider; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.World; import org.bukkit.entity.EntityType; @@ -32,7 +31,7 @@ import org.jvnet.hk2.annotations.Service; * Multiverse's Entity {@link Listener}. */ @Service -public class MVEntityListener implements AutoLoadedService, Listener { +public class MVEntityListener implements Listener { private final MVCoreConfigProvider configProvider; private final MVWorldManager worldManager; private final WorldPurger worldPurger; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index e8bc02a9..96719cc8 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -17,7 +17,6 @@ import com.onarandombox.MultiverseCore.api.MVWorldManager; import com.onarandombox.MultiverseCore.api.SafeTTeleporter; import com.onarandombox.MultiverseCore.config.MVCoreConfigProvider; import com.onarandombox.MultiverseCore.event.MVRespawnEvent; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import com.onarandombox.MultiverseCore.utils.MVPermissions; import com.onarandombox.MultiverseCore.utils.PermissionTools; import jakarta.inject.Inject; @@ -44,7 +43,7 @@ import org.jvnet.hk2.annotations.Service; * Multiverse's {@link Listener} for players. */ @Service -public class MVPlayerListener implements AutoLoadedService, Listener { +public class MVPlayerListener implements Listener { private final Plugin plugin; private final MVCoreConfigProvider configProvider; private final Provider worldManagerProvider; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java index 969b3bb7..52041679 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java @@ -10,7 +10,6 @@ package com.onarandombox.MultiverseCore.listeners; import com.dumptruckman.minecraft.util.Logging; import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.api.MVWorldManager; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.Material; import org.bukkit.PortalType; @@ -26,7 +25,7 @@ import org.jvnet.hk2.annotations.Service; * A custom listener for portal related events. */ @Service -public class MVPortalListener implements AutoLoadedService, Listener { +public class MVPortalListener implements Listener { private MVWorldManager worldManager; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWeatherListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWeatherListener.java index a6811aed..0a41a3ae 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWeatherListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWeatherListener.java @@ -9,7 +9,6 @@ package com.onarandombox.MultiverseCore.listeners; import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.api.MVWorldManager; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -21,7 +20,7 @@ import org.jvnet.hk2.annotations.Service; * Multiverse's Weather {@link Listener}. */ @Service -public class MVWeatherListener implements AutoLoadedService, Listener { +public class MVWeatherListener implements Listener { private MVWorldManager worldManager; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldInitListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldInitListener.java index c0b9fdda..79ee1e00 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldInitListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldInitListener.java @@ -8,7 +8,6 @@ package com.onarandombox.MultiverseCore.listeners; import com.onarandombox.MultiverseCore.api.MVWorldManager; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -16,7 +15,7 @@ import org.bukkit.event.world.WorldInitEvent; import org.jvnet.hk2.annotations.Service; @Service -public class MVWorldInitListener implements AutoLoadedService, Listener { +public class MVWorldInitListener implements Listener { private final MVWorldManager worldManager; diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldListener.java index 90dff5cf..b18f055e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVWorldListener.java @@ -9,7 +9,6 @@ package com.onarandombox.MultiverseCore.listeners; import com.onarandombox.MultiverseCore.api.MVWorld; import com.onarandombox.MultiverseCore.api.MVWorldManager; -import com.onarandombox.MultiverseCore.inject.AutoLoadedService; import jakarta.inject.Inject; import org.bukkit.World; import org.bukkit.event.EventHandler; @@ -22,10 +21,9 @@ import org.jvnet.hk2.annotations.Service; * Multiverse's World {@link Listener}. */ @Service -public class MVWorldListener implements AutoLoadedService, Listener { +public class MVWorldListener implements Listener { - // TODO change this back to private - public MVWorldManager worldManager; + private MVWorldManager worldManager; @Inject public MVWorldListener(MVWorldManager worldManager) {