Skip to content

Commit a4386c3

Browse files
authored
Merge pull request #287 from Multiverse/chore/update-to-dynamic-listener
Use our new dynamic listener api
2 parents f086a27 + bd86f7d commit a4386c3

File tree

7 files changed

+25
-38
lines changed

7 files changed

+25
-38
lines changed

src/main/java/org/mvplugins/multiverse/netherportals/MultiverseNetherPortals.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import org.mvplugins.multiverse.core.command.MVCommandManager;
2424
import org.mvplugins.multiverse.external.jakarta.inject.Inject;
2525
import org.mvplugins.multiverse.external.jakarta.inject.Provider;
26-
import org.mvplugins.multiverse.external.vavr.control.Try;
2726
import org.mvplugins.multiverse.portals.MultiversePortals;
2827
import org.mvplugins.multiverse.portals.utils.PortalManager;
2928

@@ -73,7 +72,7 @@ public void onEnable() {
7372

7473
loadConfig();
7574
this.registerCommands(NetherPortalsCommand.class);
76-
this.registerEvents();
75+
this.registerDynamicListeners(MVNPListener.class);
7776

7877
Logging.log(true, Level.INFO, " Enabled - By %s", StringFormatter.joinAnd(this.getDescription().getAuthors()));
7978
}
@@ -145,16 +144,6 @@ private void initMVNPConfig() {
145144
}
146145
}
147146

148-
private void registerEvents() {
149-
var pluginManager = getServer().getPluginManager();
150-
151-
Try.run(() -> serviceLocator.getAllServices(MVNPListener.class).forEach(
152-
listener -> pluginManager.registerEvents(listener, this)))
153-
.onFailure(e -> {
154-
throw new RuntimeException("Failed to register listeners. Terminating...", e);
155-
});
156-
}
157-
158147
@Override
159148
public void onDisable() {
160149
shutdownDependencyInjection();

src/main/java/org/mvplugins/multiverse/netherportals/listeners/MVNPCoreListener.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.mvplugins.multiverse.netherportals.listeners;
22

33
import com.dumptruckman.minecraft.util.Logging;
4+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
45
import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals;
5-
import org.bukkit.event.EventHandler;
66
import org.mvplugins.multiverse.core.event.MVConfigReloadEvent;
77
import org.mvplugins.multiverse.core.event.MVDebugModeEvent;
88
import org.mvplugins.multiverse.core.event.MVDumpsDebugInfoEvent;
@@ -26,7 +26,7 @@ final class MVNPCoreListener implements MVNPListener {
2626
*
2727
* @param event The Config Reload event.
2828
*/
29-
@EventHandler
29+
@EventMethod
3030
public void configReloadEvent(MVConfigReloadEvent event) {
3131
this.plugin.loadConfig();
3232
event.addConfig("Multiverse-NetherPortals - config.yml");
@@ -37,7 +37,7 @@ public void configReloadEvent(MVConfigReloadEvent event) {
3737
*
3838
* @param event The Version event.
3939
*/
40-
@EventHandler
40+
@EventMethod
4141
public void versionEvent(MVDumpsDebugInfoEvent event) {
4242
event.appendDebugInfo(this.plugin.getDebugInfo());
4343
File configFile = new File(this.plugin.getDataFolder(), "config.yml");
@@ -49,7 +49,7 @@ public void versionEvent(MVDumpsDebugInfoEvent event) {
4949
*
5050
* @param event The Debug Mode event.
5151
*/
52-
@EventHandler
52+
@EventMethod
5353
public void debugModeChange(MVDebugModeEvent event) {
5454
Logging.setDebugLevel(event.getLevel());
5555
}

src/main/java/org/mvplugins/multiverse/netherportals/listeners/MVNPEntityListener.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package org.mvplugins.multiverse.netherportals.listeners;
22

33
import com.dumptruckman.minecraft.util.Logging;
4+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.DefaultEventPriority;
5+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
46
import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals;
57
import org.mvplugins.multiverse.netherportals.utils.EndPlatformCreator;
68
import org.mvplugins.multiverse.netherportals.utils.MVEventRecord;
@@ -14,7 +16,6 @@
1416
import org.bukkit.block.BlockFace;
1517
import org.bukkit.entity.Entity;
1618
import org.bukkit.entity.Player;
17-
import org.bukkit.event.EventHandler;
1819
import org.bukkit.event.EventPriority;
1920
import org.bukkit.event.entity.EntityPortalEnterEvent;
2021
import org.bukkit.event.entity.EntityPortalEvent;
@@ -87,7 +88,7 @@ final class MVNPEntityListener implements MVNPListener {
8788
* @param type The type of portal the Player is trying to enter.
8889
* @return {@code true} iff the player was bounced back.
8990
*/
90-
protected boolean shootPlayer(Player p, Block block, PortalType type) {
91+
private boolean shootPlayer(Player p, Block block, PortalType type) {
9192
if (!plugin.isUsingBounceBack()) {
9293
Logging.finest("Bounceback is disabled. The player is free to walk into the portal!");
9394
return false;
@@ -186,7 +187,8 @@ private Location getLocation(Entity e, Location currentLocation, PortalType type
186187
return newTo;
187188
}
188189

189-
@EventHandler(priority = EventPriority.MONITOR)
190+
@EventMethod
191+
@DefaultEventPriority(EventPriority.MONITOR)
190192
public void onEntityPortalEnter(EntityPortalEnterEvent event) {
191193
if (!(event.getEntity() instanceof Player)) {
192194
return;
@@ -294,7 +296,7 @@ public void onEntityPortalEnter(EntityPortalEnterEvent event) {
294296
});
295297
}
296298

297-
@EventHandler
299+
@EventMethod
298300
public void onEntityPortal(EntityPortalEvent event) {
299301
if (event.isCancelled()) {
300302
Logging.finest("EntityPortalEvent was cancelled! NOT teleporting!");
@@ -377,7 +379,7 @@ else if (newToWorld.getEnvironment() == World.Environment.THE_END && type == Por
377379
}
378380
}
379381

380-
@EventHandler
382+
@EventMethod
381383
public void onEntityPortalExit(EntityPortalExitEvent event) {
382384
if (event.getEntity() instanceof Player) {
383385
Player player = (Player) event.getEntity();

src/main/java/org/mvplugins/multiverse/netherportals/listeners/MVNPEntityPortalReadyListener.java

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
import org.bukkit.Bukkit;
66
import org.bukkit.PortalType;
77
import org.bukkit.World;
8-
import org.bukkit.event.EventHandler;
9-
import org.bukkit.event.Listener;
108
import org.jvnet.hk2.annotations.Service;
11-
import org.mvplugins.multiverse.core.utils.ReflectHelper;
9+
import org.mvplugins.multiverse.core.dynamiclistener.EventRunnable;
10+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventClass;
1211
import org.mvplugins.multiverse.external.jakarta.inject.Inject;
1312
import org.mvplugins.multiverse.external.jetbrains.annotations.NotNull;
1413
import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals;
@@ -24,17 +23,12 @@ final class MVNPEntityPortalReadyListener implements MVNPListener {
2423
MVNPEntityPortalReadyListener(@NotNull MultiverseNetherPortals plugin, @NotNull MVNameChecker nameChecker) {
2524
this.plugin = plugin;
2625
this.nameChecker = nameChecker;
27-
28-
if (ReflectHelper.hasClass("io.papermc.paper.event.entity.EntityPortalReadyEvent")) {
29-
Bukkit.getPluginManager().registerEvents(entityPortalReadyEvent(), plugin);
30-
Logging.finer("Registered EntityPortalReadyEvent listener.");
31-
}
3226
}
3327

34-
private Listener entityPortalReadyEvent() {
35-
return new Listener() {
36-
@EventHandler
37-
public void onEntityPortalReady(EntityPortalReadyEvent event) {
28+
@EventClass("io.papermc.paper.event.entity.EntityPortalReadyEvent")
29+
private EventRunnable entityPortalReadyEvent() {
30+
return new EventRunnable<EntityPortalReadyEvent>() {
31+
public void onEvent(EntityPortalReadyEvent event) {
3832
String fromWorld = event.getEntity().getWorld().getName();
3933
String linkedWorld = getLinkedWorld(fromWorld, event.getPortalType());
4034
if (linkedWorld == null) {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package org.mvplugins.multiverse.netherportals.listeners;
22

3-
import org.bukkit.event.Listener;
43
import org.jvnet.hk2.annotations.Contract;
4+
import org.mvplugins.multiverse.core.dynamiclistener.DynamicListener;
55

66
@Contract
7-
public interface MVNPListener extends Listener {
7+
public interface MVNPListener extends DynamicListener {
88
}

src/main/java/org/mvplugins/multiverse/netherportals/listeners/MVNPPlayerListener.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.mvplugins.multiverse.netherportals.listeners;
22

33
import com.dumptruckman.minecraft.util.Logging;
4+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
45
import org.mvplugins.multiverse.external.vavr.control.Try;
56
import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals;
67
import org.mvplugins.multiverse.netherportals.utils.EndPlatformCreator;
@@ -60,7 +61,7 @@ private Advancement tryGetAdvancement(String advancementName) {
6061
.getOrNull();
6162
}
6263

63-
@EventHandler
64+
@EventMethod
6465
public void onPlayerPortal(PlayerPortalEvent event) {
6566
if (event.isCancelled()) {
6667
Logging.finest("PlayerPortalEvent was cancelled! NOT teleporting!");

src/main/java/org/mvplugins/multiverse/netherportals/listeners/MVNPPluginListener.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import org.bukkit.event.server.PluginDisableEvent;
55
import org.bukkit.event.server.PluginEnableEvent;
66

7+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
78
import org.mvplugins.multiverse.netherportals.MultiverseNetherPortals;
89
import org.mvplugins.multiverse.external.jakarta.inject.Inject;
910
import org.jvnet.hk2.annotations.Service;
@@ -18,14 +19,14 @@ public MVNPPluginListener(MultiverseNetherPortals plugin) {
1819
this.plugin = plugin;
1920
}
2021

21-
@EventHandler
22+
@EventMethod
2223
public void onPluginEnable(PluginEnableEvent event) {
2324
if (event.getPlugin().getDescription().getName().equals("Multiverse-Portals")) {
2425
this.plugin.setPortals(event.getPlugin());
2526
}
2627
}
2728

28-
@EventHandler
29+
@EventMethod
2930
public void onPluginDisable(PluginDisableEvent event) {
3031
if (event.getPlugin().getDescription().getName().equals("Multiverse-Portals")) {
3132
this.plugin.setPortals(null);

0 commit comments

Comments
 (0)