Search in sources :

Example 1 with ProtectedRegion

use of com.sk89q.worldguard.protection.regions.ProtectedRegion in project AreaShop by NLthijs48.

the class Utils method getImportantRegions.

/**
 * Get the most important AreaShop regions.
 * - Returns highest priority, child instead of parent regions.
 * @param location The location to check for regions
 * @param type     The type of regions to look for, null for all
 * @return empty list if no regions found, 1 member if 1 region is a priority, more if regions with the same priority
 */
public static List<GeneralRegion> getImportantRegions(Location location, GeneralRegion.RegionType type) {
    List<GeneralRegion> result = new ArrayList<>();
    Set<ProtectedRegion> regions = AreaShop.getInstance().getWorldGuardHandler().getApplicableRegionsSet(location);
    if (regions != null) {
        List<GeneralRegion> candidates = new ArrayList<>();
        for (ProtectedRegion pr : regions) {
            GeneralRegion region = AreaShop.getInstance().getFileManager().getRegion(pr.getId());
            if (region != null && ((type == GeneralRegion.RegionType.RENT && region instanceof RentRegion) || (type == GeneralRegion.RegionType.BUY && region instanceof BuyRegion) || type == null)) {
                candidates.add(region);
            }
        }
        boolean first = true;
        for (GeneralRegion region : candidates) {
            if (region == null) {
                AreaShop.debug("skipped null region");
                continue;
            }
            if (first) {
                result.add(region);
                first = false;
            } else {
                if (region.getRegion().getPriority() > result.get(0).getRegion().getPriority()) {
                    result.clear();
                    result.add(region);
                } else if (region.getRegion().getParent() != null && region.getRegion().getParent().equals(result.get(0).getRegion())) {
                    result.clear();
                    result.add(region);
                } else {
                    result.add(region);
                }
            }
        }
    }
    return new ArrayList<>(result);
}
Also used : BuyRegion(me.wiefferink.areashop.regions.BuyRegion) GeneralRegion(me.wiefferink.areashop.regions.GeneralRegion) ArrayList(java.util.ArrayList) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) RentRegion(me.wiefferink.areashop.regions.RentRegion)

Example 2 with ProtectedRegion

use of com.sk89q.worldguard.protection.regions.ProtectedRegion in project AreaShop by NLthijs48.

the class TeleportFeature method teleportPlayer.

/**
 * Teleport a player to the region or sign.
 * @param player            Player that should be teleported
 * @param toSign            true to teleport to the first sign of the region, false for teleporting to the region itself
 * @param checkRestrictions Set to true if teleport permissions should be checked, false otherwise, also toggles cross-world check
 * @return true if the teleport succeeded, otherwise false
 */
public boolean teleportPlayer(Player player, boolean toSign, boolean checkRestrictions) {
    // Check basics
    if (getRegion().getWorld() == null) {
        getRegion().message(player, "general-noWorld");
        return false;
    }
    if (getRegion().getRegion() == null) {
        getRegion().message(player, "general-noRegion");
        return false;
    }
    if (checkRestrictions) {
        // Check correct world
        if (!getRegion().getBooleanSetting("general.teleportCrossWorld") && !player.getWorld().equals(getRegion().getWorld())) {
            getRegion().message(player, "teleport-wrongWorld", player.getWorld().getName());
            return false;
        }
        boolean owner = player.getUniqueId().equals(getRegion().getOwner());
        boolean friend = getRegion().getFriendsFeature().getFriends().contains(player.getUniqueId());
        boolean available = getRegion().isAvailable();
        // Teleport to sign instead if they dont have permission for teleporting to region
        if ((!toSign && owner && !player.hasPermission("areashop.teleport") && player.hasPermission("areashop.teleportsign") || !toSign && !owner && !friend && !player.hasPermission("areashop.teleportall") && player.hasPermission("areashop.teleportsignall") || !toSign && !owner && friend && !player.hasPermission("areashop.teleportfriend") && player.hasPermission("areashop.teleportfriendsign") || !toSign && !owner && !friend && available && !player.hasPermission("areashop.teleportavailable") && player.hasPermission("areashop.teleportavailablesign"))) {
            getRegion().message(player, "teleport-changedToSign");
            toSign = true;
        }
        // Check permissions
        if (owner && !available && !player.hasPermission("areashop.teleport") && !toSign) {
            getRegion().message(player, "teleport-noPermission");
            return false;
        } else if (!owner && !available && !player.hasPermission("areashop.teleportall") && !toSign && !friend) {
            getRegion().message(player, "teleport-noPermissionOther");
            return false;
        } else if (!owner && !available && !player.hasPermission("areashop.teleportfriend") && !toSign && friend) {
            getRegion().message(player, "teleport-noPermissionFriend");
            return false;
        } else if (available && !player.hasPermission("areashop.teleportavailable") && !toSign) {
            getRegion().message(player, "teleport-noPermissionAvailable");
            return false;
        } else if (owner && !available && !player.hasPermission("areashop.teleportsign") && toSign) {
            getRegion().message(player, "teleport-noPermissionSign");
            return false;
        } else if (!owner && !available && !player.hasPermission("areashop.teleportsignall") && toSign && !friend) {
            getRegion().message(player, "teleport-noPermissionOtherSign");
            return false;
        } else if (!owner && !available && !player.hasPermission("areashop.teleportfriendsign") && toSign && friend) {
            getRegion().message(player, "teleport-noPermissionFriendSign");
            return false;
        } else if (available && !player.hasPermission("areashop.teleportavailablesign") && toSign) {
            getRegion().message(player, "teleport-noPermissionAvailableSign");
            return false;
        }
    }
    // Get the starting location
    Value<Boolean> toSignRef = new Value<>(toSign);
    Location startLocation = getStartLocation(player, toSignRef);
    toSign = toSignRef.get();
    boolean insideRegion;
    if (toSign) {
        insideRegion = getRegion().getBooleanSetting("general.teleportToSignIntoRegion");
    } else {
        insideRegion = getRegion().getBooleanSetting("general.teleportIntoRegion");
    }
    // Check locations starting from startLocation and then a cube that increases
    // radius around that (until no block in the region is found at all cube sides)
    Location safeLocation = startLocation;
    ProtectedRegion worldguardRegion = getRegion().getRegion();
    boolean blocksInRegion = worldguardRegion.contains(startLocation.getBlockX(), startLocation.getBlockY(), startLocation.getBlockZ());
    if (!blocksInRegion && insideRegion) {
        getRegion().message(player, "teleport-blocked");
        return false;
    }
    // Tries limit tracking
    int radius = 1;
    int checked = 1;
    int maxTries = plugin.getConfig().getInt("maximumTries");
    // Tracking of which sides to continue the search
    boolean done = isSafe(safeLocation) && ((blocksInRegion && insideRegion) || (!insideRegion));
    boolean northDone = false, eastDone = false, southDone = false, westDone = false, topDone = false, bottomDone = false;
    boolean continueThisDirection;
    while (((blocksInRegion && insideRegion) || (!insideRegion)) && !done) {
        blocksInRegion = false;
        // North side
        continueThisDirection = false;
        for (int x = -radius + 1; x <= radius && !done && !northDone; x++) {
            for (int y = -radius + 1; y < radius && !done; y++) {
                safeLocation = startLocation.clone().add(x, y, -radius);
                if (safeLocation.getBlockY() > 256 || safeLocation.getBlockY() < 0) {
                    continue;
                }
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        northDone = northDone || !continueThisDirection;
        // East side
        continueThisDirection = false;
        for (int z = -radius + 1; z <= radius && !done && !eastDone; z++) {
            for (int y = -radius + 1; y < radius && !done; y++) {
                safeLocation = startLocation.clone().add(radius, y, z);
                if (safeLocation.getBlockY() > 256 || safeLocation.getBlockY() < 0) {
                    continue;
                }
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        eastDone = eastDone || !continueThisDirection;
        // South side
        continueThisDirection = false;
        for (int x = radius - 1; x >= -radius && !done && !southDone; x--) {
            for (int y = -radius + 1; y < radius && !done; y++) {
                safeLocation = startLocation.clone().add(x, y, radius);
                if (safeLocation.getBlockY() > 256 || safeLocation.getBlockY() < 0) {
                    continue;
                }
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        southDone = southDone || !continueThisDirection;
        // West side
        continueThisDirection = false;
        for (int z = radius - 1; z >= -radius && !done && !westDone; z--) {
            for (int y = -radius + 1; y < radius && !done; y++) {
                safeLocation = startLocation.clone().add(-radius, y, z);
                if (safeLocation.getBlockY() > 256 || safeLocation.getBlockY() < 0) {
                    continue;
                }
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        westDone = westDone || !continueThisDirection;
        // Top side
        continueThisDirection = false;
        // Middle block of the top
        if ((startLocation.getBlockY() + radius) > 256) {
            topDone = true;
        }
        if (!done && !topDone) {
            safeLocation = startLocation.clone().add(0, radius, 0);
            if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                checked++;
                done = isSafe(safeLocation) || checked > maxTries;
                blocksInRegion = true;
                continueThisDirection = true;
            }
        }
        for (int r = 1; r <= radius && !done && !topDone; r++) {
            // North
            for (int x = -r + 1; x <= r && !done; x++) {
                safeLocation = startLocation.clone().add(x, radius, -r);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // East
            for (int z = -r + 1; z <= r && !done; z++) {
                safeLocation = startLocation.clone().add(r, radius, z);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // South side
            for (int x = r - 1; x >= -r && !done; x--) {
                safeLocation = startLocation.clone().add(x, radius, r);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // West side
            for (int z = r - 1; z >= -r && !done; z--) {
                safeLocation = startLocation.clone().add(-r, radius, z);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        topDone = topDone || !continueThisDirection;
        // Bottom side
        continueThisDirection = false;
        // Middle block of the bottom
        if (startLocation.getBlockY() - radius < 0) {
            bottomDone = true;
        }
        if (!done && !bottomDone) {
            safeLocation = startLocation.clone().add(0, -radius, 0);
            if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                checked++;
                done = isSafe(safeLocation) || checked > maxTries;
                blocksInRegion = true;
                continueThisDirection = true;
            }
        }
        for (int r = 1; r <= radius && !done && !bottomDone; r++) {
            // North
            for (int x = -r + 1; x <= r && !done; x++) {
                safeLocation = startLocation.clone().add(x, -radius, -r);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // East
            for (int z = -r + 1; z <= r && !done; z++) {
                safeLocation = startLocation.clone().add(r, -radius, z);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // South side
            for (int x = r - 1; x >= -r && !done; x--) {
                safeLocation = startLocation.clone().add(x, -radius, r);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
            // West side
            for (int z = r - 1; z >= -r && !done; z--) {
                safeLocation = startLocation.clone().add(-r, -radius, z);
                if (worldguardRegion.contains(safeLocation.getBlockX(), safeLocation.getBlockY(), safeLocation.getBlockZ()) || !insideRegion) {
                    checked++;
                    done = isSafe(safeLocation) || checked > maxTries;
                    blocksInRegion = true;
                    continueThisDirection = true;
                }
            }
        }
        bottomDone = bottomDone || !continueThisDirection;
        // Increase cube radius
        radius++;
    }
    if (done && isSafe(safeLocation)) {
        if (toSign) {
            getRegion().message(player, "teleport-successSign");
            // Let the player look at the sign
            Vector playerVector = safeLocation.toVector();
            playerVector.setY(playerVector.getY() + player.getEyeHeight(true));
            Vector signVector = getRegion().getSignsFeature().getSigns().get(0).getLocation().toVector().add(new Vector(0.5, 0.5, 0.5));
            Vector direction = playerVector.clone().subtract(signVector).normalize();
            safeLocation.setYaw(180 - (float) Math.toDegrees(Math.atan2(direction.getX(), direction.getZ())));
            safeLocation.setPitch(90 - (float) Math.toDegrees(Math.acos(direction.getY())));
        } else {
            getRegion().message(player, "teleport-success");
        }
        player.teleport(safeLocation);
        AreaShop.debug("Found location: " + safeLocation.toString() + " Tries: " + (checked - 1));
        return true;
    } else {
        getRegion().message(player, "teleport-noSafe", checked - 1, maxTries);
        AreaShop.debug("No location found, checked " + (checked - 1) + " spots of max " + maxTries);
        return false;
    }
}
Also used : Value(me.wiefferink.areashop.tools.Value) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) Vector(org.bukkit.util.Vector) Location(org.bukkit.Location)

Example 3 with ProtectedRegion

use of com.sk89q.worldguard.protection.regions.ProtectedRegion in project AreaShop by NLthijs48.

the class WorldGuardRegionFlagsFeature method updateRegionFlags.

/**
 * Set the region flags/options to the values of a ConfigurationSection.
 * @param region The region to update the flags for
 * @param flags  The flags to apply
 * @return true if the flags have been set correctly, otherwise false
 */
private boolean updateRegionFlags(GeneralRegion region, ConfigurationSection flags) {
    boolean result = true;
    Set<String> flagNames = flags.getKeys(false);
    WorldGuardPlugin worldGuard = plugin.getWorldGuard();
    // Get the region
    ProtectedRegion worldguardRegion = region.getRegion();
    if (worldguardRegion == null) {
        AreaShop.debug("Region '" + region.getName() + "' does not exist, setting flags failed");
        return false;
    }
    // Loop through all flags that are set in the config
    for (String flagName : flagNames) {
        String value = Message.fromString(flags.getString(flagName)).replacements(region).getPlain();
        // In the config normal Bukkit color codes are used, those only need to be translated on 5.X WorldGuard versions
        if (plugin.getWorldGuard().getDescription().getVersion().startsWith("5.")) {
            value = translateBukkitToWorldGuardColors(value);
        }
        if (flagName.equalsIgnoreCase("members")) {
            plugin.getWorldGuardHandler().setMembers(worldguardRegion, parseAccessSet(value));
        // AreaShop.debug("  Flag " + flagName + " set: " + members.toUserFriendlyString());
        } else if (flagName.equalsIgnoreCase("owners")) {
            plugin.getWorldGuardHandler().setOwners(worldguardRegion, parseAccessSet(value));
        // AreaShop.debug("  Flag " + flagName + " set: " + owners.toUserFriendlyString());
        } else if (flagName.equalsIgnoreCase("priority")) {
            try {
                int priority = Integer.parseInt(value);
                if (worldguardRegion.getPriority() != priority) {
                    worldguardRegion.setPriority(priority);
                }
            // AreaShop.debug("  Flag " + flagName + " set: " + value);
            } catch (NumberFormatException e) {
                AreaShop.warn("The value of flag " + flagName + " is not a number");
                result = false;
            }
        } else if (flagName.equalsIgnoreCase("parent")) {
            if (region.getWorld() == null || worldGuard.getRegionManager(region.getWorld()) == null) {
                continue;
            }
            ProtectedRegion parentRegion = worldGuard.getRegionManager(region.getWorld()).getRegion(value);
            if (parentRegion != null) {
                if (!parentRegion.equals(worldguardRegion.getParent())) {
                    try {
                        worldguardRegion.setParent(parentRegion);
                    // AreaShop.debug("  Flag " + flagName + " set: " + value);
                    } catch (ProtectedRegion.CircularInheritanceException e) {
                        AreaShop.warn("The parent set in the config is not correct (circular inheritance)");
                    }
                }
            } else {
                AreaShop.warn("The parent set in the config is not correct (region does not exist)");
            }
        } else {
            // Parse all other normal flags (groups are also handled)
            String flagSetting = null;
            com.sk89q.worldguard.protection.flags.RegionGroup groupValue = null;
            Flag<?> foundFlag = plugin.getWorldGuardHandler().fuzzyMatchFlag(flagName);
            if (foundFlag == null) {
                AreaShop.warn("Found wrong flag in flagProfiles section: " + flagName + ", check if that is the correct WorldGuard flag");
                continue;
            }
            RegionGroupFlag groupFlag = foundFlag.getRegionGroupFlag();
            if (value == null || value.isEmpty()) {
                if (worldguardRegion.getFlag(foundFlag) != null) {
                    worldguardRegion.setFlag(foundFlag, null);
                }
                if (groupFlag != null && worldguardRegion.getFlag(groupFlag) != null) {
                    worldguardRegion.setFlag(groupFlag, null);
                }
            // AreaShop.debug("  Flag " + flagName + " reset (+ possible group of flag)");
            } else {
                if (groupFlag == null) {
                    flagSetting = value;
                } else {
                    for (String part : value.split(" ")) {
                        if (part.startsWith("g:")) {
                            if (part.length() > 2) {
                                try {
                                    groupValue = plugin.getWorldGuardHandler().parseFlagGroupInput(groupFlag, part.substring(2));
                                } catch (InvalidFlagFormat e) {
                                    AreaShop.warn("Found wrong group value for flag " + flagName);
                                }
                            }
                        } else {
                            if (flagSetting == null) {
                                flagSetting = part;
                            } else {
                                flagSetting += " " + part;
                            }
                        }
                    }
                }
                if (flagSetting != null) {
                    try {
                        setFlag(worldguardRegion, foundFlag, flagSetting);
                    // AreaShop.debug("  Flag " + flagName + " set: " + flagSetting);
                    } catch (InvalidFlagFormat e) {
                        AreaShop.warn("Found wrong value for flag " + flagName);
                    }
                }
                if (groupValue != null) {
                    if (groupValue == groupFlag.getDefault()) {
                        worldguardRegion.setFlag(groupFlag, null);
                    // AreaShop.debug("    Group of flag " + flagName + " set to default: " + groupValue);
                    } else {
                        worldguardRegion.setFlag(groupFlag, groupValue);
                    // AreaShop.debug("    Group of flag " + flagName + " set: " + groupValue);
                    }
                }
            }
        }
    }
    // Indicate that the regions needs to be saved
    // TODO do we still need this? maybe only for old WorldGuard?
    plugin.getFileManager().saveIsRequiredForRegionWorld(region.getWorldName());
    return result;
}
Also used : RegionGroupFlag(com.sk89q.worldguard.protection.flags.RegionGroupFlag) Flag(com.sk89q.worldguard.protection.flags.Flag) RegionGroupFlag(com.sk89q.worldguard.protection.flags.RegionGroupFlag) WorldGuardPlugin(com.sk89q.worldguard.bukkit.WorldGuardPlugin) InvalidFlagFormat(com.sk89q.worldguard.protection.flags.InvalidFlagFormat) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion)

Example 4 with ProtectedRegion

use of com.sk89q.worldguard.protection.regions.ProtectedRegion in project AreaShop by NLthijs48.

the class WorldEditHandler5 method saveRegionBlocks.

@Override
public boolean saveRegionBlocks(File file, GeneralRegionInterface regionInterface) {
    boolean result = true;
    ProtectedRegion region = regionInterface.getRegion();
    // Get the origin and size of the region
    Vector origin = new Vector(region.getMinimumPoint().getBlockX(), region.getMinimumPoint().getBlockY(), region.getMinimumPoint().getBlockZ());
    Vector size = (new Vector(region.getMaximumPoint().getBlockX(), region.getMaximumPoint().getBlockY(), region.getMaximumPoint().getBlockZ()).subtract(origin)).add(new Vector(1, 1, 1));
    EditSession editSession = new EditSession(new BukkitWorld(regionInterface.getWorld()), pluginInterface.getConfig().getInt("maximumBlocks"));
    // Save the schematic
    editSession.enableQueue();
    CuboidClipboard clipboard = new CuboidClipboard(size, origin);
    clipboard.copy(editSession);
    Exception otherException = null;
    try {
        SchematicFormat.MCEDIT.save(clipboard, file);
    } catch (DataException | IOException e) {
        otherException = e;
    }
    if (otherException != null) {
        pluginInterface.getLogger().warning("Failed to save schematic for region " + regionInterface.getName());
        pluginInterface.debugI(ExceptionUtils.getStackTrace(otherException));
        result = false;
    }
    editSession.flushQueue();
    return result;
}
Also used : DataException(com.sk89q.worldedit.data.DataException) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) CuboidClipboard(com.sk89q.worldedit.CuboidClipboard) BukkitWorld(com.sk89q.worldedit.bukkit.BukkitWorld) EditSession(com.sk89q.worldedit.EditSession) IOException(java.io.IOException) Vector(com.sk89q.worldedit.Vector) DataException(com.sk89q.worldedit.data.DataException) MaxChangedBlocksException(com.sk89q.worldedit.MaxChangedBlocksException) IOException(java.io.IOException)

Example 5 with ProtectedRegion

use of com.sk89q.worldguard.protection.regions.ProtectedRegion in project AreaShop by NLthijs48.

the class WorldGuardHandler5 method getApplicableRegionsSet.

@Override
public Set<ProtectedRegion> getApplicableRegionsSet(Location location) {
    Set<ProtectedRegion> result = new HashSet<>();
    Vector vector = new Vector(location.getX(), location.getY(), location.getZ());
    for (ProtectedRegion region : pluginInterface.getWorldGuard().getRegionManager(location.getWorld()).getRegions().values()) {
        if (region.contains(vector)) {
            result.add(region);
        }
    }
    return result;
}
Also used : ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) Vector(com.sk89q.worldedit.Vector) HashSet(java.util.HashSet)

Aggregations

ProtectedRegion (com.sk89q.worldguard.protection.regions.ProtectedRegion)37 RegionManager (com.sk89q.worldguard.protection.managers.RegionManager)14 ArrayList (java.util.ArrayList)8 Vector (com.sk89q.worldedit.Vector)7 Location (org.bukkit.Location)7 World (org.bukkit.World)7 Player (org.bukkit.entity.Player)6 OwnedLand (biz.princeps.landlord.util.OwnedLand)5 WarningMessage (com.magmaguy.elitemobs.utils.WarningMessage)5 FlagConflictException (com.sk89q.worldguard.protection.flags.registry.FlagConflictException)5 WorldGuardPlugin (com.sk89q.worldguard.bukkit.WorldGuardPlugin)4 GlobalProtectedRegion (com.sk89q.worldguard.protection.regions.GlobalProtectedRegion)4 RegionContainer (com.sk89q.worldguard.protection.regions.RegionContainer)4 HashSet (java.util.HashSet)4 BuyRegion (me.wiefferink.areashop.regions.BuyRegion)4 GeneralRegion (me.wiefferink.areashop.regions.GeneralRegion)4 RentRegion (me.wiefferink.areashop.regions.RentRegion)4 LandlordCommand (biz.princeps.landlord.commands.LandlordCommand)3 BlockVector (com.sk89q.worldedit.BlockVector)3 Flag (com.sk89q.worldguard.protection.flags.Flag)3