Skip to content

Commit 5c9e351

Browse files
committed
Fix deprecated PlayerSpawnChangeEvent by migrating to dynamic listener
1 parent 2047b6f commit 5c9e351

12 files changed

Lines changed: 160 additions & 120 deletions

File tree

src/main/java/org/mvplugins/multiverse/inventories/MultiverseInventories.java

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,8 @@
1616
import org.mvplugins.multiverse.inventories.dataimport.DataImportManager;
1717
import org.mvplugins.multiverse.inventories.dataimport.DataImporter;
1818
import org.mvplugins.multiverse.inventories.destination.LastLocationDestination;
19-
import org.mvplugins.multiverse.inventories.handleshare.ShareHandleListener;
2019
import org.mvplugins.multiverse.inventories.handleshare.SingleShareWriter;
21-
import org.mvplugins.multiverse.inventories.handleshare.SpawnChangeListener;
20+
import org.mvplugins.multiverse.inventories.listeners.MVInvListener;
2221
import org.mvplugins.multiverse.inventories.handleshare.WriteOnlyShareHandler;
2322
import org.mvplugins.multiverse.inventories.profile.PlayerNamesMapper;
2423
import org.mvplugins.multiverse.inventories.profile.ProfileCacheManager;
@@ -55,12 +54,6 @@ public class MultiverseInventories extends MultiverseModule {
5554
@Inject
5655
private Provider<InventoriesConfig> inventoriesConfig;
5756
@Inject
58-
private Provider<ShareHandleListener> shareHandleListener;
59-
@Inject
60-
private Provider<RespawnListener> respawnListener;
61-
@Inject
62-
private Provider<MVEventsListener> mvEventsListener;
63-
@Inject
6457
private Provider<WorldGroupManager> worldGroupManager;
6558
@Inject
6659
private Provider<PlayerNamesMapper> playerNamesMapperProvider;
@@ -82,7 +75,6 @@ public class MultiverseInventories extends MultiverseModule {
8275
private Provider<MVInvCommandPermissions> mvInvCommandPermissions;
8376

8477
private InventoriesDupingPatch dupingPatch;
85-
private boolean usingSpawnChangeEvent = false;
8678

8779
public MultiverseInventories() {
8880
super();
@@ -114,7 +106,7 @@ public final void onEnable() {
114106
inventoriesConfig.get().save().onFailure(e -> Logging.severe("Failed to save config file!"));
115107

116108
// Register Stuff
117-
this.registerEvents();
109+
this.registerDynamicListeners(MVInvListener.class);
118110
this.setUpLocales();
119111
this.registerCommands();
120112
this.registerDestinations();
@@ -160,23 +152,6 @@ public void onDisable() {
160152
Logging.shutdown();
161153
}
162154

163-
private void registerEvents() {
164-
PluginManager pluginManager = this.getServer().getPluginManager();
165-
pluginManager.registerEvents(shareHandleListener.get(), this);
166-
pluginManager.registerEvents(respawnListener.get(), this);
167-
pluginManager.registerEvents(mvEventsListener.get(), this);
168-
if (inventoriesConfig.get().getUseImprovedRespawnLocationDetection()) {
169-
try {
170-
Class.forName("org.bukkit.event.player.PlayerSpawnChangeEvent");
171-
pluginManager.registerEvents(new SpawnChangeListener(this), this);
172-
usingSpawnChangeEvent = true;
173-
Logging.fine("Yayy PlayerSpawnChangeEvent will be used!");
174-
} catch (ClassNotFoundException e) {
175-
Logging.fine("PlayerSpawnChangeEvent will not be used!");
176-
}
177-
}
178-
}
179-
180155
private void registerCommands() {
181156
Try.run(() -> {
182157
mvInvCommandCompletion.get();
@@ -259,8 +234,4 @@ public void reloadConfig() {
259234
worldGroupManager.get().checkForConflicts(null);
260235
}, 1L);
261236
}
262-
263-
public boolean isUsingSpawnChangeEvent() {
264-
return usingSpawnChangeEvent;
265-
}
266237
}

src/main/java/org/mvplugins/multiverse/inventories/handleshare/GameModeShareHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
/**
2020
* GameMode change implementation of ShareHandler.
2121
*/
22-
final class GameModeShareHandler extends ShareHandler {
22+
public final class GameModeShareHandler extends ShareHandler {
2323

2424
private final GameMode fromGameMode;
2525
private final GameMode toGameMode;
@@ -28,7 +28,7 @@ final class GameModeShareHandler extends ShareHandler {
2828
private final String world;
2929
private final List<WorldGroup> worldGroups;
3030

31-
GameModeShareHandler(MultiverseInventories inventories, Player player,
31+
public GameModeShareHandler(MultiverseInventories inventories, Player player,
3232
GameMode fromGameMode, GameMode toGameMode) {
3333
super(inventories, player);
3434
this.fromGameMode = fromGameMode;

src/main/java/org/mvplugins/multiverse/inventories/handleshare/SpawnChangeListener.java

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/main/java/org/mvplugins/multiverse/inventories/handleshare/WorldChangeShareHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
/**
1717
* WorldChange implementation of ShareHandler.
1818
*/
19-
final class WorldChangeShareHandler extends ShareHandler {
19+
public final class WorldChangeShareHandler extends ShareHandler {
2020

2121
private final String fromWorld;
2222
private final String toWorld;
2323
private final List<WorldGroup> fromWorldGroups;
2424
private final List<WorldGroup> toWorldGroups;
2525

26-
WorldChangeShareHandler(MultiverseInventories inventories, Player player, String fromWorld, String toWorld) {
26+
public WorldChangeShareHandler(MultiverseInventories inventories, Player player, String fromWorld, String toWorld) {
2727
super(inventories, player);
2828
this.fromWorld = fromWorld;
2929
this.toWorld = toWorld;

src/main/java/org/mvplugins/multiverse/inventories/MVEventsListener.java renamed to src/main/java/org/mvplugins/multiverse/inventories/listeners/MVEventsListener.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,23 @@
1-
package org.mvplugins.multiverse.inventories;
1+
package org.mvplugins.multiverse.inventories.listeners;
22

33
import com.dumptruckman.minecraft.util.Logging;
4-
import org.bukkit.event.EventHandler;
5-
import org.bukkit.event.Listener;
64
import org.jetbrains.annotations.NotNull;
75
import org.jvnet.hk2.annotations.Service;
6+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
87
import org.mvplugins.multiverse.core.event.MVConfigReloadEvent;
98
import org.mvplugins.multiverse.core.event.MVDebugModeEvent;
109
import org.mvplugins.multiverse.core.event.MVDumpsDebugInfoEvent;
1110
import org.mvplugins.multiverse.external.jakarta.inject.Inject;
11+
import org.mvplugins.multiverse.inventories.MultiverseInventories;
1212
import org.mvplugins.multiverse.inventories.config.InventoriesConfig;
1313
import org.mvplugins.multiverse.inventories.profile.ProfileCacheManager;
14-
import org.mvplugins.multiverse.inventories.profile.ProfileDataSource;
1514
import org.mvplugins.multiverse.inventories.profile.group.WorldGroup;
1615
import org.mvplugins.multiverse.inventories.profile.group.WorldGroupManager;
1716

1817
import java.io.File;
1918

2019
@Service
21-
final class MVEventsListener implements Listener {
20+
final class MVEventsListener implements MVInvListener {
2221

2322
private final MultiverseInventories inventories;
2423
private final InventoriesConfig config;
@@ -42,7 +41,7 @@ final class MVEventsListener implements Listener {
4241
*
4342
* @param event The MVVersionEvent that this plugin will listen for.
4443
*/
45-
@EventHandler
44+
@EventMethod
4645
void dumpsDebugInfoRequest(MVDumpsDebugInfoEvent event) {
4746
event.appendDebugInfo(getDebugInfo());
4847
File configFile = new File(this.inventories.getDataFolder(), "config.yml");
@@ -94,7 +93,7 @@ private String getDebugInfo() {
9493
return versionInfo.toString();
9594
}
9695

97-
@EventHandler
96+
@EventMethod
9897
void onDebugModeChange(MVDebugModeEvent event) {
9998
Logging.setDebugLevel(event.getLevel());
10099
}
@@ -104,7 +103,7 @@ void onDebugModeChange(MVDebugModeEvent event) {
104103
*
105104
* @param event The MVConfigReloadEvent that this plugin will listen for.
106105
*/
107-
@EventHandler
106+
@EventMethod
108107
void configReload(MVConfigReloadEvent event) {
109108
this.inventories.reloadConfig();
110109
event.addConfig("Multiverse-Inventories - config.yml");
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package org.mvplugins.multiverse.inventories.listeners;
2+
3+
import org.jvnet.hk2.annotations.Contract;
4+
import org.mvplugins.multiverse.core.dynamiclistener.DynamicListener;
5+
6+
@Contract
7+
public sealed interface MVInvListener extends DynamicListener permits MVEventsListener, RespawnListener, ShareHandleListener, SpawnChangeListener {
8+
}

src/main/java/org/mvplugins/multiverse/inventories/RespawnListener.java renamed to src/main/java/org/mvplugins/multiverse/inventories/listeners/RespawnListener.java

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package org.mvplugins.multiverse.inventories;
1+
package org.mvplugins.multiverse.inventories.listeners;
22

33
import org.bukkit.Location;
44
import org.bukkit.World;
5-
import org.bukkit.event.EventHandler;
65
import org.bukkit.event.EventPriority;
7-
import org.bukkit.event.Listener;
86
import org.bukkit.event.player.PlayerRespawnEvent;
97
import org.jvnet.hk2.annotations.Service;
8+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.DefaultEventPriority;
9+
import org.mvplugins.multiverse.core.dynamiclistener.annotations.EventMethod;
1010
import org.mvplugins.multiverse.core.world.LoadedMultiverseWorld;
1111
import org.mvplugins.multiverse.core.world.WorldManager;
1212
import org.mvplugins.multiverse.external.jakarta.inject.Inject;
@@ -19,7 +19,7 @@
1919
* Specific events for handling player respawns location
2020
*/
2121
@Service
22-
final class RespawnListener implements Listener {
22+
final class RespawnListener implements MVInvListener {
2323

2424
private final WorldGroupManager worldGroupManager;
2525
private final WorldManager worldManager;
@@ -38,7 +38,8 @@ final class RespawnListener implements Listener {
3838
*
3939
* @param event The player respawn event.
4040
*/
41-
@EventHandler(priority = EventPriority.LOWEST)
41+
@EventMethod
42+
@DefaultEventPriority(EventPriority.LOWEST)
4243
void lowestPriorityRespawn(PlayerRespawnEvent event) {
4344
if (!event.isBedSpawn()) {
4445
World world = event.getPlayer().getWorld();
@@ -52,7 +53,8 @@ void lowestPriorityRespawn(PlayerRespawnEvent event) {
5253
*
5354
* @param event The player respawn event.
5455
*/
55-
@EventHandler(priority = EventPriority.LOW)
56+
@EventMethod
57+
@DefaultEventPriority(EventPriority.LOW)
5658
void lowPriorityRespawn(PlayerRespawnEvent event) {
5759
if (!event.isBedSpawn()) {
5860
this.handleRespawn(event, EventPriority.LOW);
@@ -64,7 +66,8 @@ void lowPriorityRespawn(PlayerRespawnEvent event) {
6466
*
6567
* @param event The player respawn event.
6668
*/
67-
@EventHandler(priority = EventPriority.NORMAL)
69+
@EventMethod
70+
@DefaultEventPriority(EventPriority.NORMAL)
6871
void normalPriorityRespawn(PlayerRespawnEvent event) {
6972
if (!event.isBedSpawn()) {
7073
this.handleRespawn(event, EventPriority.NORMAL);
@@ -76,7 +79,8 @@ void normalPriorityRespawn(PlayerRespawnEvent event) {
7679
*
7780
* @param event The player respawn event.
7881
*/
79-
@EventHandler(priority = EventPriority.HIGH)
82+
@EventMethod
83+
@DefaultEventPriority(EventPriority.HIGH)
8084
void highPriorityRespawn(PlayerRespawnEvent event) {
8185
if (!event.isBedSpawn()) {
8286
this.handleRespawn(event, EventPriority.HIGH);
@@ -88,7 +92,8 @@ void highPriorityRespawn(PlayerRespawnEvent event) {
8892
*
8993
* @param event The player respawn event.
9094
*/
91-
@EventHandler(priority = EventPriority.HIGHEST)
95+
@EventMethod
96+
@DefaultEventPriority(EventPriority.HIGHEST)
9297
void highestPriorityRespawn(PlayerRespawnEvent event) {
9398
if (!event.isBedSpawn()) {
9499
this.handleRespawn(event, EventPriority.HIGHEST);
@@ -100,7 +105,8 @@ void highestPriorityRespawn(PlayerRespawnEvent event) {
100105
*
101106
* @param event The player respawn event.
102107
*/
103-
@EventHandler(priority = EventPriority.MONITOR)
108+
@EventMethod
109+
@DefaultEventPriority(EventPriority.MONITOR)
104110
void monitorPriorityRespawn(PlayerRespawnEvent event) {
105111
if (!event.isBedSpawn()) {
106112
this.handleRespawn(event, EventPriority.MONITOR);

0 commit comments

Comments
 (0)