60 lines
2.0 KiB
Java
60 lines
2.0 KiB
Java
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;
|
|
}
|
|
}
|