Java源码示例:com.sk89q.worldguard.protection.flags.Flags

示例1
private void define(RegionManager regionManager, ProtectedRegion region) {
    Objects.requireNonNull(regionManager, "regionManager");
    Objects.requireNonNull(region, "region");

    String id = region.getId();
    if (regionManager.hasRegion(id)) {
        ProtectedRegion existing = Objects.requireNonNull(regionManager.getRegion(id));
        region.copyFrom(existing);
    }

    this.flag(region, false);
    region.setFlag(Flags.PASSTHROUGH, StateFlag.State.ALLOW);
    regionManager.addRegion(region);
}
 
示例2
public static boolean a(Location loc){
		WorldGuard wGuard = WorldGuard.getInstance();
		for (ProtectedRegion k : wGuard.getPlatform().getRegionContainer().get(BukkitAdapter.adapt(loc.getWorld())).getRegions().values()) {
			if (k.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) {
				if (k.getFlag(Flags.PVP) == com.sk89q.worldguard.protection.flags.StateFlag.State.DENY)
					return false;
			}
		}
	return true;
}
 
示例3
public static boolean canExplode(Location loc){
	WorldGuard wGuard = WorldGuard.getInstance();
	for (ProtectedRegion k : wGuard.getPlatform().getRegionContainer().get(BukkitAdapter.adapt(loc.getWorld())).getRegions().values()) {
		if (k.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) {
			if (k.getFlag(Flags.OTHER_EXPLOSION) == com.sk89q.worldguard.protection.flags.StateFlag.State.DENY)
				return false;
		}
	}
	return true;
}
 
示例4
@Override
public boolean canBuild_i(final Player p, final Location l) {
    if (p.hasPermission("worldguard.region.bypass." + l.getWorld().getName())) return true;
    RegionQuery query = WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery();
    LocalPlayer player = WorldGuardPlugin.inst().wrapPlayer(p);
    return query.testState(BukkitAdapter.adapt(l), player, Flags.BUILD);
}
 
示例5
public static boolean allowsPVP(Location location) {
    WorldGuard api = getAPI();
    WorldGuardPlatform platform = api.getPlatform();
    RegionContainer container = platform.getRegionContainer();
    RegionQuery query = container.createQuery();

    com.sk89q.worldedit.util.Location weLocation = BukkitAdapter.adapt(location);
    StateFlag.State state = query.queryState(weLocation, null, Flags.PVP);
    return (state != StateFlag.State.DENY);
}
 
示例6
private static void updateLockStatus(ProtectedRegion region, boolean isLocked) {
    if (isLocked) {
        region.setFlag(Flags.ENTRY, StateFlag.State.DENY);
    } else {
        region.setFlag(Flags.ENTRY, null);
    }
}
 
示例7
@Override
public boolean canCreateShopHere(@NotNull Player player, @NotNull Location location) {
    LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
    com.sk89q.worldedit.util.Location wgLoc = BukkitAdapter.adapt(location);
    boolean canBypass =
            WorldGuard.getInstance()
                    .getPlatform()
                    .getSessionManager()
                    .hasBypass(localPlayer, BukkitAdapter.adapt(location.getWorld()));
    if (canBypass) {
        Util.debugLog(
                "Player "
                        + player.getName()
                        + " bypassing the protection checks, because player have bypass permission in WorldGuard");
        return true;
    }
    RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
    RegionQuery query = container.createQuery();
    if (query.getApplicableRegions(wgLoc).getRegions().isEmpty()) {
        return !whiteList;
    }
    for (WorldGuardFlags flag : createFlags) {
        switch (flag) {
            case BUILD:
                if (query.queryState(wgLoc, localPlayer, Flags.BUILD) == StateFlag.State.DENY) {
                    return false;
                }
                break;
            case FLAG:
                if (query.queryState(wgLoc, localPlayer, this.createFlag) == StateFlag.State.DENY) {
                    return false;
                }
                break;
            case CHEST_ACCESS:
                if (query.queryState(wgLoc, localPlayer, Flags.CHEST_ACCESS) == StateFlag.State.DENY) {
                    return false;
                }
                break;
            case INTERACT:
                if (query.queryState(wgLoc, localPlayer, Flags.INTERACT) == StateFlag.State.DENY) {
                    return false;
                }
                break;
        }
    }
    return true;
}
 
示例8
@Override
public boolean canTradeShopHere(@NotNull Player player, @NotNull Location location) {
    LocalPlayer localPlayer = WorldGuardPlugin.inst().wrapPlayer(player);
    com.sk89q.worldedit.util.Location wgLoc = BukkitAdapter.adapt(location);
    boolean canBypass =
            WorldGuard.getInstance()
                    .getPlatform()
                    .getSessionManager()
                    .hasBypass(localPlayer, BukkitAdapter.adapt(location.getWorld()));
    if (canBypass) {
        Util.debugLog(
                "Player "
                        + player.getName()
                        + " bypassing the protection checks, because player have bypass permission in WorldGuard");
        return true;
    }
    RegionContainer container = WorldGuard.getInstance().getPlatform().getRegionContainer();
    RegionQuery query = container.createQuery();
    if (query.getApplicableRegions(wgLoc).getRegions().isEmpty()) {
        return !whiteList;
    }
    for (WorldGuardFlags flag : tradeFlags) {
        switch (flag) {
            case BUILD:
                if (!query.testState(wgLoc, localPlayer, Flags.BUILD)) {
                    return false;
                }

                break;
            case FLAG:
                if (!query.testState(wgLoc, localPlayer, this.tradeFlag)) {
                    return false;
                }
                break;
            case CHEST_ACCESS:
                if (!query.testState(wgLoc, localPlayer, Flags.CHEST_ACCESS)) {
                    return false;
                }
                break;
            case INTERACT:
                if (!query.testState(wgLoc, localPlayer, Flags.INTERACT)) {
                    return false;
                }
                break;
        }
    }
    return true;
}
 
示例9
private static ProtectedCuboidRegion setRegionFlags(IslandInfo islandConfig, String regionName) {
    Location islandLocation = islandConfig.getIslandLocation();
    BlockVector3 minPoint = getProtectionVectorRight(islandLocation);
    BlockVector3 maxPoint = getProtectionVectorLeft(islandLocation);
    if (regionName != null && regionName.endsWith("nether")) {
        minPoint = minPoint.withY(6);
        maxPoint = maxPoint.withY(120);
    }
    ProtectedCuboidRegion region = new ProtectedCuboidRegion(regionName, minPoint, maxPoint);
    final DefaultDomain owners = new DefaultDomain();
    DefaultDomain members = new DefaultDomain();
    for (UUID member : islandConfig.getMemberUUIDs()) {
        owners.addPlayer(member);
    }
    for (UUID trust : islandConfig.getTrusteeUUIDs()) {
        members.addPlayer(trust);
    }
    region.setOwners(owners);
    region.setMembers(members);
    region.setPriority(100);
    if (uSkyBlock.getInstance().getConfig().getBoolean("worldguard.entry-message", true)) {
        if (owners.size() == 0) {
            region.setFlag(Flags.GREET_MESSAGE, tr("\u00a74** You are entering a protected - but abandoned - island area."));
        } else {
            region.setFlag(Flags.GREET_MESSAGE, tr("\u00a7d** You are entering \u00a7b{0}''s \u00a7disland.", islandConfig.getLeader()));
        }
    } else {
        region.setFlag(Flags.GREET_MESSAGE, null);
    }
    if (uSkyBlock.getInstance().getConfig().getBoolean("worldguard.exit-message", true)) {
        if (owners.size() == 0) {
            region.setFlag(Flags.FAREWELL_MESSAGE, tr("\u00a74** You are leaving an abandoned island."));
        } else {
            region.setFlag(Flags.FAREWELL_MESSAGE, tr("\u00a7d** You are leaving \u00a7b{0}''s \u00a7disland.", islandConfig.getLeader()));
        }
    } else {
        region.setFlag(Flags.FAREWELL_MESSAGE, null);
    }
    region.setFlag(Flags.PVP, null);
    boolean isLocked = islandConfig.isLocked();
    updateLockStatus(region, isLocked);
    return region;
}
 
示例10
private boolean canBuild(LocalPlayer player, Location location) {
    return WorldGuard.getInstance().getPlatform().getRegionContainer().createQuery().testBuild(location, player, Flags.BUILD);
}
 
示例11
@Override
public Flag<?> fuzzyMatchFlag(String flagName) {
	return Flags.fuzzyMatchFlag(WorldGuard.getInstance().getFlagRegistry(), flagName);
}
 
示例12
@Override
public Flag<?> fuzzyMatchFlag(String flagName) {
	return Flags.fuzzyMatchFlag(WorldGuard.getInstance().getFlagRegistry(), flagName);
}
 
示例13
@Override
public Flag<?> fuzzyMatchFlag(String flagName) {
	return Flags.fuzzyMatchFlag(WorldGuard.getInstance().getFlagRegistry(), flagName);
}