package net.goldtreeservers.worldguardextraflags.fawe; import com.fastasyncworldedit.core.regions.FaweMask; import com.fastasyncworldedit.core.regions.FaweMaskManager; import org.bukkit.Location; import org.bukkit.entity.Player; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.flags.StateFlag.State; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import net.goldtreeservers.worldguardextraflags.WorldGuardExtraFlagsPlugin; import net.goldtreeservers.worldguardextraflags.flags.Flags; import net.goldtreeservers.worldguardextraflags.wg.wrappers.AbstractRegionManagerWrapper; public class FaweWorldEditFlagMaskManager extends FaweMaskManager { private final WorldGuardExtraFlagsPlugin plugin; public FaweWorldEditFlagMaskManager(WorldGuardExtraFlagsPlugin plugin) { super(plugin.getName()); this.plugin = plugin; } public ProtectedRegion getRegion(Player player, Location loc) { final com.sk89q.worldguard.LocalPlayer localplayer = this.plugin.getWorldGuardCommunicator().wrapPlayer(player); AbstractRegionManagerWrapper manager = this.plugin.getWorldGuardCommunicator().getRegionContainer().get(player.getWorld()); final ProtectedRegion global = manager.getRegion("__global__"); if (global != null && !isDenied(localplayer, global)) { return global; } final ApplicableRegionSet regions = manager.getApplicableRegions(player.getLocation()); for (final ProtectedRegion region : regions) { if (!isDenied(localplayer, region)) { return region; } } return null; } public boolean isDenied(LocalPlayer localplayer, ProtectedRegion region) { return region.getFlag(Flags.WORLDEDIT) == State.DENY; } @Override public FaweMask getMask(com.sk89q.worldedit.entity.Player player, MaskType type, boolean isWhitelist) { return null; } }