From 88c0bdfffb924520945c0ac99bf4ca2ac399f34c Mon Sep 17 00:00:00 2001 From: sk89q Date: Fri, 22 Aug 2014 16:18:05 -0700 Subject: [PATCH] Better handle disabling of the regions feature. --- .../com/sk89q/worldguard/bukkit/RegionContainer.java | 5 +++++ .../bukkit/commands/region/RegionCommandsBase.java | 9 ++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/sk89q/worldguard/bukkit/RegionContainer.java b/src/main/java/com/sk89q/worldguard/bukkit/RegionContainer.java index 86363ab3..23796417 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/RegionContainer.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/RegionContainer.java @@ -182,6 +182,11 @@ public void reload() { private RegionManager load(World world) { checkNotNull(world); + WorldConfiguration config = plugin.getGlobalStateManager().get(world); + if (!config.useRegions) { + return null; + } + RegionManager manager; synchronized (lock) { diff --git a/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java b/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java index 7f983a17..b4658071 100644 --- a/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java +++ b/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java @@ -247,9 +247,16 @@ protected static void checkRegionDoesNotExist(RegionManager manager, String id, * @throws CommandException thrown if the manager is null */ protected static RegionManager checkRegionManager(WorldGuardPlugin plugin, World world) throws CommandException { + if (!plugin.getGlobalStateManager().get(world).useRegions) { + throw new CommandException("Region support is disabled in the target world. " + + "It can be enabled per-world in WorldGuard's configuration files. " + + "However, you may need to restart your server afterwards."); + } + RegionManager manager = plugin.getRegionContainer().get(world); if (manager == null) { - throw new CommandException("Either region support is disabled or region data failed to load in the target world."); + throw new CommandException("Region data failed to load for this world. " + + "Please ask a server administrator to read the logs to identify the reason."); } return manager; }