From d203772a9a322ca7e064dbd622222c84968f0830 Mon Sep 17 00:00:00 2001 From: Telesphoreo Date: Sat, 26 Sep 2020 14:52:13 -0500 Subject: [PATCH] This somehow got reverted back to the old version Reblocks bigtree in the plotworld as it is used to grief. Players can still use the /tool tree comamnd from WorldEdit to achieve the same thing --- .../world/WorldRestrictions.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java index 53abb65a..ff3d35bb 100644 --- a/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java +++ b/src/main/java/me/totalfreedom/totalfreedommod/world/WorldRestrictions.java @@ -10,6 +10,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import me.totalfreedom.totalfreedommod.FreedomService; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.World; import org.bukkit.entity.Player; @@ -28,6 +29,9 @@ public class WorldRestrictions extends FreedomService private final List BLOCKED_WORLDEDIT_COMMANDS = Arrays.asList( "green", "fixlava", "fixwater", "br", "brush", "tool", "mat", "range", "cs", "up", "fill", "setblock", "tree", "replacenear", "bigtree"); + private final List BLOCKED_ESSENTIALS_COMMANDS = Arrays.asList( + "bigtree", "ebigtree", "largetree", "elargetree"); + private final Map, Object> flags = new HashMap, Object>() {{ put(Flags.PLACE_VEHICLE, StateFlag.State.DENY); @@ -57,12 +61,7 @@ public class WorldRestrictions extends FreedomService } } - if (!plugin.sl.isStaff(player) && player.getWorld().equals(plugin.wm.staffworld.getWorld())) - { - return true; - } - - return false; + return !plugin.sl.isStaff(player) && player.getWorld().equals(plugin.wm.staffworld.getWorld()); } @EventHandler(priority = EventPriority.NORMAL) @@ -127,12 +126,12 @@ public class WorldRestrictions extends FreedomService public void onCommandPreprocess(PlayerCommandPreprocessEvent event) { final Player player = event.getPlayer(); + String command = event.getMessage().split("\\s+")[0].substring(1).toLowerCase(); + if (doRestrict(player)) { /* This is a very poor way of blocking WorldEdit commands, all the methods I know of for obtaining a list of a plugin's commands are returning null for world edit. */ - String command = event.getMessage().split("\\s+")[0].substring(1, event.getMessage().split("\\s+")[0].length()).toLowerCase(); - String allowed = player.getWorld().equals(plugin.wm.staffworld.getWorld()) ? "Staff" : "Master Builders"; if (command.startsWith("/") || BLOCKED_WORLDEDIT_COMMANDS.contains(command)) @@ -147,8 +146,16 @@ public class WorldRestrictions extends FreedomService event.setCancelled(true); } } - } + if (player.getWorld().equals(Bukkit.getWorld("plotworld"))) + { + if (BLOCKED_ESSENTIALS_COMMANDS.contains(command)) + { + player.sendMessage(ChatColor.RED + "Sorry, this command is restricted in the plotworld"); + event.setCancelled(true); + } + } + } public void protectWorld(World world) {