From 81daa2f46fa25474ee01ddfe17fbbc6a7fa9611c Mon Sep 17 00:00:00 2001 From: Loki Rautio Date: Tue, 7 Nov 2023 10:25:12 -0600 Subject: [PATCH] Respect Essentials Commands on Bukkit Servers CommandBook compat within WorldGuard was gutted some time ago, but the commands don't register when CommandBook is present. Make this functionally identical with the similar-featured and popular plugin Essentials. --- .../worldguard/bukkit/BukkitConfigurationManager.java | 9 +++++++++ .../com/sk89q/worldguard/bukkit/WorldGuardPlugin.java | 7 ++++--- .../bukkit/listener/WorldGuardServerListener.java | 8 ++++++++ worldguard-bukkit/src/main/resources/defaults/config.yml | 2 +- worldguard-bukkit/src/main/resources/plugin.yml | 2 +- 5 files changed, 23 insertions(+), 5 deletions(-) diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java index 3e898e19..bb0c69cf 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/BukkitConfigurationManager.java @@ -37,6 +37,7 @@ public class BukkitConfigurationManager extends YamlConfigurationManager { private boolean hasCommandBookGodMode; boolean extraStats; + private boolean hasEssentialsGodMode; /** * Construct the object. @@ -124,4 +125,12 @@ public void updateCommandBookGodMode() { public boolean hasCommandBookGodMode() { return hasCommandBookGodMode; } + + public void updateEssentialsGodMode() { + hasEssentialsGodMode = plugin.getServer().getPluginManager().isPluginEnabled("Essentials"); + } + + public boolean hasEssentialsGodMode() { + return hasEssentialsGodMode; + } } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java index 3ba99792..df4517cf 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java @@ -160,7 +160,10 @@ public void onEnable() { reg.register(ToggleCommands.class); reg.register(ProtectionCommands.class); - if (!platform.getGlobalStateManager().hasCommandBookGodMode()) { + platform.getGlobalStateManager().updateCommandBookGodMode(); + platform.getGlobalStateManager().updateEssentialsGodMode(); + + if (!platform.getGlobalStateManager().hasCommandBookGodMode() && !platform.getGlobalStateManager().hasEssentialsGodMode()) { reg.register(GeneralCommands.class); } @@ -192,8 +195,6 @@ public void onEnable() { (new DebuggingListener(this, WorldGuard.logger)).registerEvents(); } - platform.getGlobalStateManager().updateCommandBookGodMode(); - if (getServer().getPluginManager().isPluginEnabled("CommandBook")) { getServer().getPluginManager().registerEvents(new WorldGuardCommandBookListener(this), this); } diff --git a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardServerListener.java b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardServerListener.java index 27923286..98f48960 100644 --- a/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardServerListener.java +++ b/worldguard-bukkit/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardServerListener.java @@ -35,6 +35,10 @@ public void onPluginEnable(PluginEnableEvent event) { if (event.getPlugin().getDescription().getName().equalsIgnoreCase("CommandBook")) { getConfig().updateCommandBookGodMode(); } + + if(event.getPlugin().getDescription().getName().equalsIgnoreCase("Essentials")){ + getConfig().updateEssentialsGodMode(); + } } @EventHandler @@ -42,5 +46,9 @@ public void onPluginDisable(PluginDisableEvent event) { if (event.getPlugin().getDescription().getName().equalsIgnoreCase("CommandBook")) { getConfig().updateCommandBookGodMode(); } + + if(event.getPlugin().getDescription().getName().equalsIgnoreCase("Essentials")){ + getConfig().updateEssentialsGodMode(); + } } } diff --git a/worldguard-bukkit/src/main/resources/defaults/config.yml b/worldguard-bukkit/src/main/resources/defaults/config.yml index 4501e6fb..cc38d855 100644 --- a/worldguard-bukkit/src/main/resources/defaults/config.yml +++ b/worldguard-bukkit/src/main/resources/defaults/config.yml @@ -12,7 +12,7 @@ # - If you want to check the format of this file before putting it # into WorldGuard, paste it into http://yaml-online-parser.appspot.com/ # and see if it gives "ERROR:". -# - Lines starting with # are commentsand so they are ignored. +# - Lines starting with # are comments and so they are ignored. # # WARNING: # Remember to check the compatibility spreadsheet for WorldGuard to see diff --git a/worldguard-bukkit/src/main/resources/plugin.yml b/worldguard-bukkit/src/main/resources/plugin.yml index 223be72f..2134a320 100644 --- a/worldguard-bukkit/src/main/resources/plugin.yml +++ b/worldguard-bukkit/src/main/resources/plugin.yml @@ -2,5 +2,5 @@ name: WorldGuard main: com.sk89q.worldguard.bukkit.WorldGuardPlugin version: "${internalVersion}" depend: [WorldEdit] -softdepend: [CommandBook] +softdepend: [CommandBook, Essentials] api-version: "1.20"