TF-WorldGuardExtraFlagsPlugin/Spigot/src/main/java/net/goldtreeservers/worldguardextraflags/fawe/FaweWorldEditFlagMaskManage...

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;
}
}