From 2db55fab3b39d32acbb4e7da6473d8a241334256 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Thu, 1 Jan 2026 23:12:42 +0800 Subject: [PATCH] Add event priority configuration for PlayerChangedWorldEvent --- .../mvplugins/multiverse/core/config/CoreConfig.java | 10 ++++++++++ .../multiverse/core/config/CoreConfigNodes.java | 12 ++++++++++++ .../multiverse/core/listeners/MVPlayerListener.java | 4 ++-- src/test/resources/configs/fresh_config.yml | 1 + 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/mvplugins/multiverse/core/config/CoreConfig.java b/src/main/java/org/mvplugins/multiverse/core/config/CoreConfig.java index d8a1bec15..de7c22e75 100644 --- a/src/main/java/org/mvplugins/multiverse/core/config/CoreConfig.java +++ b/src/main/java/org/mvplugins/multiverse/core/config/CoreConfig.java @@ -641,6 +641,16 @@ public EventPriority getEventPriorityPlayerTeleport() { return configHandle.get(configNodes.eventPriorityPlayerTeleport); } + @ApiStatus.AvailableSince("5.5") + public Try setEventPriorityPlayerWorldChange(EventPriority eventPriorityPlayerWorldChange) { + return configHandle.set(configNodes.eventPriorityPlayerWorldChange, eventPriorityPlayerWorldChange); + } + + @ApiStatus.AvailableSince("5.5") + public EventPriority getEventPriorityPlayerWorldChange() { + return configHandle.get(configNodes.eventPriorityPlayerWorldChange); + } + public Try setBukkitYmlPath(String bukkitYmlPath) { return configHandle.set(configNodes.bukkitYmlPath, bukkitYmlPath); } diff --git a/src/main/java/org/mvplugins/multiverse/core/config/CoreConfigNodes.java b/src/main/java/org/mvplugins/multiverse/core/config/CoreConfigNodes.java index 0dc3f6dda..1c73e4650 100644 --- a/src/main/java/org/mvplugins/multiverse/core/config/CoreConfigNodes.java +++ b/src/main/java/org/mvplugins/multiverse/core/config/CoreConfigNodes.java @@ -545,6 +545,18 @@ private N node(N node) { "full effect after a server restart.")) .build()); + final ConfigNode eventPriorityPlayerWorldChange = node(ConfigNode.builder("event-priority.player-changed-world", EventPriority.class) + .defaultValue(EventPriority.NORMAL) + .name("event-priority-player-changed-world") + .comment("") + .comment("This config option defines the priority for the PlayerChangedWorldEvent.") + .onLoadAndChange((oldValue, newValue) -> + eventPriorityMapper.get().setPriority("mvcore-player-changed-world", newValue)) + .onChange((sender, oldValue, newValue) -> + sender.sendMessage(ChatColor.YELLOW + "'event-priority.player-changed-world' config option will only take " + + "full effect after a server restart.")) + .build()); + private final ConfigHeaderNode miscHeader = node(ConfigHeaderNode.builder("misc") .comment("") .comment("") diff --git a/src/main/java/org/mvplugins/multiverse/core/listeners/MVPlayerListener.java b/src/main/java/org/mvplugins/multiverse/core/listeners/MVPlayerListener.java index 9d459e9bc..fd5c98e3b 100644 --- a/src/main/java/org/mvplugins/multiverse/core/listeners/MVPlayerListener.java +++ b/src/main/java/org/mvplugins/multiverse/core/listeners/MVPlayerListener.java @@ -257,9 +257,9 @@ private void teleportToDestinationOnJoin(Player player, DestinationInstance