From c14723ca4c9148a97223773767941dca0771dca1 Mon Sep 17 00:00:00 2001 From: OilMan Date: Sat, 31 Jan 2026 13:57:41 +0200 Subject: [PATCH 1/4] build: upd Lombok to support Java 21 compilation --- WG/pom.xml | 127 ++++++++++++++++++++++++++++++++--------------------- pom.xml | 91 +++++++++++++++++++++++--------------- 2 files changed, 133 insertions(+), 85 deletions(-) diff --git a/WG/pom.xml b/WG/pom.xml index 0460fa0..84c29a5 100644 --- a/WG/pom.xml +++ b/WG/pom.xml @@ -1,55 +1,82 @@ - 4.0.0 - - net.goldtreeservers - worldguardextraflags - 4.2.5-SNAPSHOT - + 4.0.0 + + net.goldtreeservers + worldguardextraflags + - net.goldtreeservers.worldguardextraflags - wg + net.goldtreeservers.worldguardextraflags + wg - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - sk89q-repo - https://maven.enginehub.org/repo/ - - + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + sk89q-repo + https://maven.enginehub.org/repo/ + + - - - org.spigotmc - spigot-api - 1.20.6-R0.1-SNAPSHOT - provided - - - com.sk89q.worldedit - worldedit-core - 7.2.8 - provided - - - com.sk89q.worldedit - worldedit-bukkit - 7.2.8 - provided - - - com.sk89q.worldguard - worldguard-core - 7.0.6 - provided - - - com.sk89q.worldguard - worldguard-bukkit - 7.0.6 - provided - - + + + org.projectlombok + lombok + 1.18.42 + provided + + + + org.spigotmc + spigot-api + 1.20.6-R0.1-SNAPSHOT + provided + + + com.sk89q.worldedit + worldedit-core + 7.2.8 + provided + + + com.sk89q.worldedit + worldedit-bukkit + 7.2.8 + provided + + + com.sk89q.worldguard + worldguard-core + 7.0.6 + provided + + + com.sk89q.worldguard + worldguard-bukkit + 7.0.6 + provided + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 21 + 21 + + + org.projectlombok + lombok + 1.18.42 + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index bf5cd70..5b158ce 100644 --- a/pom.xml +++ b/pom.xml @@ -1,38 +1,59 @@ - 4.0.0 - net.goldtreeservers - worldguardextraflags - WorldGuardExtraFlags - 4.2.5-SNAPSHOT - - pom - - - - - org.apache.maven.plugins - maven-compiler-plugin - 3.13.0 - - 21 - 21 - - - - - - - - org.projectlombok - lombok - 1.18.32 - provided - - - - - WG - Spigot - + 4.0.0 + net.goldtreeservers + worldguardextraflags + WorldGuardExtraFlags + + pom + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.13.0 + + 21 + 21 + UTF-8 + + + + org.projectlombok + lombok + 1.18.42 + + + + + -J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED + -J--add-opens=jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED + + + + + + + + + org.projectlombok + lombok + 1.18.42 + provided + + + + + WG + Spigot + \ No newline at end of file From 95c1f0e2e0350453f5b23465b2279f4c47ccbf79 Mon Sep 17 00:00:00 2001 From: OilMan Date: Sat, 31 Jan 2026 13:58:22 +0200 Subject: [PATCH 2/4] build: upd ProtocolLib version dependency --- Spigot/pom.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Spigot/pom.xml b/Spigot/pom.xml index 71e32f5..fa81fd8 100644 --- a/Spigot/pom.xml +++ b/Spigot/pom.xml @@ -105,12 +105,12 @@ 7.0.6 provided - - com.comphenix.protocol - ProtocolLib - 4.5.0 - provided - + + net.dmulloy2 + ProtocolLib + 5.4.0 + provided + org.bstats bstats-bukkit From 032a7ca2506007df7e55de948c885588f11ea0bd Mon Sep 17 00:00:00 2001 From: OilMan Date: Sat, 31 Jan 2026 14:00:41 +0200 Subject: [PATCH 3/4] fix: sync console command dispatch to main thread in WG handlers Prevent 'Asynchronous command dispatch' errors and silent failures for external plugins (e.g., MyCommand) by ensuring Bukkit.dispatchCommand is always executed on the primary server thread. Tested (and fixed) purposly for MyCommand plugin --- .../ConsoleCommandOnEntryFlagHandler.java | 64 ++++++++++++++++++- .../ConsoleCommandOnExitFlagHandler.java | 44 ++++++++++++- 2 files changed, 103 insertions(+), 5 deletions(-) diff --git a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java index 6fd09dc..af89863 100644 --- a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java +++ b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java @@ -9,6 +9,9 @@ import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.session.handler.Handler; import org.bukkit.Bukkit; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.plugin.Plugin; +import org.bukkit.plugin.java.JavaPlugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.regions.ProtectedRegion; @@ -49,13 +52,68 @@ public boolean onCrossBoundary(LocalPlayer player, Location from, Location to, A if (!this.getSession().getManager().hasBypass(player, (World) to.getExtent())) { - for(Set commands_ : commands) + for (Set commands_ : commands) { if (!this.lastCommands.contains(commands_)) { - for(String command : commands_) + Plugin plugin; + try { - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName())); //TODO: Make this better + plugin = JavaPlugin.getProvidingPlugin(this.getClass()); + } + catch (IllegalArgumentException | IllegalStateException e) + { + plugin = Bukkit.getPluginManager().getPlugin("WorldGuardExtraFlags"); + } + + if (plugin == null) + { + Bukkit.getLogger().severe("[WGEF-DEBUG] CRITICAL: Plugin instance is NULL! Commands cannot run."); + break; + } + + if (!plugin.isEnabled()) + { + Bukkit.getLogger().warning("[WGEF-DEBUG] Plugin is disabled, skipping commands."); + break; + } + + final Set commandsToRun = commands_; + final String playerName = player.getName(); + final Plugin pluginFinal = plugin; + + Runnable commandTask = () -> + { + ConsoleCommandSender console = Bukkit.getConsoleSender(); + for (String command : commandsToRun) + { + try + { + if (command == null || command.trim().isEmpty()) continue; + + String cmdToRun = command.replace("%username%", playerName).trim(); + if (cmdToRun.startsWith("/")) + { + cmdToRun = cmdToRun.substring(1); + } + + Bukkit.dispatchCommand(console, cmdToRun); + } + catch (Throwable t) + { + pluginFinal.getLogger().warning("[WGEF-Error] Failed to execute command '" + command + "' for " + playerName); + t.printStackTrace(); + } + } + }; + + if (Bukkit.isPrimaryThread()) + { + commandTask.run(); + } + else + { + Bukkit.getScheduler().runTask(pluginFinal, commandTask); } break; diff --git a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnExitFlagHandler.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnExitFlagHandler.java index ce09762..1604eda 100644 --- a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnExitFlagHandler.java +++ b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnExitFlagHandler.java @@ -10,6 +10,8 @@ import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.session.handler.Handler; import org.bukkit.Bukkit; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.plugin.Plugin; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.regions.ProtectedRegion; @@ -76,9 +78,47 @@ public boolean onCrossBoundary(LocalPlayer player, Location from, Location to, A { if (!commands.contains(commands_)) { - for (String command : commands_) + final Plugin plugin = Bukkit.getPluginManager().getPlugin("WorldGuardExtraFlags"); + if (plugin == null || !plugin.isEnabled()) { - Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), command.substring(1).replace("%username%", player.getName())); //TODO: Make this better + break; + } + + final Set commandsToRun = commands_; + final String playerName = player.getName(); + + Runnable commandTask = () -> + { + ConsoleCommandSender console = Bukkit.getConsoleSender(); + for (String command : commandsToRun) + { + try + { + if (command == null || command.trim().isEmpty()) continue; + + String cmdToRun = command.replace("%username%", playerName).trim(); + if (cmdToRun.startsWith("/")) + { + cmdToRun = cmdToRun.substring(1); + } + + Bukkit.dispatchCommand(console, cmdToRun); + } + catch (Throwable t) + { + plugin.getLogger().warning("Error executing console command '" + command + "' for player " + playerName); + t.printStackTrace(); + } + } + }; + + if (Bukkit.isPrimaryThread()) + { + commandTask.run(); + } + else + { + Bukkit.getScheduler().runTask(plugin, commandTask); } break; From 8c9fd662a3caa2ffb83847d2920694d56e4d8309 Mon Sep 17 00:00:00 2001 From: OilMan Date: Sat, 31 Jan 2026 14:01:32 +0200 Subject: [PATCH 4/4] chore: bump version to 4.2.6-SNAPSHOT --- Spigot/pom.xml | 2 +- Spigot/src/main/resources/plugin.yml | 2 +- WG/pom.xml | 1 + pom.xml | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Spigot/pom.xml b/Spigot/pom.xml index fa81fd8..794c701 100644 --- a/Spigot/pom.xml +++ b/Spigot/pom.xml @@ -5,7 +5,7 @@ net.goldtreeservers worldguardextraflags - 4.2.5-SNAPSHOT + 4.2.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/Spigot/src/main/resources/plugin.yml b/Spigot/src/main/resources/plugin.yml index b7227c0..3d8c12c 100644 --- a/Spigot/src/main/resources/plugin.yml +++ b/Spigot/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: WorldGuardExtraFlags description: Adds more flags to WorldGuard to help manage your server easily! -version: 4.2.5-SNAPSHOT +version: 4.2.6-SNAPSHOT api-version: 1.13 author: isokissa3 diff --git a/WG/pom.xml b/WG/pom.xml index 84c29a5..cfbeb40 100644 --- a/WG/pom.xml +++ b/WG/pom.xml @@ -3,6 +3,7 @@ net.goldtreeservers worldguardextraflags + 4.2.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/pom.xml b/pom.xml index 5b158ce..199b90e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,6 +4,7 @@ net.goldtreeservers worldguardextraflags WorldGuardExtraFlags + 4.2.6-SNAPSHOT pom