Merge pull request #2542 from mindw0rm/UntrustedVisit

New plot flag untrusted-visit
This commit is contained in:
Matt
2019-10-31 17:02:48 -04:00
committed by GitHub
4 changed files with 15 additions and 2 deletions

View File

@ -695,7 +695,11 @@ import java.util.regex.Pattern;
Plot plot = area.getPlot(location);
if (plot != null) {
final boolean result = Flags.DENY_TELEPORT.allowsTeleport(plotPlayer, plot);
if (!result) {
// there is one possibility to still allow teleportation:
// to is identical to the plot's home location, and untrusted-visit is true
// i.e. untrusted-visit can override deny-teleport
// this is acceptable, because otherwise it wouldn't make sense to have both flags set
if (!result && !(Flags.UNTRUSTED_VISIT.isTrue(plot) && plot.getHome().equals(BukkitUtil.getLocationFull(to)))) {
MainUtil.sendMessage(plotPlayer, Captions.NO_PERMISSION_EVENT,
Captions.PERMISSION_ADMIN_ENTRY_DENIED);
event.setCancelled(true);

View File

@ -215,6 +215,12 @@ import java.util.Set;
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
}
public static Location getLocationFull(@NonNull final org.bukkit.Location location) {
return new Location(location.getWorld().getName(), MathMan.roundInt(location.getX()),
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()),
location.getYaw(), location.getPitch());
}
public static org.bukkit.Location getLocation(@NonNull final Location location) {
return new org.bukkit.Location(getWorld(location.getWorld()), location.getX(),
location.getY(), location.getZ());