- * Copyright (C) WorldGuard team and contributors
- *
- * This program is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
- * for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-package com.sk89q.worldguard.bukkit;
-
-import org.bukkit.World;
-
-import com.sk89q.worldguard.protection.managers.RegionManager;
-
-/**
- * Helper class to get a reference to WorldGuard and its components.
- */
-public class WGBukkit {
-
- private WGBukkit() {
- }
-
- /**
- * Get the WorldGuard plugin. If WorldGuard isn't loaded yet, then this will
- * return null.
- *
- * If you are depending on WorldGuard in your plugin, you should place
- * softdepend: [WorldGuard]
or depend: [WorldGuard]
- * in your plugin.yml so that this won't return null for you.
- *
- * @return the WorldGuard plugin or null
- */
- public static WorldGuardPlugin getPlugin() {
- return WorldGuardPlugin.inst();
- }
-
- /**
- * Set cache to null for reload WorldGuardPlugin
- * @deprecated instance is now stored directly in {@link WorldGuardPlugin}
- */
- @Deprecated
- public static void cleanCache() {
- // do nothing - plugin instance is stored in plugin class now
- }
-
- /**
- * Returns the region manager for a given world. May return null if WorldGuard
- * is not loaded or region protection is not enabled for the given world.
- *
- * @param world world
- * @return a region manager or null
- */
- public static RegionManager getRegionManager(World world) {
- if (getPlugin() == null) {
- return null;
- }
- return WorldGuardPlugin.inst().getRegionManager(world);
- }
-
-}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java
index 8dcaaa40..03a05967 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/WorldGuardPlugin.java
@@ -41,46 +41,61 @@
import com.sk89q.squirrelid.resolver.HttpRepositoryService;
import com.sk89q.squirrelid.resolver.ProfileService;
import com.sk89q.wepif.PermissionsResolverManager;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
import com.sk89q.worldguard.LocalPlayer;
+import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.bukkit.commands.GeneralCommands;
import com.sk89q.worldguard.bukkit.commands.ProtectionCommands;
import com.sk89q.worldguard.bukkit.commands.ToggleCommands;
import com.sk89q.worldguard.bukkit.event.player.ProcessPlayerEvent;
-import com.sk89q.worldguard.bukkit.listener.*;
+import com.sk89q.worldguard.bukkit.listener.BlacklistListener;
+import com.sk89q.worldguard.bukkit.listener.BlockedPotionsListener;
+import com.sk89q.worldguard.bukkit.listener.BuildPermissionListener;
+import com.sk89q.worldguard.bukkit.listener.ChestProtectionListener;
+import com.sk89q.worldguard.bukkit.listener.DebuggingListener;
+import com.sk89q.worldguard.bukkit.listener.EventAbstractionListener;
+import com.sk89q.worldguard.bukkit.listener.InvincibilityListener;
+import com.sk89q.worldguard.bukkit.listener.PlayerModesListener;
+import com.sk89q.worldguard.bukkit.listener.PlayerMoveListener;
+import com.sk89q.worldguard.bukkit.listener.RegionFlagsListener;
+import com.sk89q.worldguard.bukkit.listener.RegionProtectionListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardBlockListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardCommandBookListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardEntityListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardHangingListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardPlayerListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardServerListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardVehicleListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardWeatherListener;
+import com.sk89q.worldguard.bukkit.listener.WorldGuardWorldListener;
+import com.sk89q.worldguard.bukkit.listener.WorldRulesListener;
import com.sk89q.worldguard.bukkit.util.Events;
import com.sk89q.worldguard.protection.GlobalRegionManager;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
import com.sk89q.worldguard.protection.flags.Flag;
-import com.sk89q.worldguard.protection.flags.registry.FlagRegistry;
-import com.sk89q.worldguard.protection.flags.registry.SimpleFlagRegistry;
-import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.managers.storage.StorageException;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.protection.util.UnresolvedNamesException;
-import com.sk89q.worldguard.session.SessionManager;
+import com.sk89q.worldguard.session.BukkitSessionManager;
import com.sk89q.worldguard.util.concurrent.EvenMoreExecutors;
import com.sk89q.worldguard.util.logging.ClassSourceValidator;
import com.sk89q.worldguard.util.logging.RecordMessagePrefixer;
import com.sk89q.worldguard.util.task.SimpleSupervisor;
import com.sk89q.worldguard.util.task.Supervisor;
import com.sk89q.worldguard.util.task.Task;
+import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
-import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.World.Environment;
-import org.bukkit.block.Block;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
-import org.bukkit.permissions.Permissible;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin;
-import javax.annotation.Nullable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
@@ -91,7 +106,6 @@
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import java.util.Set;
import java.util.concurrent.CancellationException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.RejectedExecutionException;
@@ -101,20 +115,17 @@
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
+import javax.annotation.Nullable;
+
/**
* The main class for WorldGuard as a Bukkit plugin.
*/
public class WorldGuardPlugin extends JavaPlugin {
- private static final Logger log = Logger.getLogger(WorldGuardPlugin.class.getCanonicalName());
-
private static WorldGuardPlugin inst;
+ private static BukkitWorldGuardPlatform platform;
private final CommandsManager commands;
- private final ConfigurationManager configuration = new ConfigurationManager(this);
- private final RegionContainer regionContainer = new RegionContainer(this);
- private final GlobalRegionManager globalRegionManager = new GlobalRegionManager(this, regionContainer);
- private final SimpleFlagRegistry flagRegistry = new SimpleFlagRegistry();
- private SessionManager sessionManager;
+ private final GlobalRegionManager globalRegionManager = new GlobalRegionManager((BukkitRegionContainer) WorldGuard.getInstance().getPlatform().getRegionContainer());
private final Supervisor supervisor = new SimpleSupervisor();
private ListeningExecutorService executorService;
private ProfileService profileService;
@@ -133,7 +144,6 @@ public boolean hasPermission(CommandSender player, String perm) {
return plugin.hasPermission(player, perm);
}
};
- flagRegistry.registerAll(DefaultFlag.getDefaultFlags());
}
/**
@@ -151,13 +161,13 @@ public static WorldGuardPlugin inst() {
@SuppressWarnings("deprecation")
public void onEnable() {
configureLogger();
- flagRegistry.setInitialized(true);
getDataFolder().mkdirs(); // Need to create the plugins/WorldGuard folder
executorService = MoreExecutors.listeningDecorator(EvenMoreExecutors.newBoundedCachedThreadPool(0, 1, 20));
- sessionManager = new SessionManager(this);
+ WorldGuard.getInstance().setPlatform(platform = new BukkitWorldGuardPlatform()); // Initialise WorldGuard
+ BukkitSessionManager sessionManager = (BukkitSessionManager) platform.getSessionManager();
// Set the proper command injector
commands.setInjector(new SimpleInjector(this));
@@ -165,7 +175,7 @@ public void onEnable() {
// Catch bad things being done by naughty plugins that include
// WorldGuard's classes
ClassSourceValidator verifier = new ClassSourceValidator(this);
- verifier.reportMismatches(ImmutableList.of(WGBukkit.class, ProtectedRegion.class, ProtectedCuboidRegion.class, Flag.class));
+ verifier.reportMismatches(ImmutableList.of(ProtectedRegion.class, ProtectedCuboidRegion.class, Flag.class));
// Register command classes
final CommandsManagerRegistration reg = new CommandsManagerRegistration(this, commands);
@@ -175,7 +185,7 @@ public void onEnable() {
getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
@Override
public void run() {
- if (!getGlobalStateManager().hasCommandBookGodMode()) {
+ if (!platform.getGlobalStateManager().hasCommandBookGodMode()) {
reg.register(GeneralCommands.class);
}
}
@@ -186,7 +196,7 @@ public void run() {
try {
profileCache = new SQLiteCache(new File(cacheDir, "profiles.sqlite"));
} catch (IOException e) {
- log.log(Level.WARNING, "Failed to initialize SQLite profile cache");
+ WorldGuard.logger.log(Level.WARNING, "Failed to initialize SQLite profile cache");
profileCache = new HashMapCache();
}
@@ -197,12 +207,10 @@ public void run() {
profileCache);
PermissionsResolverManager.initialize(this);
- configuration.load();
- log.info("Loading region data...");
- regionContainer.initialize();
+ WorldGuard.logger.info("Loading region data...");
- getServer().getScheduler().scheduleSyncRepeatingTask(this, sessionManager, SessionManager.RUN_DELAY, SessionManager.RUN_DELAY);
+ getServer().getScheduler().scheduleSyncRepeatingTask(this, sessionManager, BukkitSessionManager.RUN_DELAY, BukkitSessionManager.RUN_DELAY);
// Register events
getServer().getPluginManager().registerEvents(sessionManager, this);
@@ -227,10 +235,10 @@ public void run() {
(new BuildPermissionListener(this)).registerEvents();
(new InvincibilityListener(this)).registerEvents();
if ("true".equalsIgnoreCase(System.getProperty("worldguard.debug.listener"))) {
- (new DebuggingListener(this, log)).registerEvents();
+ (new DebuggingListener(this, WorldGuard.logger)).registerEvents();
}
- configuration.updateCommandBookGodMode();
+ platform.getGlobalStateManager().updateCommandBookGodMode();
if (getServer().getPluginManager().isPluginEnabled("CommandBook")) {
getServer().getPluginManager().registerEvents(new WorldGuardCommandBookListener(this), this);
@@ -243,7 +251,7 @@ public void run() {
}
worldListener.registerEvents();
- for (Player player : BukkitUtil.getOnlinePlayers()) {
+ for (Player player : Bukkit.getServer().getOnlinePlayers()) {
ProcessPlayerEvent event = new ProcessPlayerEvent(player);
Events.fire(event);
}
@@ -254,7 +262,7 @@ public void onDisable() {
executorService.shutdown();
try {
- log.log(Level.INFO, "Shutting down executor and waiting for any pending tasks...");
+ WorldGuard.logger.log(Level.INFO, "Shutting down executor and waiting for any pending tasks...");
List> tasks = supervisor.getTasks();
if (!tasks.isEmpty()) {
@@ -263,7 +271,7 @@ public void onDisable() {
builder.append("\n");
builder.append(task.getName());
}
- log.log(Level.INFO, builder.toString());
+ WorldGuard.logger.log(Level.INFO, builder.toString());
}
Futures.successfulAsList(tasks).get();
@@ -271,11 +279,10 @@ public void onDisable() {
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} catch (ExecutionException e) {
- log.log(Level.WARNING, "Some tasks failed while waiting for remaining tasks to finish", e);
+ WorldGuard.logger.log(Level.WARNING, "Some tasks failed while waiting for remaining tasks to finish", e);
}
- regionContainer.unload();
- configuration.unload();
+ platform.unload();
this.getServer().getScheduler().cancelTasks(this);
}
@@ -309,7 +316,7 @@ public String convertThrowable(@Nullable Throwable throwable) {
if (throwable instanceof NumberFormatException) {
return "Number expected, string received instead.";
} else if (throwable instanceof StorageException) {
- log.log(Level.WARNING, "Error loading/saving regions", throwable);
+ WorldGuard.logger.log(Level.WARNING, "Error loading/saving regions", throwable);
return "Region data could not be loaded/saved: " + throwable.getMessage();
} else if (throwable instanceof RejectedExecutionException) {
return "There are currently too many tasks queued to add yours. Use /wg running to list queued and running tasks.";
@@ -322,7 +329,7 @@ public String convertThrowable(@Nullable Throwable throwable) {
} else if (throwable instanceof CommandException) {
return throwable.getMessage();
} else {
- log.log(Level.WARNING, "WorldGuard encountered an unexpected error", throwable);
+ WorldGuard.logger.log(Level.WARNING, "WorldGuard encountered an unexpected error", throwable);
return "WorldGuard: An unexpected error occurred! Please see the server console.";
}
}
@@ -331,51 +338,13 @@ public String convertThrowable(@Nullable Throwable throwable) {
* Get the GlobalRegionManager.
*
* @return the plugin's global region manager
- * @deprecated use {@link #getRegionContainer()}
+ * @deprecated use #getRegionContainer()
*/
@Deprecated
public GlobalRegionManager getGlobalRegionManager() {
return globalRegionManager;
}
- /**
- * Get the object that manages region data.
- *
- * @return the region container
- */
- public RegionContainer getRegionContainer() {
- return regionContainer;
- }
-
- /**
- * Get the WorldGuard Configuration.
- *
- * @return ConfigurationManager
- * @deprecated Use {@link #getGlobalStateManager()} instead
- */
- @Deprecated
- public ConfigurationManager getGlobalConfiguration() {
- return getGlobalStateManager();
- }
-
- /**
- * Gets the flag state manager.
- *
- * @return The flag state manager
- */
- public SessionManager getSessionManager() {
- return sessionManager;
- }
-
- /**
- * Get the global ConfigurationManager.
- * USe this to access global configuration values and per-world configuration values.
- * @return The global ConfigurationManager
- */
- public ConfigurationManager getGlobalStateManager() {
- return configuration;
- }
-
/**
* Get the supervisor.
*
@@ -413,15 +382,6 @@ public ProfileCache getProfileCache() {
return profileCache;
}
- /**
- * Get the flag registry.
- *
- * @return the flag registry
- */
- public FlagRegistry getFlagRegistry() {
- return flagRegistry;
- }
-
/**
* Check whether a player is in a group.
* This calls the corresponding method in PermissionsResolverManager
@@ -495,8 +455,7 @@ public String toName(CommandSender sender) {
public boolean hasPermission(CommandSender sender, String perm) {
if (sender.isOp()) {
if (sender instanceof Player) {
- if (this.getGlobalStateManager().get(((Player) sender).
- getWorld()).opPermissions) {
+ if (platform.getGlobalStateManager().get(BukkitAdapter.adapt(((Player) sender).getWorld())).opPermissions) {
return true;
}
} else {
@@ -555,7 +514,7 @@ public Player checkPlayer(CommandSender sender)
* @return A {@link List} of players who match {@code filter}
*/
public List matchPlayerNames(String filter) {
- Collection extends Player> players = BukkitUtil.getOnlinePlayers();
+ Collection extends Player> players = Bukkit.getServer().getOnlinePlayers();
filter = filter.toLowerCase();
@@ -565,18 +524,18 @@ public List matchPlayerNames(String filter) {
for (Player player : players) {
if (player.getName().equalsIgnoreCase(filter)) {
- List list = new ArrayList();
+ List list = new ArrayList<>();
list.add(player);
return list;
}
}
- return new ArrayList();
+ return new ArrayList<>();
// Allow partial name matching
} else if (filter.charAt(0) == '*' && filter.length() >= 2) {
filter = filter.substring(1);
- List list = new ArrayList();
+ List list = new ArrayList<>();
for (Player player : players) {
if (player.getName().toLowerCase().contains(filter)) {
@@ -588,7 +547,7 @@ public List matchPlayerNames(String filter) {
// Start with name matching
} else {
- List list = new ArrayList();
+ List list = new ArrayList<>();
for (Player player : players) {
if (player.getName().toLowerCase().startsWith(filter)) {
@@ -636,12 +595,12 @@ protected Iterable extends Player> checkPlayerMatch(List extends Player> pla
public Iterable extends Player> matchPlayers(CommandSender source, String filter)
throws CommandException {
- if (BukkitUtil.getOnlinePlayers().isEmpty()) {
+ if (Bukkit.getServer().getOnlinePlayers().isEmpty()) {
throw new CommandException("No players matched query.");
}
if (filter.equals("*")) {
- return checkPlayerMatch(Lists.newArrayList(BukkitUtil.getOnlinePlayers()));
+ return checkPlayerMatch(Lists.newArrayList(Bukkit.getServer().getOnlinePlayers()));
}
// Handle special hash tag groups
@@ -649,11 +608,11 @@ public Iterable extends Player> matchPlayers(CommandSender source, String filt
// Handle #world, which matches player of the same world as the
// calling source
if (filter.equalsIgnoreCase("#world")) {
- List players = new ArrayList();
+ List players = new ArrayList<>();
Player sourcePlayer = checkPlayer(source);
World sourceWorld = sourcePlayer.getWorld();
- for (Player player : BukkitUtil.getOnlinePlayers()) {
+ for (Player player : Bukkit.getServer().getOnlinePlayers()) {
if (player.getWorld().equals(sourceWorld)) {
players.add(player);
}
@@ -663,13 +622,13 @@ public Iterable extends Player> matchPlayers(CommandSender source, String filt
// Handle #near, which is for nearby players.
} else if (filter.equalsIgnoreCase("#near")) {
- List players = new ArrayList();
+ List players = new ArrayList<>();
Player sourcePlayer = checkPlayer(source);
World sourceWorld = sourcePlayer.getWorld();
org.bukkit.util.Vector sourceVector
= sourcePlayer.getLocation().toVector();
- for (Player player : BukkitUtil.getOnlinePlayers()) {
+ for (Player player : Bukkit.getServer().getOnlinePlayers()) {
if (player.getWorld().equals(sourceWorld)
&& player.getLocation().toVector().distanceSquared(
sourceVector) < 900) {
@@ -915,7 +874,7 @@ public void createDefaultConfiguration(File actual,
if (copy == null) throw new FileNotFoundException();
input = file.getInputStream(copy);
} catch (IOException e) {
- log.severe("Unable to read default configuration: " + defaultName);
+ WorldGuard.logger.severe("Unable to read default configuration: " + defaultName);
}
if (input != null) {
@@ -929,15 +888,13 @@ public void createDefaultConfiguration(File actual,
output.write(buf, 0, length);
}
- log.info("Default configuration file written: "
+ WorldGuard.logger.info("Default configuration file written: "
+ actual.getAbsolutePath());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
- if (input != null) {
- input.close();
- }
+ input.close();
} catch (IOException ignore) {
}
@@ -951,100 +908,8 @@ public void createDefaultConfiguration(File actual,
}
}
- /**
- * Notifies all with the worldguard.notify permission.
- * This will check both superperms and WEPIF,
- * but makes sure WEPIF checks don't result in duplicate notifications
- *
- * @param msg The notification to broadcast
- */
- public void broadcastNotification(String msg) {
- getServer().broadcast(msg, "worldguard.notify");
- Set subs = getServer().getPluginManager().getPermissionSubscriptions("worldguard.notify");
- for (Player player : BukkitUtil.getOnlinePlayers()) {
- if (!(subs.contains(player) && player.hasPermission("worldguard.notify")) &&
- hasPermission(player, "worldguard.notify")) { // Make sure the player wasn't already broadcasted to.
- player.sendMessage(msg);
- }
- }
- log.info(msg);
- }
-
- /**
- * Checks to see if a player can build at a location. This will return
- * true if region protection is disabled.
- *
- * @param player The player to check.
- * @param loc The location to check at.
- * @see GlobalRegionManager#canBuild(org.bukkit.entity.Player, org.bukkit.Location)
- * @return whether {@code player} can build at {@code loc}
- */
- public boolean canBuild(Player player, Location loc) {
- return getGlobalRegionManager().canBuild(player, loc);
- }
-
- /**
- * Checks to see if a player can build at a location. This will return
- * true if region protection is disabled.
- *
- * @param player The player to check
- * @param block The block to check at.
- * @see GlobalRegionManager#canBuild(org.bukkit.entity.Player, org.bukkit.block.Block)
- * @return whether {@code player} can build at {@code block}'s location
- */
- public boolean canBuild(Player player, Block block) {
- return getGlobalRegionManager().canBuild(player, block);
- }
-
- /**
- * Gets the region manager for a world.
- *
- * @param world world to get the region manager for
- * @return the region manager or null if regions are not enabled
- */
- public RegionManager getRegionManager(World world) {
- if (!getGlobalStateManager().get(world).useRegions) {
- return null;
- }
-
- return getGlobalRegionManager().get(world);
- }
-
public PlayerMoveListener getPlayerMoveListener() {
return playerMoveListener;
}
- /**
- * Replace macros in the text.
- *
- * The macros replaced are as follows:
- * %name%: The name of {@code sender}. See {@link #toName(org.bukkit.command.CommandSender)}
- * %id%: The unique name of the sender. See {@link #toUniqueName(org.bukkit.command.CommandSender)}
- * %online%: The number of players currently online on the server
- * If {@code sender} is a Player:
- * %world%: The name of the world {@code sender} is located in
- * %health%: The health of {@code sender}. See {@link org.bukkit.entity.Player#getHealth()}
- *
- * @param sender The sender to check
- * @param message The message to replace macros in
- * @return The message with macros replaced
- */
- public String replaceMacros(CommandSender sender, String message) {
- Collection extends Player> online = BukkitUtil.getOnlinePlayers();
-
- message = message.replace("%name%", toName(sender));
- message = message.replace("%id%", toUniqueName(sender));
- message = message.replace("%online%", String.valueOf(online.size()));
-
- if (sender instanceof Player) {
- Player player = (Player) sender;
- World world = player.getWorld();
-
- message = message.replace("%world%", world.getName());
- message = message.replace("%health%", String.valueOf(player.getHealth()));
- }
-
- return message;
- }
-
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/ChestProtection.java
similarity index 67%
rename from worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java
rename to worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/ChestProtection.java
index 58f58cea..02ae65c7 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/ChestProtection.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/ChestProtection.java
@@ -17,11 +17,11 @@
* along with this program. If not, see .
*/
-package com.sk89q.worldguard.chest;
+package com.sk89q.worldguard.bukkit.chest;
-import org.bukkit.Material;
-import org.bukkit.block.Block;
-import org.bukkit.entity.Player;
+import com.sk89q.worldedit.util.Location;
+import com.sk89q.worldedit.world.block.BlockType;
+import com.sk89q.worldguard.LocalPlayer;
/**
* Interface for chest protection.
@@ -35,7 +35,7 @@ public interface ChestProtection {
* @param player The player to check
* @return Whether the block is protected for player
*/
- public boolean isProtected(Block block, Player player);
+ boolean isProtected(Location block, LocalPlayer player);
/**
* Returns whether a location where a chest block is trying to be created
@@ -45,7 +45,7 @@ public interface ChestProtection {
* @param player The player to check
* @return Whether {@code player} can place a block at the specified block
*/
- public boolean isProtectedPlacement(Block block, Player player);
+ boolean isProtectedPlacement(Location block, LocalPlayer player);
/**
* Returns whether an adjacent chest is protected.
@@ -54,24 +54,14 @@ public interface ChestProtection {
* @param player The player to check
* @return Whether {@code searchBlock} is protected from access by {@code player}
*/
- public boolean isAdjacentChestProtected(Block searchBlock, Player player);
+ boolean isAdjacentChestProtected(Location searchBlock, LocalPlayer player);
/**
- * Returns whether a material is a chest.
+ * Returns whether a blockType is a chest.
*
- * @param material The material to check
- * @deprecated see {@link #isChest(int)}
- * @return {@link #isChest(int)}
+ * @param blockType The blockType to check
+ * @return Whether a type is a 'chest' (protectable block)
*/
- @Deprecated
- public boolean isChest(Material material);
-
- /**
- * Returns whether a material is a chest.
- *
- * @param type The type to check
- * @return Whether type is a 'chest' (block that can be protected)
- */
- public boolean isChest(int type);
+ boolean isChest(BlockType blockType);
}
\ No newline at end of file
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/SignChestProtection.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/SignChestProtection.java
similarity index 65%
rename from worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/SignChestProtection.java
rename to worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/SignChestProtection.java
index 1dcb5899..410c719f 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/chest/SignChestProtection.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/chest/SignChestProtection.java
@@ -17,14 +17,15 @@
* along with this program. If not, see .
*/
-package com.sk89q.worldguard.chest;
+package com.sk89q.worldguard.bukkit.chest;
-import com.sk89q.worldedit.blocks.BlockID;
-import org.bukkit.Material;
+import com.sk89q.worldedit.util.Location;
+import com.sk89q.worldedit.world.block.BlockType;
+import com.sk89q.worldedit.world.block.BlockTypes;
+import com.sk89q.worldguard.LocalPlayer;
import org.bukkit.block.Block;
import org.bukkit.block.BlockState;
import org.bukkit.block.Sign;
-import org.bukkit.entity.Player;
/**
* Sign-based chest protection.
@@ -33,25 +34,24 @@
*/
public class SignChestProtection implements ChestProtection {
- public boolean isProtected(Block block, Player player) {
- if (isChest(block.getTypeId())) {
- Block below = block.getRelative(0, -1, 0);
- return isProtectedSignAround(below, player);
- } else if (block.getTypeId() == BlockID.SIGN_POST) {
- return isProtectedSignAndChestBinary(block, player);
+ public boolean isProtected(Location location, LocalPlayer player) {
+ com.sk89q.worldedit.world.block.BlockState blockState = location.getExtent().getBlock(location.toVector());
+ if (isChest(blockState.getBlockType())) {
+ return isProtectedSignAround(location.setY(location.getY() - 1), player);
+ } else if (blockState.getBlockType() == BlockTypes.SIGN) {
+ return isProtectedSignAndChestBinary(location, player);
} else {
- Block above = block.getRelative(0, 1, 0);
- Boolean res = isProtectedSign(above, player);
+ Boolean res = isProtectedSign(location.setY(location.getY() + 1), player);
if (res != null) return res;
return false;
}
}
- public boolean isProtectedPlacement(Block block, Player player) {
+ public boolean isProtectedPlacement(Location block, LocalPlayer player) {
return isProtectedSignAround(block, player);
}
- private boolean isProtectedSignAround(Block searchBlock, Player player) {
+ private boolean isProtectedSignAround(Location searchBlock, LocalPlayer player) {
Block side;
Boolean res;
@@ -78,47 +78,42 @@ private boolean isProtectedSignAround(Block searchBlock, Player player) {
return false;
}
- private Boolean isProtectedSign(Sign sign, Player player) {
+ private Boolean isProtectedSign(Sign sign, LocalPlayer player) {
if (sign.getLine(0).equalsIgnoreCase("[Lock]")) {
if (player == null) { // No player, no access
return true;
}
String name = player.getName();
- if (name.equalsIgnoreCase(sign.getLine(1).trim())
- || name.equalsIgnoreCase(sign.getLine(2).trim())
- || name.equalsIgnoreCase(sign.getLine(3).trim())) {
- return false;
- }
-
- // No access!
- return true;
+ return !name.equalsIgnoreCase(sign.getLine(1).trim())
+ && !name.equalsIgnoreCase(sign.getLine(2).trim())
+ && !name.equalsIgnoreCase(sign.getLine(3).trim());
}
return null;
}
- private Boolean isProtectedSign(Block block, Player player) {
+ private Boolean isProtectedSign(Location block, LocalPlayer player) {
BlockState state = block.getState();
- if (state == null || !(state instanceof Sign)) {
+ if (!(state instanceof Sign)) {
return null;
}
return isProtectedSign((Sign) state, player);
}
- private Boolean isProtectedSignAndChest(Block block, Player player) {
+ private Boolean isProtectedSignAndChest(Location block, LocalPlayer player) {
if (!isChest(block.getRelative(0, 1, 0).getTypeId())) {
return null;
}
return isProtectedSign(block, player);
}
- private boolean isProtectedSignAndChestBinary(Block block, Player player) {
+ private boolean isProtectedSignAndChestBinary(Location block, LocalPlayer player) {
Boolean res = isProtectedSignAndChest(block, player);
return !(res == null || !res);
}
- public boolean isAdjacentChestProtected(Block searchBlock, Player player) {
+ public boolean isAdjacentChestProtected(Location searchBlock, LocalPlayer player) {
Block side;
Boolean res;
@@ -145,15 +140,11 @@ public boolean isAdjacentChestProtected(Block searchBlock, Player player) {
return false;
}
- @Deprecated
- public boolean isChest(Material material) {
- return isChest(material.getId());
- }
-
- public boolean isChest(int type) {
- return type == BlockID.CHEST
- || type == BlockID.DISPENSER
- || type == BlockID.FURNACE
- || type == BlockID.BURNING_FURNACE;
+ public boolean isChest(BlockType type) {
+ return type == BlockTypes.CHEST
+ || type == BlockTypes.DISPENSER
+ || type == BlockTypes.FURNACE
+ || type == BlockTypes.TRAPPED_CHEST
+ || type == BlockTypes.DROPPER;
}
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java
index b8cd7f78..997250dc 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/CommandUtils.java
@@ -31,11 +31,12 @@
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
-import javax.annotation.Nullable;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.annotation.Nullable;
+
/**
* Command-related utility methods.
*/
@@ -153,13 +154,10 @@ public static String getOwnerName(@Nullable Object owner) {
* @param sender the sender
* @return a function
*/
- public static Function messageFunction(final CommandSender sender) {
- return new Function() {
- @Override
- public Object apply(@Nullable String s) {
- sender.sendMessage(s);
- return null;
- }
+ public static java.util.function.Function messageFunction(final CommandSender sender) {
+ return (Function) s -> {
+ sender.sendMessage(s);
+ return null;
};
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/GeneralCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/GeneralCommands.java
index 238aca87..c0dcd3ad 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/GeneralCommands.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/GeneralCommands.java
@@ -23,8 +23,10 @@
import com.sk89q.minecraft.util.commands.CommandContext;
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissions;
-import com.sk89q.worldedit.blocks.ItemType;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
+import com.sk89q.worldedit.world.item.ItemType;
+import com.sk89q.worldguard.LocalPlayer;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.session.Session;
import com.sk89q.worldguard.session.handler.GodMode;
@@ -44,7 +46,7 @@ public GeneralCommands(WorldGuardPlugin plugin) {
@Command(aliases = {"god"}, usage = "[player]",
desc = "Enable godmode on a player", flags = "s", max = 1)
public void god(CommandContext args, CommandSender sender) throws CommandException {
- ConfigurationManager config = plugin.getGlobalStateManager();
+ ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
Iterable extends Player> targets = null;
boolean included = false;
@@ -93,7 +95,7 @@ public void god(CommandContext args, CommandSender sender) throws CommandExcepti
@Command(aliases = {"ungod"}, usage = "[player]",
desc = "Disable godmode on a player", flags = "s", max = 1)
public void ungod(CommandContext args, CommandSender sender) throws CommandException {
- ConfigurationManager config = plugin.getGlobalStateManager();
+ ConfigurationManager config = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
Iterable extends Player> targets = null;
boolean included = false;
@@ -112,9 +114,10 @@ public void ungod(CommandContext args, CommandSender sender) throws CommandExcep
}
for (Player player : targets) {
- Session session = plugin.getSessionManager().get(player);
+ LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
+ Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(localPlayer);
- if (GodMode.set(player, session, false)) {
+ if (GodMode.set(localPlayer, session, false)) {
// Tell the user
if (player.equals(sender)) {
player.sendMessage(ChatColor.YELLOW + "God mode disabled!");
@@ -248,7 +251,7 @@ public void stack(CommandContext args, CommandSender sender) throws CommandExcep
Player player = plugin.checkPlayer(sender);
boolean ignoreMax = plugin.hasPermission(player, "worldguard.stack.illegitimate");
boolean ignoreDamaged = plugin.hasPermission(player, "worldguard.stack.damaged");
-
+
ItemStack[] items = player.getInventory().getContents();
int len = items.length;
@@ -280,7 +283,7 @@ public void stack(CommandContext args, CommandSender sender) throws CommandExcep
// Same type?
// Blocks store their color in the damage value
- if (item2.getTypeId() == item.getTypeId() &&
+ if (item2.getType() == item.getType() &&
((!ItemType.usesDamageValue(item.getTypeId()) && ignoreDamaged)
|| item.getDurability() == item2.getDurability()) &&
((item.getItemMeta() == null && item2.getItemMeta() == null)
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java
index 785442fb..43528c92 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/ToggleCommands.java
@@ -19,6 +19,7 @@
package com.sk89q.worldguard.bukkit.commands;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import org.bukkit.ChatColor;
import org.bukkit.World;
import org.bukkit.command.CommandSender;
@@ -30,8 +31,7 @@
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissions;
import com.sk89q.worldguard.bukkit.BukkitUtil;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
public class ToggleCommands {
@@ -54,7 +54,7 @@ public void stopFire(CommandContext args, CommandSender sender) throws CommandEx
world = plugin.matchWorld(sender, args.getString(0));
}
- WorldConfiguration wcfg = plugin.getGlobalStateManager().get(world);
+ BukkitWorldConfiguration wcfg = plugin.getGlobalStateManager().get(world);
if (!wcfg.fireSpreadDisableToggle) {
plugin.getServer().broadcastMessage(
@@ -83,7 +83,7 @@ public void allowFire(CommandContext args, CommandSender sender) throws CommandE
world = plugin.matchWorld(sender, args.getString(0));
}
- WorldConfiguration wcfg = plugin.getGlobalStateManager().get(world);
+ BukkitWorldConfiguration wcfg = plugin.getGlobalStateManager().get(world);
if (wcfg.fireSpreadDisableToggle) {
plugin.getServer().broadcastMessage(ChatColor.YELLOW
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java
index 4cabeaac..d7144b32 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/WorldGuardCommands.java
@@ -26,7 +26,7 @@
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.MoreExecutors;
import com.sk89q.minecraft.util.commands.*;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.util.logging.LoggerToChatHandler;
import com.sk89q.worldguard.bukkit.util.report.*;
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java
index 117e056f..46fac67e 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/MemberCommands.java
@@ -31,7 +31,7 @@
import com.sk89q.worldguard.domains.DefaultDomain;
import com.sk89q.worldguard.protection.util.DomainInputResolver;
import com.sk89q.worldguard.protection.util.DomainInputResolver.UserLocatorPolicy;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.World;
@@ -107,7 +107,7 @@ public void addOwner(CommandContext args, CommandSender sender) throws CommandEx
id = region.getId();
- Boolean flag = region.getFlag(DefaultFlag.BUYABLE);
+ Boolean flag = region.getFlag(Flags.BUYABLE);
DefaultDomain owners = region.getOwners();
if (localPlayer != null) {
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java
index 311be382..925554c1 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommands.java
@@ -19,18 +19,20 @@
package com.sk89q.worldguard.bukkit.commands.region;
+import static com.google.common.base.Preconditions.checkNotNull;
+
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import com.sk89q.minecraft.util.commands.Command;
import com.sk89q.minecraft.util.commands.CommandContext;
import com.sk89q.minecraft.util.commands.CommandException;
import com.sk89q.minecraft.util.commands.CommandPermissionsException;
-import com.sk89q.worldedit.Location;
-import com.sk89q.worldedit.bukkit.BukkitUtil;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldedit.util.Location;
import com.sk89q.worldguard.LocalPlayer;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.RegionContainer;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.config.ConfigurationManager;
+import com.sk89q.worldguard.bukkit.BukkitRegionContainer;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.commands.AsyncCommandHelper;
import com.sk89q.worldguard.bukkit.commands.CommandUtils;
@@ -41,10 +43,10 @@
import com.sk89q.worldguard.bukkit.commands.task.RegionManagerReloader;
import com.sk89q.worldguard.bukkit.commands.task.RegionManagerSaver;
import com.sk89q.worldguard.bukkit.commands.task.RegionRemover;
-import com.sk89q.worldguard.bukkit.permission.RegionPermissionModel;
+import com.sk89q.worldguard.internal.permission.RegionPermissionModel;
import com.sk89q.worldguard.bukkit.util.logging.LoggerToChatHandler;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.FlagContext;
import com.sk89q.worldguard.protection.flags.InvalidFlagFormat;
@@ -76,8 +78,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
-import static com.google.common.base.Preconditions.checkNotNull;
-
/**
* Implements the /region commands for WorldGuard.
*/
@@ -227,7 +227,7 @@ public void claim(CommandContext args, CommandSender sender) throws CommandExcep
checkRegionDoesNotExist(manager, id, false);
ProtectedRegion region = checkRegionFromSelection(player, id);
- WorldConfiguration wcfg = plugin.getGlobalStateManager().get(player.getWorld());
+ BukkitWorldConfiguration wcfg = plugin.getGlobalStateManager().get(player.getWorld());
// Check whether the player has created too many regions
if (!permModel.mayClaimRegionsUnbounded()) {
@@ -382,7 +382,7 @@ public void info(CommandContext args, CommandSender sender) throws CommandExcept
RegionPrintoutBuilder printout = new RegionPrintoutBuilder(existing, args.hasFlag('u') ? null : plugin.getProfileCache());
ListenableFuture> future = Futures.transform(
plugin.getExecutorService().submit(printout),
- CommandUtils.messageFunction(sender));
+ CommandUtils.messageFunction(sender)::apply);
// If it takes too long...
FutureProgressListener.addProgressListener(
@@ -494,7 +494,7 @@ public void flag(CommandContext args, CommandSender sender) throws CommandExcept
throw new CommandPermissionsException();
}
- Flag> foundFlag = DefaultFlag.fuzzyMatchFlag(flagRegistry, flagName);
+ Flag> foundFlag = Flags.fuzzyMatchFlag(flagRegistry, flagName);
// We didn't find the flag, so let's print a list of flags that the user
// can use, and do nothing afterwards
@@ -945,7 +945,7 @@ public void migrateDB(CommandContext args, CommandSender sender) throws CommandE
}
try {
- RegionContainer container = plugin.getRegionContainer();
+ BukkitRegionContainer container = plugin.getRegionContainer();
sender.sendMessage(ChatColor.YELLOW + "Now performing migration... this may take a while.");
container.migrate(migration);
sender.sendMessage(ChatColor.YELLOW +
@@ -989,7 +989,7 @@ public void migrateUuid(CommandContext args, CommandSender sender) throws Comman
try {
ConfigurationManager config = plugin.getGlobalStateManager();
- RegionContainer container = plugin.getRegionContainer();
+ BukkitRegionContainer container = plugin.getRegionContainer();
RegionDriver driver = container.getDriver();
UUIDMigration migration = new UUIDMigration(driver, plugin.getProfileService(), plugin.getFlagRegistry());
migration.setKeepUnresolvedNames(config.keepUnresolvedNames);
@@ -1033,14 +1033,14 @@ public void teleport(CommandContext args, CommandSender sender) throws CommandEx
// -s for spawn location
if (args.hasFlag('s')) {
- teleportLocation = existing.getFlag(DefaultFlag.SPAWN_LOC);
+ teleportLocation = existing.getFlag(Flags.SPAWN_LOC);
if (teleportLocation == null) {
throw new CommandException(
"The region has no spawn point associated.");
}
} else {
- teleportLocation = existing.getFlag(DefaultFlag.TELE_LOC);
+ teleportLocation = existing.getFlag(Flags.TELE_LOC);
if (teleportLocation == null) {
throw new CommandException(
@@ -1048,7 +1048,7 @@ public void teleport(CommandContext args, CommandSender sender) throws CommandEx
}
}
- player.teleport(BukkitUtil.toLocation(teleportLocation));
+ player.teleport(BukkitAdapter.adapt(teleportLocation));
sender.sendMessage("Teleported you to the region '" + existing.getId() + "'.");
}
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java
index b9d18b92..7e2b63f3 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionCommandsBase.java
@@ -30,9 +30,9 @@
import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
import com.sk89q.worldedit.bukkit.selections.Polygonal2DSelection;
import com.sk89q.worldedit.bukkit.selections.Selection;
-import com.sk89q.worldguard.bukkit.RegionContainer;
+import com.sk89q.worldguard.bukkit.BukkitRegionContainer;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
-import com.sk89q.worldguard.bukkit.permission.RegionPermissionModel;
+import com.sk89q.worldguard.internal.permission.RegionPermissionModel;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.FlagContext;
@@ -48,6 +48,7 @@
import org.bukkit.entity.Player;
import java.util.Set;
+import java.util.stream.Collectors;
class RegionCommandsBase {
@@ -61,7 +62,7 @@ protected RegionCommandsBase() {
* @return the permission model
*/
protected static RegionPermissionModel getPermissionModel(CommandSender sender) {
- return new RegionPermissionModel(WorldGuardPlugin.inst(), sender);
+ return new RegionPermissionModel(sender);
}
/**
@@ -294,16 +295,11 @@ protected static ProtectedRegion checkRegionFromSelection(Player player, String
* @param sender the sender to send the message to
*/
protected static void warnAboutSaveFailures(CommandSender sender) {
- RegionContainer container = WorldGuardPlugin.inst().getRegionContainer();
+ BukkitRegionContainer container = WorldGuardPlugin.inst().getRegionContainer();
Set failures = container.getSaveFailures();
if (failures.size() > 0) {
- String failingList = Joiner.on(", ").join(Iterables.transform(failures, new Function() {
- @Override
- public String apply(RegionManager regionManager) {
- return "'" + regionManager.getName() + "'";
- }
- }));
+ String failingList = Joiner.on(", ").join(failures.stream().map(regionManager -> "'" + regionManager.getName() + "'").collect(Collectors.toList()));
sender.sendMessage(ChatColor.GOLD +
"(Warning: The background saving of region data is failing for these worlds: " + failingList + ". " +
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java
index 3549884e..742eb870 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/commands/region/RegionPrintoutBuilder.java
@@ -23,10 +23,8 @@
import com.sk89q.worldedit.BlockVector;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.domains.DefaultDomain;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
import com.sk89q.worldguard.protection.flags.Flag;
import com.sk89q.worldguard.protection.flags.RegionGroupFlag;
-import com.sk89q.worldguard.protection.flags.registry.FlagRegistry;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -92,7 +90,7 @@ public void appendBasics() {
*/
public void appendFlags() {
builder.append(ChatColor.BLUE);
- builder.append("Flags: ");
+ builder.append("FlagUtil: ");
appendFlagsList(true);
@@ -100,7 +98,7 @@ public void appendFlags() {
}
/**
- * Append just the list of flags (without "Flags:"), including colors.
+ * Append just the list of flags (without "FlagUtil:"), including colors.
*
* @param useColors true to use colors
*/
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/internal/TargetMatcherSet.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/internal/TargetMatcherSet.java
index c5cfc3f2..c59a32af 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/internal/TargetMatcherSet.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/internal/TargetMatcherSet.java
@@ -21,7 +21,7 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
-import com.sk89q.worldguard.blacklist.target.MaterialTarget;
+import com.sk89q.worldguard.blacklist.target.ItemTarget;
import com.sk89q.worldguard.blacklist.target.Target;
import com.sk89q.worldguard.blacklist.target.TargetMatcher;
import org.bukkit.Material;
@@ -35,7 +35,7 @@
public class TargetMatcherSet {
- private final Multimap entries = HashMultimap.create();
+ private final Multimap entries = HashMultimap.create();
public boolean add(TargetMatcher matcher) {
checkNotNull(matcher);
@@ -55,19 +55,19 @@ public boolean test(Target target) {
}
public boolean test(Material material) {
- return test(new MaterialTarget(material.getId(), (short) 0));
+ return test(new ItemTarget(material));
}
public boolean test(Block block) {
- return test(new MaterialTarget(block.getTypeId(), block.getData()));
+ return test(new ItemTarget(block.getTypeId(), block.getData()));
}
public boolean test(BlockState state) {
- return test(new MaterialTarget(state.getTypeId(), state.getRawData()));
+ return test(new ItemTarget(state.getType()));
}
public boolean test(ItemStack itemStack) {
- return test(new MaterialTarget(itemStack.getTypeId(), itemStack.getDurability()));
+ return test(new ItemTarget(itemStack.getTypeId()));
}
@Override
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/AbstractListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/AbstractListener.java
index 0a15a971..9d46e19c 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/AbstractListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/AbstractListener.java
@@ -19,15 +19,16 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
-import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import org.bukkit.event.Listener;
-
import static com.google.common.base.Preconditions.checkNotNull;
+import com.sk89q.worldedit.world.World;
+import com.sk89q.worldguard.LocalPlayer;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
+import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
+import com.sk89q.worldguard.config.ConfigurationManager;
+import org.bukkit.event.Listener;
+
/**
* Abstract listener to ease creation of listeners.
*/
@@ -67,7 +68,7 @@ protected WorldGuardPlugin getPlugin() {
* @return the configuration
*/
protected ConfigurationManager getConfig() {
- return plugin.getGlobalStateManager();
+ return WorldGuard.getInstance().getPlatform().getGlobalStateManager();
}
/**
@@ -76,18 +77,18 @@ protected ConfigurationManager getConfig() {
* @param world The world to get the configuration for.
* @return The configuration for {@code world}
*/
- protected WorldConfiguration getWorldConfig(World world) {
- return plugin.getGlobalStateManager().get(world);
+ protected BukkitWorldConfiguration getWorldConfig(World world) {
+ return (BukkitWorldConfiguration) getConfig().get(world);
}
/**
* Get the world configuration given a player.
*
* @param player The player to get the wold from
- * @return The {@link WorldConfiguration} for the player's world
+ * @return The {@link BukkitWorldConfiguration} for the player's world
*/
- protected WorldConfiguration getWorldConfig(Player player) {
- return getWorldConfig(player.getWorld());
+ protected BukkitWorldConfiguration getWorldConfig(LocalPlayer player) {
+ return getWorldConfig((World) player.getExtent());
}
/**
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlacklistListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlacklistListener.java
index 580222dd..e1b3cd50 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlacklistListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlacklistListener.java
@@ -19,11 +19,20 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.google.common.base.Predicate;
+import static com.sk89q.worldguard.bukkit.BukkitUtil.createTarget;
+
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldguard.LocalPlayer;
-import com.sk89q.worldguard.blacklist.event.*;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.blacklist.event.BlockBreakBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.BlockDispenseBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.BlockInteractBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.BlockPlaceBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.ItemAcquireBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.ItemDestroyWithBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.ItemDropBlacklistEvent;
+import com.sk89q.worldguard.blacklist.event.ItemUseBlacklistEvent;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
import com.sk89q.worldguard.bukkit.event.block.PlaceBlockEvent;
@@ -32,7 +41,7 @@
import com.sk89q.worldguard.bukkit.event.entity.SpawnEntityEvent;
import com.sk89q.worldguard.bukkit.event.inventory.UseItemEvent;
import com.sk89q.worldguard.bukkit.util.Materials;
-import org.bukkit.Location;
+import com.sk89q.worldguard.config.ConfigurationManager;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
import org.bukkit.entity.HumanEntity;
@@ -47,9 +56,6 @@
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
-import static com.sk89q.worldguard.bukkit.BukkitUtil.createTarget;
-import static com.sk89q.worldguard.bukkit.BukkitUtil.toVector;
-
/**
* Handle events that need to be processed by the blacklist.
*/
@@ -73,26 +79,23 @@ public void onBreakBlock(final BreakBlockEvent event) {
}
final LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
- final WorldConfiguration wcfg = getWorldConfig(player);
+ final BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
return;
}
- event.filter(new Predicate() {
- @Override
- public boolean apply(Location target) {
- if (!wcfg.getBlacklist().check(
- new BlockBreakBlacklistEvent(localPlayer, toVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false)) {
- return false;
- } else if (!wcfg.getBlacklist().check(
- new ItemDestroyWithBlacklistEvent(localPlayer, toVector(target), createTarget(player.getItemInHand())), false, false)) {
- return false;
- }
-
- return true;
+ event.filter(target -> {
+ if (!wcfg.getBlacklist().check(
+ new BlockBreakBlacklistEvent(localPlayer, BukkitAdapter.asVector(target), createTarget(target.getBlock())), false, false)) {
+ return false;
+ } else if (!wcfg.getBlacklist().check(
+ new ItemDestroyWithBlacklistEvent(localPlayer, BukkitAdapter.asVector(target), createTarget(player.getItemInHand())), false, false)) {
+ return false;
}
+
+ return true;
});
}
@@ -105,21 +108,15 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
}
final LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
- final WorldConfiguration wcfg = getWorldConfig(player);
+ final BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
return;
}
- event.filter(new Predicate() {
- @Override
- public boolean apply(Location target) {
- return wcfg.getBlacklist().check(new BlockPlaceBlacklistEvent(
- localPlayer, toVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false);
-
- }
- });
+ event.filter(target -> wcfg.getBlacklist().check(new BlockPlaceBlacklistEvent(
+ localPlayer, BukkitAdapter.asVector(target), createTarget(target.getBlock())), false, false));
}
@EventHandler(ignoreCancelled = true)
@@ -131,20 +128,15 @@ public void onUseBlock(final UseBlockEvent event) {
}
final LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
- final WorldConfiguration wcfg = getWorldConfig(player);
+ final BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
return;
}
- event.filter(new Predicate() {
- @Override
- public boolean apply(Location target) {
- return wcfg.getBlacklist().check(new BlockInteractBlacklistEvent(
- localPlayer, toVector(target), createTarget(target.getBlock(), event.getEffectiveMaterial())), false, false);
- }
- });
+ event.filter(target -> wcfg.getBlacklist().check(new BlockInteractBlacklistEvent(
+ localPlayer, BukkitAdapter.asVector(target), createTarget(target.getBlock())), false, false));
}
@EventHandler(ignoreCancelled = true)
@@ -156,7 +148,7 @@ public void onSpawnEntity(SpawnEntityEvent event) {
}
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
- WorldConfiguration wcfg = getWorldConfig(player);
+ BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
@@ -165,7 +157,7 @@ public void onSpawnEntity(SpawnEntityEvent event) {
Material material = Materials.getRelatedMaterial(event.getEffectiveType());
if (material != null) {
- if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, toVector(event.getTarget()), createTarget(material)), false, false)) {
+ if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, BukkitAdapter.asVector(event.getTarget()), createTarget(material)), false, false)) {
event.setCancelled(true);
}
}
@@ -181,7 +173,7 @@ public void onDestroyEntity(DestroyEntityEvent event) {
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
Entity target = event.getEntity();
- WorldConfiguration wcfg = getWorldConfig(player);
+ BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
@@ -192,7 +184,7 @@ public void onDestroyEntity(DestroyEntityEvent event) {
Item item = (Item) target;
if (!wcfg.getBlacklist().check(
new ItemAcquireBlacklistEvent(localPlayer,
- toVector(target.getLocation()), createTarget(item.getItemStack())), false, true)) {
+ BukkitAdapter.asVector(target.getLocation()), createTarget(item.getItemStack())), false, true)) {
event.setCancelled(true);
return;
}
@@ -201,7 +193,7 @@ public void onDestroyEntity(DestroyEntityEvent event) {
Material material = Materials.getRelatedMaterial(target.getType());
if (material != null) {
// Not really a block but we only have one on-break blacklist event
- if (!wcfg.getBlacklist().check(new BlockBreakBlacklistEvent(localPlayer, toVector(event.getTarget()), createTarget(material)), false, false)) {
+ if (!wcfg.getBlacklist().check(new BlockBreakBlacklistEvent(localPlayer, BukkitAdapter.asVector(event.getTarget()), createTarget(material)), false, false)) {
event.setCancelled(true);
}
}
@@ -217,29 +209,29 @@ public void onUseItem(UseItemEvent event) {
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
ItemStack target = event.getItemStack();
- WorldConfiguration wcfg = getWorldConfig(player);
+ BukkitWorldConfiguration wcfg = getWorldConfig(localPlayer);
// Blacklist guard
if (wcfg.getBlacklist() == null) {
return;
}
- if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, toVector(player.getLocation()), createTarget(target)), false, false)) {
+ if (!wcfg.getBlacklist().check(new ItemUseBlacklistEvent(localPlayer, BukkitAdapter.asVector(player.getLocation()), createTarget(target)), false, false)) {
event.setCancelled(true);
}
}
@EventHandler(ignoreCancelled = true)
public void onPlayerDropItem(PlayerDropItemEvent event) {
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getPlayer().getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(event.getPlayer().getWorld()));
if (wcfg.getBlacklist() != null) {
Item ci = event.getItemDrop();
if (!wcfg.getBlacklist().check(
new ItemDropBlacklistEvent(getPlugin().wrapPlayer(event.getPlayer()),
- toVector(ci.getLocation()), createTarget(ci.getItemStack())), false, false)) {
+ BukkitAdapter.asVector(ci.getLocation()), createTarget(ci.getItemStack())), false, false)) {
event.setCancelled(true);
}
}
@@ -247,11 +239,12 @@ public void onPlayerDropItem(PlayerDropItemEvent event) {
@EventHandler(ignoreCancelled = true)
public void onBlockDispense(BlockDispenseEvent event) {
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(event.getBlock().getWorld()));
if (wcfg.getBlacklist() != null) {
- if (!wcfg.getBlacklist().check(new BlockDispenseBlacklistEvent(null, toVector(event.getBlock()), createTarget(event.getItem())), false, false)) {
+ if (!wcfg.getBlacklist().check(new BlockDispenseBlacklistEvent(null, BukkitAdapter.asVector(event.getBlock().getLocation()),
+ createTarget(event.getItem())), false, false)) {
event.setCancelled(true);
}
}
@@ -265,12 +258,12 @@ public void onInventoryClick(InventoryClickEvent event) {
if (item != null && entity instanceof Player) {
Player player = (Player) entity;
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(entity.getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(entity.getWorld()));
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check(
- new ItemAcquireBlacklistEvent(localPlayer, toVector(entity.getLocation()), createTarget(item)), false, false)) {
+ new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asVector(entity.getLocation()), createTarget(item)), false, false)) {
event.setCancelled(true);
if (inventory.getHolder().equals(player)) {
@@ -287,12 +280,12 @@ public void onInventoryCreative(InventoryCreativeEvent event) {
if (item != null && entity instanceof Player) {
Player player = (Player) entity;
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(entity.getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(entity.getWorld()));
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check(
- new ItemAcquireBlacklistEvent(localPlayer, toVector(entity.getLocation()), createTarget(item)), false, false)) {
+ new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asVector(entity.getLocation()), createTarget(item)), false, false)) {
event.setCancelled(true);
event.setCursor(null);
}
@@ -306,12 +299,12 @@ public void onPlayerItemHeld(PlayerItemHeldEvent event) {
ItemStack item = inventory.getItem(event.getNewSlot());
if (item != null) {
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(player.getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(player.getWorld()));
LocalPlayer localPlayer = getPlugin().wrapPlayer(player);
if (wcfg.getBlacklist() != null && !wcfg.getBlacklist().check(
- new ItemAcquireBlacklistEvent(localPlayer, toVector(player.getLocation()), createTarget(item)), false, false)) {
+ new ItemAcquireBlacklistEvent(localPlayer, BukkitAdapter.asVector(player.getLocation()), createTarget(item)), false, false)) {
inventory.setItem(event.getNewSlot(), null);
}
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java
index 71151ec8..c4cea5de 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BlockedPotionsListener.java
@@ -19,8 +19,10 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
+import com.sk89q.worldguard.WorldGuard;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.entity.DamageEntityEvent;
import com.sk89q.worldguard.bukkit.event.inventory.UseItemEvent;
@@ -57,8 +59,8 @@ public void onProjectile(DamageEntityEvent event) {
if (event.getOriginalEvent() instanceof EntityDamageByEntityEvent) {
EntityDamageByEntityEvent originalEvent = (EntityDamageByEntityEvent) event.getOriginalEvent();
if (Entities.isPotionArrow(originalEvent.getDamager())) { // should take care of backcompat
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(event.getWorld()));
PotionEffectType blockedEffect = null;
if (originalEvent.getDamager() instanceof SpectralArrow) {
if (wcfg.blockPotions.contains(PotionEffectType.GLOWING)) {
@@ -95,8 +97,8 @@ public void onProjectile(DamageEntityEvent event) {
@EventHandler
public void onItemInteract(UseItemEvent event) {
- ConfigurationManager cfg = getPlugin().getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getWorld());
+ ConfigurationManager cfg = WorldGuard.getInstance().getPlatform().getGlobalStateManager();
+ BukkitWorldConfiguration wcfg = (BukkitWorldConfiguration) cfg.get(BukkitAdapter.adapt(event.getWorld()));
ItemStack item = event.getItemStack();
// We only care about potions
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BuildPermissionListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BuildPermissionListener.java
index 2ad78b4b..53638d25 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BuildPermissionListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/BuildPermissionListener.java
@@ -19,6 +19,7 @@
package com.sk89q.worldguard.bukkit.listener;
+import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
import com.sk89q.worldguard.bukkit.event.block.PlaceBlockEvent;
@@ -51,7 +52,7 @@ private boolean hasBuildPermission(CommandSender sender, String perm) {
}
private void tellErrorMessage(CommandSender sender, World world) {
- String message = getWorldConfig(world).buildPermissionDenyMessage;
+ String message = getWorldConfig(BukkitAdapter.adapt(world)).buildPermissionDenyMessage;
if (!message.isEmpty()) {
sender.sendMessage(message);
}
@@ -59,7 +60,7 @@ private void tellErrorMessage(CommandSender sender, World world) {
@EventHandler(ignoreCancelled = true)
public void onPlaceBlock(final PlaceBlockEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -77,7 +78,7 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
@EventHandler(ignoreCancelled = true)
public void onBreakBlock(final BreakBlockEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -95,7 +96,7 @@ public void onBreakBlock(final BreakBlockEvent event) {
@EventHandler(ignoreCancelled = true)
public void onUseBlock(final UseBlockEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -113,7 +114,7 @@ public void onUseBlock(final UseBlockEvent event) {
@EventHandler(ignoreCancelled = true)
public void onSpawnEntity(SpawnEntityEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -131,7 +132,7 @@ public void onSpawnEntity(SpawnEntityEvent event) {
@EventHandler(ignoreCancelled = true)
public void onDestroyEntity(DestroyEntityEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -149,7 +150,7 @@ public void onDestroyEntity(DestroyEntityEvent event) {
@EventHandler(ignoreCancelled = true)
public void onUseEntity(UseEntityEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -167,7 +168,7 @@ public void onUseEntity(UseEntityEvent event) {
@EventHandler(ignoreCancelled = true)
public void onDamageEntity(DamageEntityEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
@@ -185,7 +186,7 @@ public void onDamageEntity(DamageEntityEvent event) {
@EventHandler(ignoreCancelled = true)
public void onUseItem(UseItemEvent event) {
- if (!getWorldConfig(event.getWorld()).buildPermissions) return;
+ if (!getWorldConfig(BukkitAdapter.adapt(event.getWorld())).buildPermissions) return;
Object rootCause = event.getCause().getRootCause();
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/ChestProtectionListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/ChestProtectionListener.java
index e24ab8bb..646cd171 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/ChestProtectionListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/ChestProtectionListener.java
@@ -21,7 +21,7 @@
import com.google.common.base.Predicate;
import com.sk89q.worldedit.blocks.BlockID;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.DelegateEvent;
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
@@ -58,7 +58,7 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
final Player player = event.getCause().getFirstPlayer();
if (player != null) {
- final WorldConfiguration wcfg = getWorldConfig(player);
+ final BukkitWorldConfiguration wcfg = getWorldConfig(player);
// Early guard
if (!wcfg.signChestProtection) {
@@ -83,7 +83,7 @@ public boolean apply(Location target) {
public void onBreakBlock(final BreakBlockEvent event) {
final Player player = event.getCause().getFirstPlayer();
- final WorldConfiguration wcfg = getWorldConfig(event.getWorld());
+ final BukkitWorldConfiguration wcfg = getWorldConfig(event.getWorld());
// Early guard
if (!wcfg.signChestProtection) {
@@ -117,7 +117,7 @@ public boolean apply(Location target) {
public void onUseBlock(final UseBlockEvent event) {
final Player player = event.getCause().getFirstPlayer();
- final WorldConfiguration wcfg = getWorldConfig(event.getWorld());
+ final BukkitWorldConfiguration wcfg = getWorldConfig(event.getWorld());
// Early guard
if (!wcfg.signChestProtection) {
@@ -150,7 +150,7 @@ public boolean apply(Location target) {
@EventHandler(ignoreCancelled = true)
public void onSignChange(SignChangeEvent event) {
Player player = event.getPlayer();
- WorldConfiguration wcfg = getWorldConfig(player);
+ BukkitWorldConfiguration wcfg = getWorldConfig(player);
if (wcfg.signChestProtection) {
if (event.getLine(0).equalsIgnoreCase("[Lock]")) {
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java
index aabafdfb..3b5056cc 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/EventAbstractionListener.java
@@ -20,7 +20,7 @@
package com.sk89q.worldguard.bukkit.listener;
import com.google.common.collect.Lists;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.cause.Cause;
import com.sk89q.worldguard.bukkit.event.DelegateEvent;
@@ -43,7 +43,7 @@
import com.sk89q.worldguard.bukkit.util.Entities;
import com.sk89q.worldguard.bukkit.util.Events;
import com.sk89q.worldguard.bukkit.util.Materials;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.flags.Flags;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
@@ -516,7 +516,7 @@ public void onPlayerBucketFill(PlayerBucketFillEvent event) {
@EventHandler(ignoreCancelled = true)
public void onBlockFromTo(BlockFromToEvent event) {
- WorldConfiguration config = getWorldConfig(event.getBlock().getWorld());
+ BukkitWorldConfiguration config = getWorldConfig(event.getBlock().getWorld());
// This only applies to regions but nothing else cares about high
// frequency events at the moment
@@ -852,7 +852,7 @@ public void onPotionSplash(PotionSplashEvent event) {
new UseEntityEvent(event, cause, affected);
// Consider the potion splash flag
- delegate.getRelevantFlags().add(DefaultFlag.POTION_SPLASH);
+ delegate.getRelevantFlags().add(Flags.POTION_SPLASH);
if (Events.fireAndTestCancel(delegate)) {
event.setIntensity(affected, 0);
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/InvincibilityListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/InvincibilityListener.java
index 85153644..f628ca4c 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/InvincibilityListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/InvincibilityListener.java
@@ -19,7 +19,7 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import org.bukkit.entity.Entity;
import org.bukkit.entity.LivingEntity;
@@ -55,7 +55,7 @@ private boolean isInvincible(Player player) {
@EventHandler(ignoreCancelled = true)
public void onEntityDamage(EntityDamageEvent event) {
Entity victim = event.getEntity();
- WorldConfiguration worldConfig = getPlugin().getGlobalStateManager().get(victim.getWorld());
+ BukkitWorldConfiguration worldConfig = getPlugin().getGlobalStateManager().get(victim.getWorld());
if (victim instanceof Player) {
Player player = (Player) victim;
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java
index ab10bd5e..9f15ffad 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerModesListener.java
@@ -19,7 +19,7 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.player.ProcessPlayerEvent;
import com.sk89q.worldguard.session.Session;
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
index b0511e84..17547c80 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/PlayerMoveListener.java
@@ -19,6 +19,7 @@
package com.sk89q.worldguard.bukkit.listener;
+import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.session.MoveType;
import com.sk89q.worldguard.session.Session;
@@ -55,7 +56,7 @@ public void registerEvents() {
public void onPlayerRespawn(PlayerRespawnEvent event) {
Player player = event.getPlayer();
- Session session = plugin.getSessionManager().get(player);
+ Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player);
session.testMoveTo(player, event.getRespawnLocation(), MoveType.RESPAWN, true);
}
@@ -64,7 +65,7 @@ public void onVehicleEnter(VehicleEnterEvent event) {
Entity entity = event.getEntered();
if (entity instanceof Player) {
Player player = (Player) entity;
- Session session = plugin.getSessionManager().get(player);
+ Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player);
if (null != session.testMoveTo(player, event.getVehicle().getLocation(), MoveType.EMBARK, true)) {
event.setCancelled(true);
}
@@ -75,7 +76,7 @@ public void onVehicleEnter(VehicleEnterEvent event) {
public void onPlayerMove(PlayerMoveEvent event) {
final Player player = event.getPlayer();
- Session session = plugin.getSessionManager().get(player);
+ Session session = WorldGuard.getInstance().getPlatform().getSessionManager().get(player);
final Location override = session.testMoveTo(player, event.getTo(), MoveType.MOVE);
if (override != null) {
@@ -105,12 +106,7 @@ public void onPlayerMove(PlayerMoveEvent event) {
player.teleport(override.clone().add(0, 1, 0));
- Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
- @Override
- public void run() {
- player.teleport(override.clone().add(0, 1, 0));
- }
- }, 1);
+ Bukkit.getScheduler().runTaskLater(plugin, () -> player.teleport(override.clone().add(0, 1, 0)), 1);
}
}
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java
index 4befdb85..b6b4cda0 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionFlagsListener.java
@@ -20,15 +20,15 @@
package com.sk89q.worldguard.bukkit.listener;
import com.google.common.base.Predicate;
-import com.sk89q.worldguard.bukkit.RegionQuery;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.protection.regions.RegionQuery;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.event.block.BreakBlockEvent;
import com.sk89q.worldguard.bukkit.event.block.PlaceBlockEvent;
import com.sk89q.worldguard.bukkit.util.Entities;
import com.sk89q.worldguard.bukkit.util.Materials;
import com.sk89q.worldguard.protection.association.RegionAssociable;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.StateFlag;
import org.bukkit.Location;
import org.bukkit.World;
@@ -64,7 +64,7 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
Block block;
if ((block = event.getCause().getFirstBlock()) != null) {
if (Materials.isPistonBlock(block.getType())) {
- event.filter(testState(query, DefaultFlag.PISTONS), false);
+ event.filter(testState(query, Flags.PISTONS), false);
}
}
}
@@ -73,26 +73,26 @@ public void onPlaceBlock(final PlaceBlockEvent event) {
public void onBreakBlock(final BreakBlockEvent event) {
if (!isRegionSupportEnabled(event.getWorld())) return; // Region support disabled
- WorldConfiguration config = getWorldConfig(event.getWorld());
+ BukkitWorldConfiguration config = getWorldConfig(event.getWorld());
RegionQuery query = getPlugin().getRegionContainer().createQuery();
Block block;
if ((block = event.getCause().getFirstBlock()) != null) {
if (Materials.isPistonBlock(block.getType())) {
- event.filter(testState(query, DefaultFlag.PISTONS), false);
+ event.filter(testState(query, Flags.PISTONS), false);
}
}
if (event.getCause().find(EntityType.CREEPER) != null) { // Creeper
- event.filter(testState(query, DefaultFlag.CREEPER_EXPLOSION), config.explosionFlagCancellation);
+ event.filter(testState(query, Flags.CREEPER_EXPLOSION), config.explosionFlagCancellation);
}
if (event.getCause().find(EntityType.ENDER_DRAGON) != null) { // Enderdragon
- event.filter(testState(query, DefaultFlag.ENDERDRAGON_BLOCK_DAMAGE), config.explosionFlagCancellation);
+ event.filter(testState(query, Flags.ENDERDRAGON_BLOCK_DAMAGE), config.explosionFlagCancellation);
}
if (event.getCause().find(Entities.enderCrystalType) != null) { // should be nullsafe even if enderCrystalType field is null
- event.filter(testState(query, DefaultFlag.OTHER_EXPLOSION), config.explosionFlagCancellation);
+ event.filter(testState(query, Flags.OTHER_EXPLOSION), config.explosionFlagCancellation);
}
}
@@ -105,14 +105,14 @@ public void onEntityDamage(EntityDamageEvent event) {
RegionQuery query = getPlugin().getRegionContainer().createQuery();
if (entity instanceof Player && event.getCause() == DamageCause.FALL) {
- if (!query.testState(entity.getLocation(), (Player) entity, DefaultFlag.FALL_DAMAGE)) {
+ if (!query.testState(entity.getLocation(), (Player) entity, Flags.FALL_DAMAGE)) {
event.setCancelled(true);
return;
}
} else {
try {
if (entity instanceof Player && event.getCause() == DamageCause.FLY_INTO_WALL) {
- if (!query.testState(entity.getLocation(), (Player) entity, DefaultFlag.FALL_DAMAGE)) {
+ if (!query.testState(entity.getLocation(), (Player) entity, Flags.FALL_DAMAGE)) {
event.setCancelled(true);
return;
}
@@ -124,7 +124,7 @@ public void onEntityDamage(EntityDamageEvent event) {
if (event instanceof EntityDamageByEntityEvent) {
Entity damager = (((EntityDamageByEntityEvent) event)).getDamager();
if (damager != null && damager.getType() == EntityType.FIREWORK) {
- if (!query.testState(entity.getLocation(), (RegionAssociable) null, DefaultFlag.FIREWORK_DAMAGE)) {
+ if (!query.testState(entity.getLocation(), (RegionAssociable) null, Flags.FIREWORK_DAMAGE)) {
event.setCancelled(true);
return;
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java
index 7280d865..0a7a91d2 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/RegionProtectionListener.java
@@ -20,8 +20,8 @@
package com.sk89q.worldguard.bukkit.listener;
import com.google.common.base.Predicate;
-import com.sk89q.worldguard.bukkit.RegionQuery;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
+import com.sk89q.worldguard.protection.regions.RegionQuery;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.cause.Cause;
import com.sk89q.worldguard.bukkit.event.DelegateEvent;
@@ -33,7 +33,7 @@
import com.sk89q.worldguard.bukkit.event.entity.SpawnEntityEvent;
import com.sk89q.worldguard.bukkit.event.entity.UseEntityEvent;
import com.sk89q.worldguard.bukkit.internal.WGMetadata;
-import com.sk89q.worldguard.bukkit.permission.RegionPermissionModel;
+import com.sk89q.worldguard.internal.permission.RegionPermissionModel;
import com.sk89q.worldguard.bukkit.protection.DelayedRegionOverlapAssociation;
import com.sk89q.worldguard.bukkit.util.Entities;
import com.sk89q.worldguard.bukkit.util.Events;
@@ -42,8 +42,8 @@
import com.sk89q.worldguard.domains.Association;
import com.sk89q.worldguard.protection.association.Associables;
import com.sk89q.worldguard.protection.association.RegionAssociable;
-import com.sk89q.worldguard.protection.events.DisallowedPVPEvent;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.bukkit.protection.events.DisallowedPVPEvent;
+import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.flags.StateFlag.State;
import org.bukkit.ChatColor;
@@ -106,7 +106,7 @@ private void tellErrorMessage(DelegateEvent event, Cause cause, Location locatio
Long lastTime = WGMetadata.getIfPresent(player, DENY_MESSAGE_KEY, Long.class);
if (lastTime == null || now - lastTime >= LAST_MESSAGE_DELAY) {
RegionQuery query = getPlugin().getRegionContainer().createQuery();
- String message = query.queryValue(location, player, DefaultFlag.DENY_MESSAGE);
+ String message = query.queryValue(location, player, Flags.DENY_MESSAGE);
if (message != null && !message.isEmpty()) {
player.sendMessage(message.replace("%what%", what));
}
@@ -131,7 +131,7 @@ private boolean isWhitelisted(Cause cause, World world, boolean pvp) {
return type == Material.HOPPER || type == Material.DROPPER;
} else if (rootCause instanceof Player) {
Player player = (Player) rootCause;
- WorldConfiguration config = getWorldConfig(world);
+ BukkitWorldConfiguration config = getWorldConfig(world);
if (config.fakePlayerBuildOverride && InteropUtils.isFakePlayer(player)) {
return true;
@@ -192,16 +192,16 @@ public boolean apply(Location target) {
boolean fire = block != null && block.getType() == Material.FIRE;
boolean lava = block != null && Materials.isLava(block.getType());
List flags = new ArrayList();
- flags.add(DefaultFlag.BLOCK_PLACE);
- flags.add(DefaultFlag.LIGHTER);
- if (fire) flags.add(DefaultFlag.FIRE_SPREAD);
- if (lava) flags.add(DefaultFlag.LAVA_FIRE);
+ flags.add(Flags.BLOCK_PLACE);
+ flags.add(Flags.LIGHTER);
+ if (fire) flags.add(Flags.FIRE_SPREAD);
+ if (lava) flags.add(Flags.LAVA_FIRE);
canPlace = query.testBuild(target, associable, combine(event, flags.toArray(new StateFlag[flags.size()])));
what = "place fire";
/* Everything else */
} else {
- canPlace = query.testBuild(target, associable, combine(event, DefaultFlag.BLOCK_PLACE));
+ canPlace = query.testBuild(target, associable, combine(event, Flags.BLOCK_PLACE));
try {
event.setSilent(type == Material.FROSTED_ICE);
} catch (NoSuchFieldError ignored) {} // back compat
@@ -237,12 +237,12 @@ public boolean apply(Location target) {
/* TNT */
if (event.getCause().find(EntityType.PRIMED_TNT, EntityType.MINECART_TNT) != null) {
- canBreak = query.testBuild(target, associable, combine(event, DefaultFlag.BLOCK_BREAK, DefaultFlag.TNT));
+ canBreak = query.testBuild(target, associable, combine(event, Flags.BLOCK_BREAK, Flags.TNT));
what = "use dynamite";
/* Everything else */
} else {
- canBreak = query.testBuild(target, associable, combine(event, DefaultFlag.BLOCK_BREAK));
+ canBreak = query.testBuild(target, associable, combine(event, Flags.BLOCK_BREAK));
what = "break that block";
}
@@ -280,27 +280,27 @@ public boolean apply(Location target) {
/* Inventory */
} else if (Materials.isInventoryBlock(type)) {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT, DefaultFlag.CHEST_ACCESS));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT, Flags.CHEST_ACCESS));
what = "open that";
/* Beds */
} else if (type == Material.BED_BLOCK) {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT, DefaultFlag.SLEEP));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT, Flags.SLEEP));
what = "sleep";
/* TNT */
} else if (type == Material.TNT) {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT, DefaultFlag.TNT));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT, Flags.TNT));
what = "use explosives";
/* Legacy USE flag */
} else if (Materials.isUseFlagApplicable(type)) {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT, DefaultFlag.USE));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT, Flags.USE));
what = "use that";
/* Everything else */
} else {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT));
what = "use that";
}
@@ -331,21 +331,21 @@ public void onSpawnEntity(SpawnEntityEvent event) {
/* Vehicles */
if (Entities.isVehicle(type)) {
- canSpawn = query.testBuild(target, associable, combine(event, DefaultFlag.PLACE_VEHICLE));
+ canSpawn = query.testBuild(target, associable, combine(event, Flags.PLACE_VEHICLE));
what = "place vehicles";
/* Item pickup */
} else if (event.getEntity() instanceof Item) {
- canSpawn = query.testBuild(target, associable, combine(event, DefaultFlag.ITEM_DROP));
+ canSpawn = query.testBuild(target, associable, combine(event, Flags.ITEM_DROP));
what = "drop items";
/* XP drops */
} else if (type == EntityType.EXPERIENCE_ORB) {
- canSpawn = query.testBuild(target, associable, combine(event, DefaultFlag.EXP_DROPS));
+ canSpawn = query.testBuild(target, associable, combine(event, Flags.EXP_DROPS));
what = "drop XP";
} else if (Entities.isAoECloud(type)) {
- canSpawn = query.testBuild(target, associable, combine(event, DefaultFlag.POTION_SPLASH));
+ canSpawn = query.testBuild(target, associable, combine(event, Flags.POTION_SPLASH));
what = "use lingering potions";
/* Everything else */
@@ -381,12 +381,12 @@ public void onDestroyEntity(DestroyEntityEvent event) {
/* Vehicles */
if (Entities.isVehicle(type)) {
- canDestroy = query.testBuild(target, associable, combine(event, DefaultFlag.DESTROY_VEHICLE));
+ canDestroy = query.testBuild(target, associable, combine(event, Flags.DESTROY_VEHICLE));
what = "break vehicles";
/* Item pickup */
} else if (event.getEntity() instanceof Item || event.getEntity() instanceof ExperienceOrb) {
- canDestroy = query.testBuild(target, associable, combine(event, DefaultFlag.ITEM_PICKUP));
+ canDestroy = query.testBuild(target, associable, combine(event, Flags.ITEM_PICKUP));
what = "pick up items";
/* Everything else */
@@ -427,12 +427,12 @@ public void onUseEntity(UseEntityEvent event) {
/* Ridden on use */
} else if (Entities.isRiddenOnUse(event.getEntity())) {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.RIDE, DefaultFlag.INTERACT));
+ canUse = query.testBuild(target, associable, combine(event, Flags.RIDE, Flags.INTERACT));
what = "ride that";
/* Everything else */
} else {
- canUse = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT));
+ canUse = query.testBuild(target, associable, combine(event, Flags.INTERACT));
what = "use that";
}
@@ -502,12 +502,12 @@ public void onDamageEntity(DamageEntityEvent event) {
/* damage to non-hostile mobs (e.g. animals) */
} else if (Entities.isNonHostile(event.getEntity())) {
- canDamage = query.testBuild(target, associable, combine(event, DefaultFlag.DAMAGE_ANIMALS));
+ canDamage = query.testBuild(target, associable, combine(event, Flags.DAMAGE_ANIMALS));
what = "harm that";
/* Everything else */
} else {
- canDamage = query.testBuild(target, associable, combine(event, DefaultFlag.INTERACT));
+ canDamage = query.testBuild(target, associable, combine(event, Flags.INTERACT));
what = "hit that";
}
@@ -528,7 +528,7 @@ public void onVehicleExit(VehicleExitEvent event) {
if (!isWhitelisted(Cause.create(player), vehicle.getWorld(), false)) {
RegionQuery query = getPlugin().getRegionContainer().createQuery();
Location location = vehicle.getLocation();
- if (!query.testBuild(location, player, DefaultFlag.RIDE, DefaultFlag.INTERACT)) {
+ if (!query.testBuild(location, player, Flags.RIDE, Flags.INTERACT)) {
long now = System.currentTimeMillis();
Long lastTime = WGMetadata.getIfPresent(player, DISEMBARK_MESSAGE_KEY, Long.class);
if (lastTime == null || now - lastTime >= LAST_MESSAGE_DELAY) {
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/SpongeUtil.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/SpongeUtil.java
index c5b52a67..4d1166a1 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/SpongeUtil.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/SpongeUtil.java
@@ -19,8 +19,8 @@
package com.sk89q.worldguard.bukkit.listener;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import org.bukkit.World;
@@ -43,7 +43,7 @@ private SpongeUtil() {
*/
public static void clearSpongeWater(WorldGuardPlugin plugin, World world, int ox, int oy, int oz) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
for (int cx = -wcfg.spongeRadius; cx <= wcfg.spongeRadius; cx++) {
for (int cy = -wcfg.spongeRadius; cy <= wcfg.spongeRadius; cy++) {
@@ -67,7 +67,7 @@ public static void clearSpongeWater(WorldGuardPlugin plugin, World world, int ox
*/
public static void addSpongeWater(WorldGuardPlugin plugin, World world, int ox, int oy, int oz) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
// The negative x edge
int cx = ox - wcfg.spongeRadius - 1;
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java
index 04dbf548..6ef5b888 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardBlockListener.java
@@ -22,11 +22,13 @@
import com.sk89q.worldedit.blocks.BlockID;
import com.sk89q.worldedit.blocks.BlockType;
import com.sk89q.worldedit.blocks.ItemType;
-import com.sk89q.worldguard.bukkit.ConfigurationManager;
-import com.sk89q.worldguard.bukkit.WorldConfiguration;
+import com.sk89q.worldguard.bukkit.BukkitWorldConfiguration;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.association.RegionAssociable;
+import com.sk89q.worldguard.protection.flags.Flags;
+import com.sk89q.worldguard.protection.flags.StateFlag;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
@@ -81,7 +83,7 @@ public void registerEvents() {
* @param world The world to get the configuration for.
* @return The configuration for {@code world}
*/
- protected WorldConfiguration getWorldConfig(World world) {
+ protected BukkitWorldConfiguration getWorldConfig(World world) {
return plugin.getGlobalStateManager().get(world);
}
@@ -89,9 +91,9 @@ protected WorldConfiguration getWorldConfig(World world) {
* Get the world configuration given a player.
*
* @param player The player to get the wold from
- * @return The {@link WorldConfiguration} for the player's world
+ * @return The {@link BukkitWorldConfiguration} for the player's world
*/
- protected WorldConfiguration getWorldConfig(Player player) {
+ protected BukkitWorldConfiguration getWorldConfig(Player player) {
return getWorldConfig(player.getWorld());
}
@@ -102,7 +104,7 @@ protected WorldConfiguration getWorldConfig(Player player) {
public void onBlockBreak(BlockBreakEvent event) {
Player player = event.getPlayer();
Block target = event.getBlock();
- WorldConfiguration wcfg = getWorldConfig(player);
+ BukkitWorldConfiguration wcfg = getWorldConfig(player);
if (!wcfg.itemDurability) {
ItemStack held = player.getItemInHand();
@@ -127,7 +129,7 @@ public void onBlockFromTo(BlockFromToEvent event) {
boolean isAir = blockFrom.getTypeId() == 0;
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -186,14 +188,13 @@ public void onBlockFromTo(BlockFromToEvent event) {
}
if (wcfg.highFreqFlags && isWater
- && !plugin.getGlobalRegionManager().allows(DefaultFlag.WATER_FLOW,
- blockFrom.getLocation())) {
+ && plugin.getRegionContainer().createQuery().queryState(blockFrom.getLocation(), (RegionAssociable) null, Flags.WATER_FLOW) == StateFlag.State.DENY) {
event.setCancelled(true);
return;
}
if (wcfg.highFreqFlags && isLava
- && !plugin.getGlobalRegionManager().allows(DefaultFlag.LAVA_FLOW,
+ && !plugin.getGlobalRegionManager().allows(Flags.LAVA_FLOW,
blockFrom.getLocation())) {
event.setCancelled(true);
return;
@@ -217,7 +218,7 @@ public void onBlockIgnite(BlockIgniteEvent event) {
World world = block.getWorld();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -271,26 +272,26 @@ public void onBlockIgnite(BlockIgniteEvent event) {
ApplicableRegionSet set = plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
if (wcfg.highFreqFlags && isFireSpread
- && !set.allows(DefaultFlag.FIRE_SPREAD)) {
+ && !set.allows(Flags.FIRE_SPREAD)) {
event.setCancelled(true);
return;
}
if (wcfg.highFreqFlags && cause == IgniteCause.LAVA
- && !set.allows(DefaultFlag.LAVA_FIRE)) {
+ && !set.allows(Flags.LAVA_FIRE)) {
event.setCancelled(true);
return;
}
if (cause == IgniteCause.FIREBALL && event.getPlayer() == null) {
// wtf bukkit, FIREBALL is supposed to be reserved to players
- if (!set.allows(DefaultFlag.GHAST_FIREBALL)) {
+ if (!set.allows(Flags.GHAST_FIREBALL)) {
event.setCancelled(true);
return;
}
}
- if (cause == IgniteCause.LIGHTNING && !set.allows(DefaultFlag.LIGHTNING)) {
+ if (cause == IgniteCause.LIGHTNING && !set.allows(Flags.LIGHTNING)) {
event.setCancelled(true);
return;
}
@@ -303,7 +304,7 @@ public void onBlockIgnite(BlockIgniteEvent event) {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBlockBurn(BlockBurnEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -344,7 +345,7 @@ public void onBlockBurn(BlockBurnEvent event) {
int z = block.getZ();
ApplicableRegionSet set = plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation());
- if (!set.allows(DefaultFlag.FIRE_SPREAD)) {
+ if (!set.allows(Flags.FIRE_SPREAD)) {
checkAndDestroyAround(block.getWorld(), x, y, z, BlockID.FIRE);
event.setCancelled(true);
}
@@ -373,7 +374,7 @@ private void checkAndDestroy(World world, int x, int y, int z, int required) {
@EventHandler(ignoreCancelled = true)
public void onBlockPhysics(BlockPhysicsEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -414,7 +415,7 @@ public void onBlockPlace(BlockPlaceEvent event) {
World world = target.getWorld();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
if (wcfg.simulateSponge && target.getType() == Material.SPONGE) {
if (wcfg.redstoneSponges && target.isBlockIndirectlyPowered()) {
@@ -438,7 +439,7 @@ public void onBlockRedstoneChange(BlockRedstoneEvent event) {
World world = blockTo.getWorld();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
if (wcfg.simulateSponge && wcfg.redstoneSponges) {
int ox = blockTo.getX();
@@ -467,7 +468,7 @@ public void onBlockRedstoneChange(BlockRedstoneEvent event) {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onLeavesDecay(LeavesDecayEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -480,7 +481,7 @@ public void onLeavesDecay(LeavesDecayEvent event) {
}
if (wcfg.useRegions) {
- if (!plugin.getGlobalRegionManager().allows(DefaultFlag.LEAF_DECAY,
+ if (!plugin.getGlobalRegionManager().allows(Flags.LEAF_DECAY,
event.getBlock().getLocation())) {
event.setCancelled(true);
}
@@ -493,7 +494,7 @@ public void onLeavesDecay(LeavesDecayEvent event) {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBlockForm(BlockFormEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -518,7 +519,7 @@ public void onBlockForm(BlockFormEvent event) {
return;
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.ICE_FORM, event.getBlock().getLocation())) {
+ Flags.ICE_FORM, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -538,7 +539,7 @@ public void onBlockForm(BlockFormEvent event) {
}
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.SNOW_FALL, event.getBlock().getLocation())) {
+ Flags.SNOW_FALL, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -551,7 +552,7 @@ public void onBlockForm(BlockFormEvent event) {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onBlockSpread(BlockSpreadEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
if (cfg.activityHaltToggle) {
event.setCancelled(true);
@@ -566,7 +567,7 @@ public void onBlockSpread(BlockSpreadEvent event) {
return;
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.MUSHROOMS, event.getBlock().getLocation())) {
+ Flags.MUSHROOMS, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -578,7 +579,7 @@ public void onBlockSpread(BlockSpreadEvent event) {
return;
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.GRASS_SPREAD, event.getBlock().getLocation())) {
+ Flags.GRASS_SPREAD, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -592,7 +593,7 @@ public void onBlockSpread(BlockSpreadEvent event) {
if (wcfg.useRegions
&& !plugin.getGlobalRegionManager().allows(
- DefaultFlag.MYCELIUM_SPREAD, event.getBlock().getLocation())) {
+ Flags.MYCELIUM_SPREAD, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -606,7 +607,7 @@ public void onBlockSpread(BlockSpreadEvent event) {
if (wcfg.useRegions
&& !plugin.getGlobalRegionManager().allows(
- DefaultFlag.VINE_GROWTH, event.getBlock().getLocation())) {
+ Flags.VINE_GROWTH, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -620,7 +621,7 @@ public void onBlockSpread(BlockSpreadEvent event) {
public void onBlockFade(BlockFadeEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getBlock().getWorld());
switch (event.getBlock().getTypeId()) {
case BlockID.ICE:
@@ -630,7 +631,7 @@ public void onBlockFade(BlockFadeEvent event) {
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.ICE_MELT, event.getBlock().getLocation())) {
+ Flags.ICE_MELT, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -643,7 +644,7 @@ public void onBlockFade(BlockFadeEvent event) {
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.SNOW_MELT, event.getBlock().getLocation())) {
+ Flags.SNOW_MELT, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
@@ -655,7 +656,7 @@ public void onBlockFade(BlockFadeEvent event) {
return;
}
if (wcfg.useRegions && !plugin.getGlobalRegionManager().allows(
- DefaultFlag.SOIL_DRY, event.getBlock().getLocation())) {
+ Flags.SOIL_DRY, event.getBlock().getLocation())) {
event.setCancelled(true);
return;
}
diff --git a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java
index 6417cf47..2459868e 100644
--- a/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java
+++ b/worldguard-legacy/src/main/java/com/sk89q/worldguard/bukkit/listener/WorldGuardEntityListener.java
@@ -20,12 +20,14 @@
package com.sk89q.worldguard.bukkit.listener;
import com.sk89q.worldedit.blocks.BlockID;
+import com.sk89q.worldguard.config.ConfigurationManager;
import com.sk89q.worldguard.LocalPlayer;
import com.sk89q.worldguard.bukkit.*;
import com.sk89q.worldguard.bukkit.util.Entities;
import com.sk89q.worldguard.protection.ApplicableRegionSet;
-import com.sk89q.worldguard.protection.flags.DefaultFlag;
+import com.sk89q.worldguard.protection.flags.Flags;
import com.sk89q.worldguard.protection.managers.RegionManager;
+import com.sk89q.worldguard.protection.regions.RegionQuery;
import org.bukkit.Location;
import org.bukkit.World;
import org.bukkit.block.Block;
@@ -73,7 +75,7 @@ public void onEntityInteract(EntityInteractEvent event) {
Block block = event.getBlock();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(entity.getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(entity.getWorld());
if (block.getTypeId() == BlockID.SOIL) {
if (/* entity instanceof Creature && // catch for any entity (not thrown for players) */
@@ -85,7 +87,7 @@ public void onEntityInteract(EntityInteractEvent event) {
@EventHandler(priority = EventPriority.HIGH)
public void onEntityDeath(EntityDeathEvent event) {
- WorldConfiguration wcfg = plugin.getGlobalStateManager().get(event.getEntity().getWorld());
+ BukkitWorldConfiguration wcfg = plugin.getGlobalStateManager().get(event.getEntity().getWorld());
if (event instanceof PlayerDeathEvent && wcfg.disableDeathMessages) {
((PlayerDeathEvent) event).setDeathMessage("");
@@ -97,7 +99,7 @@ private void onEntityDamageByBlock(EntityDamageByBlockEvent event) {
DamageCause type = event.getCause();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(defender.getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(defender.getWorld());
if (defender instanceof Wolf && ((Wolf) defender).isTamed()) {
if (wcfg.antiWolfDumbness && !(type == DamageCause.VOID)) {
@@ -106,6 +108,7 @@ private void onEntityDamageByBlock(EntityDamageByBlockEvent event) {
}
} else if (defender instanceof Player) {
Player player = (Player) defender;
+ LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
if (wcfg.disableLavaDamage && type == DamageCause.LAVA) {
event.setCancelled(true);
@@ -119,7 +122,7 @@ private void onEntityDamageByBlock(EntityDamageByBlockEvent event) {
}
if (wcfg.teleportOnVoid && type == DamageCause.VOID) {
- BukkitUtil.findFreePosition(player);
+ localPlayer.findFreePosition();
event.setCancelled(true);
return;
}
@@ -132,7 +135,7 @@ private void onEntityDamageByBlock(EntityDamageByBlockEvent event) {
if (type == DamageCause.BLOCK_EXPLOSION
&& (wcfg.disableExplosionDamage || wcfg.blockOtherExplosions
|| (wcfg.explosionFlagCancellation
- && !plugin.getGlobalRegionManager().allows(DefaultFlag.OTHER_EXPLOSION, player.getLocation())))) {
+ && !plugin.getGlobalRegionManager().allows(Flags.OTHER_EXPLOSION, localPlayer.getLocation())))) {
event.setCancelled(true);
return;
}
@@ -143,7 +146,7 @@ private void onEntityDamageByBlock(EntityDamageByBlockEvent event) {
if (type == DamageCause.BLOCK_EXPLOSION
&& (wcfg.blockOtherExplosions
|| (wcfg.explosionFlagCancellation
- && !plugin.getGlobalRegionManager().allows(DefaultFlag.OTHER_EXPLOSION, defender.getLocation())))) {
+ && !plugin.getGlobalRegionManager().allows(Flags.OTHER_EXPLOSION, defender.getLocation())))) {
event.setCancelled(true);
return;
}
@@ -160,7 +163,7 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
Entity attacker = event.getDamager();
Entity defender = event.getEntity();
- WorldConfiguration wcfg = plugin.getGlobalStateManager().get(defender.getWorld());
+ BukkitWorldConfiguration wcfg = plugin.getGlobalStateManager().get(defender.getWorld());
if (defender instanceof ItemFrame) {
if (checkItemFrameProtection(attacker, (ItemFrame) defender)) {
@@ -179,7 +182,7 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
// in the same way that creepers or tnt can
if (wcfg.useRegions && wcfg.explosionFlagCancellation) {
if (!plugin.getRegionContainer().createQuery().getApplicableRegions(defender.getLocation())
- .testState(null, DefaultFlag.OTHER_EXPLOSION)) {
+ .testState(null, Flags.OTHER_EXPLOSION)) {
event.setCancelled(true);
return;
}
@@ -227,13 +230,13 @@ private void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
if (wcfg.useRegions) {
ApplicableRegionSet set = plugin.getRegionContainer().createQuery().getApplicableRegions(defender.getLocation());
- if (!set.allows(DefaultFlag.MOB_DAMAGE, localPlayer) && !(attacker instanceof Tameable)) {
+ if (!set.allows(Flags.MOB_DAMAGE, localPlayer) && !(attacker instanceof Tameable)) {
event.setCancelled(true);
return;
}
if (attacker instanceof Creeper) {
- if (!set.allows(DefaultFlag.CREEPER_EXPLOSION, localPlayer) && wcfg.explosionFlagCancellation) {
+ if (!set.allows(Flags.CREEPER_EXPLOSION, localPlayer) && wcfg.explosionFlagCancellation) {
event.setCancelled(true);
return;
}
@@ -255,7 +258,7 @@ private void onEntityDamageByProjectile(EntityDamageByEntityEvent event) {
}
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(defender.getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(defender.getWorld());
if (defender instanceof Player) {
Player player = (Player) defender;
LocalPlayer localPlayer = plugin.wrapPlayer(player);
@@ -268,7 +271,7 @@ private void onEntityDamageByProjectile(EntityDamageByEntityEvent event) {
return;
}
if (wcfg.useRegions) {
- if (!plugin.getRegionContainer().createQuery().getApplicableRegions(defender.getLocation()).allows(DefaultFlag.MOB_DAMAGE, localPlayer)) {
+ if (!plugin.getRegionContainer().createQuery().getApplicableRegions(defender.getLocation()).allows(Flags.MOB_DAMAGE, localPlayer)) {
event.setCancelled(true);
return;
}
@@ -288,7 +291,7 @@ private void onEntityDamageByProjectile(EntityDamageByEntityEvent event) {
}
if (wcfg.useRegions) {
RegionQuery query = plugin.getRegionContainer().createQuery();
- if (!query.testState(defender.getLocation(), (Player) defender, DefaultFlag.GHAST_FIREBALL) && wcfg.explosionFlagCancellation) {
+ if (!query.testState(defender.getLocation(), (Player) defender, Flags.GHAST_FIREBALL) && wcfg.explosionFlagCancellation) {
event.setCancelled(true);
return;
}
@@ -324,7 +327,7 @@ public void onEntityDamage(EntityDamageEvent event) {
DamageCause type = event.getCause();
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(defender.getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(defender.getWorld());
if (defender instanceof Wolf && ((Wolf) defender).isTamed()) {
if (wcfg.antiWolfDumbness) {
@@ -333,6 +336,7 @@ public void onEntityDamage(EntityDamageEvent event) {
}
} else if (defender instanceof Player) {
Player player = (Player) defender;
+ LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
if (type == DamageCause.WITHER) {
// wither boss DoT tick
@@ -344,14 +348,14 @@ public void onEntityDamage(EntityDamageEvent event) {
if (wcfg.useRegions) {
ApplicableRegionSet set = plugin.getRegionContainer().createQuery().getApplicableRegions(defender.getLocation());
- if (!set.allows(DefaultFlag.MOB_DAMAGE, plugin.wrapPlayer(player))) {
+ if (!set.allows(Flags.MOB_DAMAGE, plugin.wrapPlayer(player))) {
event.setCancelled(true);
return;
}
}
}
- if (type == DamageCause.DROWNING && cfg.hasAmphibiousMode(player)) {
+ if (type == DamageCause.DROWNING && cfg.hasAmphibiousMode(localPlayer)) {
player.setRemainingAir(player.getMaximumAir());
event.setCancelled(true);
return;
@@ -386,7 +390,7 @@ public void onEntityDamage(EntityDamageEvent event) {
}
if (wcfg.teleportOnSuffocation && type == DamageCause.SUFFOCATION) {
- BukkitUtil.findFreePosition(player);
+ localPlayer.findFreePosition();
event.setCancelled(true);
return;
}
@@ -406,7 +410,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
Location l = event.getLocation();
World world = l.getWorld();
- WorldConfiguration wcfg = cfg.get(world);
+ BukkitWorldConfiguration wcfg = cfg.get(world);
Entity ent = event.getEntity();
if (cfg.activityHaltToggle) {
@@ -463,7 +467,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
// allow wither skull blocking since there is no dedicated flag atm
if (wcfg.useRegions) {
for (Block block : event.blockList()) {
- if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(DefaultFlag.GHAST_FIREBALL)) {
+ if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(Flags.GHAST_FIREBALL)) {
event.blockList().clear();
if (wcfg.explosionFlagCancellation) event.setCancelled(true);
return;
@@ -481,7 +485,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
}
if (wcfg.useRegions) {
for (Block block : event.blockList()) {
- if (!plugin.getGlobalRegionManager().allows(DefaultFlag.WITHER_DAMAGE, block.getLocation())) {
+ if (!plugin.getGlobalRegionManager().allows(Flags.WITHER_DAMAGE, block.getLocation())) {
event.blockList().clear();
event.setCancelled(true);
return;
@@ -497,7 +501,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
if (wcfg.useRegions) {
RegionManager mgr = plugin.getGlobalRegionManager().get(world);
for (Block block : event.blockList()) {
- if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(DefaultFlag.OTHER_EXPLOSION)) {
+ if (!plugin.getRegionContainer().createQuery().getApplicableRegions(block.getLocation()).allows(Flags.OTHER_EXPLOSION)) {
event.blockList().clear();
if (wcfg.explosionFlagCancellation) event.setCancelled(true);
return;
@@ -524,7 +528,7 @@ public void onEntityExplode(EntityExplodeEvent event) {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onExplosionPrime(ExplosionPrimeEvent event) {
ConfigurationManager cfg = plugin.getGlobalStateManager();
- WorldConfiguration wcfg = cfg.get(event.getEntity().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getEntity().getWorld());
Entity ent = event.getEntity();
if (cfg.activityHaltToggle) {
@@ -571,7 +575,7 @@ public void onCreatureSpawn(CreatureSpawnEvent event) {
return;
}
- WorldConfiguration wcfg = cfg.get(event.getEntity().getWorld());
+ BukkitWorldConfiguration wcfg = cfg.get(event.getEntity().getWorld());
// allow spawning of creatures from plugins
if (!wcfg.blockPluginSpawning && event.getSpawnReason() == CreatureSpawnEvent.SpawnReason.CUSTOM) {
@@ -601,12 +605,12 @@ public void onCreatureSpawn(CreatureSpawnEvent event) {
if (wcfg.useRegions && cfg.useRegionsCreatureSpawnEvent) {
ApplicableRegionSet set = plugin.getRegionContainer().createQuery().getApplicableRegions(eventLoc);
- if (!set.allows(DefaultFlag.MOB_SPAWNING)) {
+ if (!set.allows(Flags.MOB_SPAWNING)) {
event.setCancelled(true);
return;
}
- Set