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