package me.gtacraft.plugins.safezone.hook; import com.google.common.collect.Lists; import com.sk89q.worldedit.Vector; import com.sk89q.worldedit.regions.Region; import com.sk89q.worldguard.LocalPlayer; import com.sk89q.worldguard.bukkit.WorldGuardPlugin; import com.sk89q.worldguard.domains.DefaultDomain; import com.sk89q.worldguard.protection.managers.RegionManager; import com.sk89q.worldguard.protection.regions.ProtectedRegion; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Player; import java.util.List; /** * Created by Connor on 6/27/14. Designed for the GTA-Safezone project. */ public class WorldHooks { private static WorldGuardPlugin wgp; public static void init() { wgp = (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard"); } public static ProtectedRegion getRegion(World world, String id) { return wgp.getGlobalRegionManager().get(world).getRegion(id); } public static void setAllowPlayer(ProtectedRegion region, Player player) { LocalPlayer local = wgp.wrapPlayer(player); DefaultDomain dd = region.getOwners(); dd.addPlayer(local); region.setOwners(dd); } public static void setDenyPlayer(ProtectedRegion region, Player player) { LocalPlayer local = wgp.wrapPlayer(player); DefaultDomain dd = region.getOwners(); dd.removePlayer(local); region.setOwners(dd); } public static boolean containsPoint(Region region, Location check) { //short circuit eval if (!region.getWorld().equals(check.getWorld())) return false; Vector weVec = new Vector(check.getX(), check.getY(), check.getZ()); if (region.contains(weVec)) return true; return false; } public static List<ProtectedRegion> getAllRegions(World world) { RegionManager rm = wgp.getRegionManager(world); List<ProtectedRegion> ret = Lists.newArrayList(); for (ProtectedRegion pr : rm.getRegions().values()) { ret.add(pr); } return ret; } public static World getWorldManager(ProtectedRegion region) { for (World world : Bukkit.getWorlds()) { RegionManager possible = wgp.getRegionManager(world); if (possible == null) continue; if (possible.hasRegion(region.getId())) return world; } return null; } }