diff --git a/Spigot/pom.xml b/Spigot/pom.xml
index 71e32f58..794c7019 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
@@ -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
diff --git a/Spigot/src/main/resources/plugin.yml b/Spigot/src/main/resources/plugin.yml
index b7227c05..3d8c12c9 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 0460fa0d..cfbeb400 100644
--- a/WG/pom.xml
+++ b/WG/pom.xml
@@ -1,55 +1,83 @@
- 4.0.0
-
- net.goldtreeservers
- worldguardextraflags
- 4.2.5-SNAPSHOT
-
+ 4.0.0
+
+ net.goldtreeservers
+ worldguardextraflags
+ 4.2.6-SNAPSHOT
+
- 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/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/handlers/ConsoleCommandOnEntryFlagHandler.java
index 6fd09dcd..af898630 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 ce097627..1604edac 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;
diff --git a/pom.xml b/pom.xml
index bf5cd704..199b90ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,38 +1,60 @@
- 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
+ 4.2.6-SNAPSHOT
+
+ 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