Revert "Add automatic listener registration through ListenerFeature."

This reverts commit d03063f2b9.
This commit is contained in:
Jeremy Wood 2023-03-24 23:31:58 -04:00
parent e38796f492
commit 4aa1782cfd
No known key found for this signature in database
GPG Key ID: C5BAD04C77B91B4B
9 changed files with 20 additions and 63 deletions

View File

@ -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.
*/

View File

@ -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<Listener> {
private final @NotNull Provider<Plugin> pluginProvider;
@Inject
private ListenerAutoRegistration(
@NotNull Provider<Plugin> pluginProvider,
@NotNull Provider<RegistrationFilter> 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());
}
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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<MVWorldManager> worldManagerProvider;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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) {