From be94aa53d308607482018b9800d1d6a78b0d92c5 Mon Sep 17 00:00:00 2001 From: boy0001 Date: Wed, 19 Aug 2015 06:44:32 +1000 Subject: [PATCH] Option for building restriction on finished plots --- src/main/java/com/intellectualcrafters/plot/PS.java | 6 ++++-- .../java/com/intellectualcrafters/plot/commands/Clear.java | 2 +- .../java/com/intellectualcrafters/plot/config/Settings.java | 3 ++- .../java/com/plotsquared/bukkit/listeners/PlayerEvents.java | 4 ++-- .../plotsquared/bukkit/listeners/worldedit/WEManager.java | 2 +- .../java/com/plotsquared/sponge/listener/MainListener.java | 4 ++-- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/intellectualcrafters/plot/PS.java b/src/main/java/com/intellectualcrafters/plot/PS.java index b13ec834f0..ae485bab99 100644 --- a/src/main/java/com/intellectualcrafters/plot/PS.java +++ b/src/main/java/com/intellectualcrafters/plot/PS.java @@ -1795,8 +1795,9 @@ public void setupConfig() { config.set("clear.ignore-if-modified", null); // Done - config.set("approval.ratings.require-done", Settings.REQUIRE_DONE); - config.set("approval.done.counts-towards-limit", Settings.DONE_COUNTS_TOWARDS_LIMIT); + options.put("approval.ratings.require-done", Settings.REQUIRE_DONE); + options.put("approval.done.counts-towards-limit", Settings.DONE_COUNTS_TOWARDS_LIMIT); + options.put("approval.done.restrict-building", Settings.DONE_RESTRICTS_BUILDING); // Schematics options.put("schematics.save_path", Settings.SCHEMATIC_SAVE_PATH); @@ -1905,6 +1906,7 @@ public void setupConfig() { // Done Settings.REQUIRE_DONE = config.getBoolean("approval.ratings.require-done"); Settings.DONE_COUNTS_TOWARDS_LIMIT = config.getBoolean("approval.done.counts-towards-limit"); + Settings.DONE_RESTRICTS_BUILDING = config.getBoolean("approval.done.restrict-building"); // Schematics Settings.SCHEMATIC_SAVE_PATH = config.getString("schematics.save_path"); diff --git a/src/main/java/com/intellectualcrafters/plot/commands/Clear.java b/src/main/java/com/intellectualcrafters/plot/commands/Clear.java index fdaf2ec9a7..22d00915cf 100644 --- a/src/main/java/com/intellectualcrafters/plot/commands/Clear.java +++ b/src/main/java/com/intellectualcrafters/plot/commands/Clear.java @@ -88,7 +88,7 @@ public boolean onCommand(final PlotPlayer plr, final String ... args) { MainUtil.sendMessage(plr, C.WAIT_FOR_TIMER); return false; } - if (FlagManager.isPlotFlagTrue(plot, "done" ) && (!Permissions.hasPermission(plr, "plots.continue") || (Settings.DONE_COUNTS_TOWARDS_LIMIT && MainUtil.getAllowedPlots(plr) >= MainUtil.getPlayerPlotCount(plr)))) { + if (Settings.DONE_RESTRICTS_BUILDING && FlagManager.isPlotFlagTrue(plot, "done" ) && (!Permissions.hasPermission(plr, "plots.continue") || (Settings.DONE_COUNTS_TOWARDS_LIMIT && MainUtil.getAllowedPlots(plr) >= MainUtil.getPlayerPlotCount(plr)))) { MainUtil.sendMessage(plr, C.DONE_ALREADY_DONE); return false; } diff --git a/src/main/java/com/intellectualcrafters/plot/config/Settings.java b/src/main/java/com/intellectualcrafters/plot/config/Settings.java index 1555c7b535..a93f9b8d07 100644 --- a/src/main/java/com/intellectualcrafters/plot/config/Settings.java +++ b/src/main/java/com/intellectualcrafters/plot/config/Settings.java @@ -46,13 +46,14 @@ public class Settings { */ public static String WEB_URL = "http://empcraft.com/plots/"; public static String WEB_IP = "your.ip.here"; - /** * Ratings */ public static List RATING_CATEGORIES = null; public static boolean REQUIRE_DONE = false; public static boolean DONE_COUNTS_TOWARDS_LIMIT = false; + public static boolean DONE_RESTRICTS_BUILDING = false; + /** * PlotMe settings */ diff --git a/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java b/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java index 3233c5ff63..990f9faaea 100644 --- a/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java +++ b/src/main/java/com/plotsquared/bukkit/listeners/PlayerEvents.java @@ -656,7 +656,7 @@ else if (!plot.isAdded(pp.getUUID())) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_OTHER); event.setCancelled(true); } - else if (plot.getSettings().flags.containsKey("done")) { + else if (Settings.DONE_RESTRICTS_BUILDING && plot.getSettings().flags.containsKey("done")) { if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_OTHER)) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER); event.setCancelled(true); @@ -2071,7 +2071,7 @@ else if (!plot.isAdded(pp.getUUID())) { return; } } - else if (plot.getSettings().flags.containsKey("done")) { + else if (Settings.DONE_RESTRICTS_BUILDING && plot.getSettings().flags.containsKey("done")) { if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_OTHER)) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER); event.setCancelled(true); diff --git a/src/main/java/com/plotsquared/bukkit/listeners/worldedit/WEManager.java b/src/main/java/com/plotsquared/bukkit/listeners/worldedit/WEManager.java index c92d3916e9..14a14fa30a 100644 --- a/src/main/java/com/plotsquared/bukkit/listeners/worldedit/WEManager.java +++ b/src/main/java/com/plotsquared/bukkit/listeners/worldedit/WEManager.java @@ -28,7 +28,7 @@ public static HashSet getMask(PlotPlayer player) { HashSet regions = new HashSet<>(); UUID uuid = player.getUUID(); for (Plot plot : PS.get().getPlotsInWorld(player.getLocation().getWorld())) { - if (plot.isBasePlot() && FlagManager.getPlotFlag(plot, "done") == null) { + if (Settings.DONE_RESTRICTS_BUILDING && plot.isBasePlot() && FlagManager.getPlotFlag(plot, "done") == null) { if (Settings.WE_ALLOW_HELPER ? plot.isAdded(uuid) : (plot.isOwner(uuid) || plot.getTrusted().contains(uuid))) { Location pos1 = MainUtil.getPlotBottomLoc(plot.world, plot.id).add(1, 0, 1); Location pos2 = MainUtil.getPlotTopLoc(plot.world, plot.id); diff --git a/src/main/java/com/plotsquared/sponge/listener/MainListener.java b/src/main/java/com/plotsquared/sponge/listener/MainListener.java index c5a920f921..cf4a1a7547 100644 --- a/src/main/java/com/plotsquared/sponge/listener/MainListener.java +++ b/src/main/java/com/plotsquared/sponge/listener/MainListener.java @@ -515,7 +515,7 @@ else if (!plot.isAdded(pp.getUUID())) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_OTHER); event.setCancelled(true); } - else if (plot.getSettings().flags.containsKey("done")) { + else if (Settings.DONE_RESTRICTS_BUILDING && plot.getSettings().flags.containsKey("done")) { if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_OTHER)) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER); event.setCancelled(true); @@ -568,7 +568,7 @@ else if (!plot.isAdded(pp.getUUID())) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_OTHER); event.setCancelled(true); } - else if (plot.getSettings().flags.containsKey("done")) { + else if (Settings.DONE_RESTRICTS_BUILDING && plot.getSettings().flags.containsKey("done")) { if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_OTHER)) { MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER); event.setCancelled(true);