From b167bb8a2f86f4a9242fdd19fa02ef1c0e84d4f0 Mon Sep 17 00:00:00 2001 From: speed <43330808+speedxx@users.noreply.github.com> Date: Thu, 3 Dec 2020 22:22:13 -0500 Subject: [PATCH 1/4] refactor --- WG/pom.xml | 4 ++-- .../goldtreeservers/worldguardextraflags/wg/TFMHandler.java | 5 ++--- .../worldguardextraflags/wg/WorldGuardUtils.java | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/WG/pom.xml b/WG/pom.xml index 40240cf..10ee802 100644 --- a/WG/pom.xml +++ b/WG/pom.xml @@ -70,9 +70,9 @@ provided - me.totalfreedom + com.github.AtlasMediaGroup TotalFreedomMod - 2020.9 + development-0be2aa718f-1 provided diff --git a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/TFMHandler.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/TFMHandler.java index 5304c28..3bb4142 100644 --- a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/TFMHandler.java +++ b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/TFMHandler.java @@ -2,7 +2,6 @@ package net.goldtreeservers.worldguardextraflags.wg; import me.totalfreedom.totalfreedommod.TotalFreedomMod; import org.bukkit.Bukkit; -import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; public class TFMHandler @@ -25,8 +24,8 @@ public class TFMHandler return null; } - public static boolean isStaff(String name) + public static boolean isAdmin(String name) { - return getTFM().sl.getEntryByName(name) != null; + return getTFM().al.getEntryByName(name) != null; } } \ No newline at end of file diff --git a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/WorldGuardUtils.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/WorldGuardUtils.java index 6b9ab62..f87b17e 100644 --- a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/WorldGuardUtils.java +++ b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/WorldGuardUtils.java @@ -45,7 +45,7 @@ public class WorldGuardUtils } // Fuck your shitty permission system - packs - return TFMHandler.isStaff(player.getName()); + return TFMHandler.isAdmin(player.getName()); } public static State queryState(Player player, World world, Set regions, StateFlag flag) From 45727808273d85c5703995a2c20e47147da598f7 Mon Sep 17 00:00:00 2001 From: aromaa Date: Sun, 13 Dec 2020 19:36:52 +0200 Subject: [PATCH 2/4] Disable block specifig flags on WG 7, fixes #152 --- .../WorldGuardExtraFlagsPlugin.java | 13 ++- .../listeners/BlockListener.java | 82 ------------------- .../wg/wrappers/WorldGuardCommunicator.java | 14 +++- .../v6/WorldGuardSixCommunicator.java | 6 ++ .../v7/WorldGuardSevenCommunicator.java | 6 ++ 5 files changed, 28 insertions(+), 93 deletions(-) diff --git a/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java index 4c08914..30644cc 100644 --- a/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java +++ b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/WorldGuardExtraFlagsPlugin.java @@ -8,6 +8,7 @@ import java.util.Set; import java.util.concurrent.Callable; import java.util.stream.Collectors; +import net.goldtreeservers.worldguardextraflags.listeners.*; import org.bstats.bukkit.Metrics; import org.bukkit.World; import org.bukkit.block.BlockState; @@ -23,13 +24,6 @@ import lombok.Getter; import net.goldtreeservers.worldguardextraflags.essentials.EssentialsHelper; import net.goldtreeservers.worldguardextraflags.fawe.FAWEHelper; import net.goldtreeservers.worldguardextraflags.flags.Flags; -import net.goldtreeservers.worldguardextraflags.listeners.BlockListener; -import net.goldtreeservers.worldguardextraflags.listeners.EntityListener; -import net.goldtreeservers.worldguardextraflags.listeners.EntityListenerOnePointNine; -import net.goldtreeservers.worldguardextraflags.listeners.EntityPotionEffectEventListener; -import net.goldtreeservers.worldguardextraflags.listeners.PlayerListener; -import net.goldtreeservers.worldguardextraflags.listeners.WorldEditListener; -import net.goldtreeservers.worldguardextraflags.listeners.WorldListener; import net.goldtreeservers.worldguardextraflags.protocollib.ProtocolLibHelper; import net.goldtreeservers.worldguardextraflags.utils.SupportedFeatures; import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils; @@ -143,6 +137,11 @@ public class WorldGuardExtraFlagsPlugin extends AbstractWorldGuardExtraFlagsPlug this.getServer().getPluginManager().registerEvents(new PlayerListener(this), this); this.getServer().getPluginManager().registerEvents(new BlockListener(this), this); this.getServer().getPluginManager().registerEvents(new WorldListener(this), this); + + if (this.worldGuardCommunicator.isLegacy()) + { + this.getServer().getPluginManager().registerEvents(new BlockListenerWG(this), this); + } try { diff --git a/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java index 92808b2..b0e2104 100644 --- a/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java +++ b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListener.java @@ -59,86 +59,4 @@ public class BlockListener implements Listener } } } - - //TODO: Figure out something better for this - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) - public void onBlockPlaceEvent(PlaceBlockEvent event) - { - Result originalResult = event.getResult(); - Object cause = event.getCause().getRootCause(); - - if (cause instanceof Player) - { - Player player = (Player)cause; - - for(Block block : event.getBlocks()) - { - Material type = block.getType(); - if (type == Material.AIR) //Workaround for https://github.com/aromaa/WorldGuardExtraFlagsPlugin/issues/12 - { - type = event.getEffectiveMaterial(); - } - - ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(block.getLocation()); - - Set state = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.ALLOW_BLOCK_PLACE); - if (state != null && state.contains(type)) - { - event.setResult(Result.ALLOW); - } - else - { - Set state2 = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.DENY_BLOCK_PLACE); - if (state2 != null && state2.contains(type)) - { - event.setResult(Result.DENY); - return; - } - else - { - event.setResult(originalResult); - return; - } - } - } - } - } - - //TODO: Figure out something better for this - @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) - public void onBlockBreakEvent(BreakBlockEvent event) - { - Result originalResult = event.getResult(); - Object cause = event.getCause().getRootCause(); - - if (cause instanceof Player) - { - Player player = (Player)cause; - - for(Block block : event.getBlocks()) - { - ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(block.getLocation()); - - Set state = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.ALLOW_BLOCK_BREAK); - if (state != null && state.contains(block.getType())) - { - event.setResult(Result.ALLOW); - } - else - { - Set state2 = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.DENY_BLOCK_BREAK); - if (state2 != null && state2.contains(block.getType())) - { - event.setResult(Result.DENY); - return; - } - else - { - event.setResult(originalResult); - return; - } - } - } - } - } } diff --git a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/WorldGuardCommunicator.java b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/WorldGuardCommunicator.java index 4329044..52a4df8 100644 --- a/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/WorldGuardCommunicator.java +++ b/WG/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/WorldGuardCommunicator.java @@ -54,14 +54,18 @@ public interface WorldGuardCommunicator flagRegistry.register(Flags.MYTHICMOB_EGGS); flagRegistry.register(Flags.FROSTWALKER); flagRegistry.register(Flags.NETHER_PORTALS); - flagRegistry.register(Flags.ALLOW_BLOCK_PLACE); - flagRegistry.register(Flags.DENY_BLOCK_PLACE); - flagRegistry.register(Flags.ALLOW_BLOCK_BREAK); - flagRegistry.register(Flags.DENY_BLOCK_BREAK); flagRegistry.register(Flags.GLIDE); flagRegistry.register(Flags.CHUNK_UNLOAD); flagRegistry.register(Flags.ITEM_DURABILITY); flagRegistry.register(Flags.JOIN_LOCATION); + + if (this.isLegacy()) + { + flagRegistry.register(Flags.ALLOW_BLOCK_PLACE); + flagRegistry.register(Flags.DENY_BLOCK_PLACE); + flagRegistry.register(Flags.ALLOW_BLOCK_BREAK); + flagRegistry.register(Flags.DENY_BLOCK_BREAK); + } } default public void onEnable(Plugin plugin) throws Exception @@ -82,6 +86,8 @@ public interface WorldGuardCommunicator sessionManager.registerHandler(PlaySoundsFlagHandler.FACTORY(plugin)); sessionManager.registerHandler(GlideFlagHandler.FACTORY(plugin)); } + + public boolean isLegacy(); public FlagRegistry getFlagRegistry(); diff --git a/WG6/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v6/WorldGuardSixCommunicator.java b/WG6/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v6/WorldGuardSixCommunicator.java index f35cdea..efd9c65 100644 --- a/WG6/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v6/WorldGuardSixCommunicator.java +++ b/WG6/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v6/WorldGuardSixCommunicator.java @@ -42,6 +42,12 @@ public class WorldGuardSixCommunicator implements WorldGuardCommunicator WorldGuardCommunicator.super.onEnable(plugin); } + @Override + public boolean isLegacy() + { + return true; + } + @Override public FlagRegistry getFlagRegistry() { diff --git a/WG7/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v7/WorldGuardSevenCommunicator.java b/WG7/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v7/WorldGuardSevenCommunicator.java index ecd52de..751c16d 100644 --- a/WG7/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v7/WorldGuardSevenCommunicator.java +++ b/WG7/src/main/java/net/goldtreeservers/worldguardextraflags/wg/wrappers/v7/WorldGuardSevenCommunicator.java @@ -57,6 +57,12 @@ public class WorldGuardSevenCommunicator implements WorldGuardCommunicator WorldGuardCommunicator.super.onEnable(plugin); } + @Override + public boolean isLegacy() + { + return false; + } + @Override public FlagRegistry getFlagRegistry() { From 263bb47f1537befbac98b78a3b2b800d79a46362 Mon Sep 17 00:00:00 2001 From: aromaa Date: Sun, 13 Dec 2020 19:41:59 +0200 Subject: [PATCH 3/4] Release 4.1.5 --- Common/pom.xml | 2 +- Spigot-1_14/pom.xml | 2 +- Spigot/pom.xml | 2 +- .../listeners/BlockListenerWG.java | 107 ++++++++++++++++++ WG/pom.xml | 2 +- WG6/pom.xml | 2 +- WG7/pom.xml | 2 +- pom.xml | 2 +- 8 files changed, 114 insertions(+), 7 deletions(-) create mode 100644 Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListenerWG.java diff --git a/Common/pom.xml b/Common/pom.xml index 9f9f352..3bf63b5 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/Spigot-1_14/pom.xml b/Spigot-1_14/pom.xml index 9f6967d..46c95ea 100644 --- a/Spigot-1_14/pom.xml +++ b/Spigot-1_14/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/Spigot/pom.xml b/Spigot/pom.xml index 47f67d1..db6b38e 100644 --- a/Spigot/pom.xml +++ b/Spigot/pom.xml @@ -5,7 +5,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListenerWG.java b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListenerWG.java new file mode 100644 index 0000000..e3f1807 --- /dev/null +++ b/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/listeners/BlockListenerWG.java @@ -0,0 +1,107 @@ +package net.goldtreeservers.worldguardextraflags.listeners; + +import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent; +import com.sk89q.worldguard.bukkit.event.block.PlaceBlockEvent; +import com.sk89q.worldguard.protection.ApplicableRegionSet; +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin; +import net.goldtreeservers.worldguardextraflags.flags.Flags; +import net.goldtreeservers.worldguardextraflags.wg.WorldGuardUtils; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +import java.util.Set; + +@RequiredArgsConstructor +public class BlockListenerWG implements Listener +{ + @Getter private final WorldGuardExtraFlagsPlugin plugin; + + //TODO: Figure out something better for this + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) + public void onBlockPlaceEvent(PlaceBlockEvent event) + { + Event.Result originalResult = event.getResult(); + Object cause = event.getCause().getRootCause(); + + if (cause instanceof Player) + { + Player player = (Player)cause; + + for(Block block : event.getBlocks()) + { + Material type = block.getType(); + if (type == Material.AIR) //Workaround for https://github.com/aromaa/WorldGuardExtraFlagsPlugin/issues/12 + { + type = event.getEffectiveMaterial(); + } + + ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(block.getLocation()); + + Set state = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.ALLOW_BLOCK_PLACE); + if (state != null && state.contains(type)) + { + event.setResult(Event.Result.ALLOW); + } + else + { + Set state2 = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.DENY_BLOCK_PLACE); + if (state2 != null && state2.contains(type)) + { + event.setResult(Event.Result.DENY); + return; + } + else + { + event.setResult(originalResult); + return; + } + } + } + } + } + + //TODO: Figure out something better for this + @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = false) + public void onBlockBreakEvent(BreakBlockEvent event) + { + Event.Result originalResult = event.getResult(); + Object cause = event.getCause().getRootCause(); + + if (cause instanceof Player) + { + Player player = (Player)cause; + + for(Block block : event.getBlocks()) + { + ApplicableRegionSet regions = this.plugin.getWorldGuardCommunicator().getRegionContainer().createQuery().getApplicableRegions(block.getLocation()); + + Set state = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.ALLOW_BLOCK_BREAK); + if (state != null && state.contains(block.getType())) + { + event.setResult(Event.Result.ALLOW); + } + else + { + Set state2 = WorldGuardUtils.queryValue(player, player.getWorld(), regions.getRegions(), Flags.DENY_BLOCK_BREAK); + if (state2 != null && state2.contains(block.getType())) + { + event.setResult(Event.Result.DENY); + return; + } + else + { + event.setResult(originalResult); + return; + } + } + } + } + } +} diff --git a/WG/pom.xml b/WG/pom.xml index d923cde..9c491b7 100644 --- a/WG/pom.xml +++ b/WG/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/WG6/pom.xml b/WG6/pom.xml index abda719..8a132b1 100644 --- a/WG6/pom.xml +++ b/WG6/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/WG7/pom.xml b/WG7/pom.xml index 9c9f665..d31791a 100644 --- a/WG7/pom.xml +++ b/WG7/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5-SNAPSHOT + 4.1.5 net.goldtreeservers.worldguardextraflags diff --git a/pom.xml b/pom.xml index 2e85eaf..5ac6beb 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ net.goldtreeservers worldguardextraflags WorldGuardExtraFlags - 4.1.5-SNAPSHOT + 4.1.5 pom From 32e27117324e1d15ed70105cff0c36c4a889660d Mon Sep 17 00:00:00 2001 From: aromaa Date: Sun, 13 Dec 2020 19:44:59 +0200 Subject: [PATCH 4/4] Back to snapshot --- Common/pom.xml | 2 +- Spigot-1_14/pom.xml | 2 +- Spigot/pom.xml | 2 +- WG/pom.xml | 2 +- WG6/pom.xml | 2 +- WG7/pom.xml | 2 +- pom.xml | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Common/pom.xml b/Common/pom.xml index 3bf63b5..f732b2b 100644 --- a/Common/pom.xml +++ b/Common/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/Spigot-1_14/pom.xml b/Spigot-1_14/pom.xml index 46c95ea..889baa8 100644 --- a/Spigot-1_14/pom.xml +++ b/Spigot-1_14/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/Spigot/pom.xml b/Spigot/pom.xml index db6b38e..9eb70fd 100644 --- a/Spigot/pom.xml +++ b/Spigot/pom.xml @@ -5,7 +5,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/WG/pom.xml b/WG/pom.xml index 9c491b7..0ac2ee6 100644 --- a/WG/pom.xml +++ b/WG/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/WG6/pom.xml b/WG6/pom.xml index 8a132b1..c8f9dc6 100644 --- a/WG6/pom.xml +++ b/WG6/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/WG7/pom.xml b/WG7/pom.xml index d31791a..695f1a5 100644 --- a/WG7/pom.xml +++ b/WG7/pom.xml @@ -3,7 +3,7 @@ net.goldtreeservers worldguardextraflags - 4.1.5 + 4.1.6-SNAPSHOT net.goldtreeservers.worldguardextraflags diff --git a/pom.xml b/pom.xml index 5ac6beb..4950ca8 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ net.goldtreeservers worldguardextraflags WorldGuardExtraFlags - 4.1.5 + 4.1.6-SNAPSHOT pom