mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 07:06:44 +01:00
Merge pull request #2542 from mindw0rm/UntrustedVisit
New plot flag untrusted-visit
This commit is contained in:
commit
627ecd2b71
@ -695,7 +695,11 @@ import java.util.regex.Pattern;
|
|||||||
Plot plot = area.getPlot(location);
|
Plot plot = area.getPlot(location);
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
final boolean result = Flags.DENY_TELEPORT.allowsTeleport(plotPlayer, plot);
|
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,
|
MainUtil.sendMessage(plotPlayer, Captions.NO_PERMISSION_EVENT,
|
||||||
Captions.PERMISSION_ADMIN_ENTRY_DENIED);
|
Captions.PERMISSION_ADMIN_ENTRY_DENIED);
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
@ -215,6 +215,12 @@ import java.util.Set;
|
|||||||
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
|
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) {
|
public static org.bukkit.Location getLocation(@NonNull final Location location) {
|
||||||
return new org.bukkit.Location(getWorld(location.getWorld()), location.getX(),
|
return new org.bukkit.Location(getWorld(location.getWorld()), location.getX(),
|
||||||
location.getY(), location.getZ());
|
location.getY(), location.getZ());
|
||||||
|
@ -5,6 +5,7 @@ import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Captions;
|
import com.github.intellectualsites.plotsquared.plot.config.Captions;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Settings;
|
import com.github.intellectualsites.plotsquared.plot.config.Settings;
|
||||||
|
import com.github.intellectualsites.plotsquared.plot.flag.Flags;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.*;
|
import com.github.intellectualsites.plotsquared.plot.object.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.MathMan;
|
import com.github.intellectualsites.plotsquared.plot.util.MathMan;
|
||||||
@ -129,7 +130,8 @@ import java.util.concurrent.CompletableFuture;
|
|||||||
return CompletableFuture.completedFuture(false);
|
return CompletableFuture.completedFuture(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!Permissions.hasPermission(player, Captions.PERMISSION_VISIT_OTHER)) {
|
if (!Permissions.hasPermission(player, Captions.PERMISSION_VISIT_OTHER) &&
|
||||||
|
!Flags.UNTRUSTED_VISIT.isTrue(plot)) {
|
||||||
Captions.NO_PERMISSION.send(player, Captions.PERMISSION_VISIT_OTHER);
|
Captions.NO_PERMISSION.send(player, Captions.PERMISSION_VISIT_OTHER);
|
||||||
return CompletableFuture.completedFuture(false);
|
return CompletableFuture.completedFuture(false);
|
||||||
}
|
}
|
||||||
|
@ -119,6 +119,7 @@ public final class Flags {
|
|||||||
};
|
};
|
||||||
public static final TeleportDenyFlag DENY_TELEPORT = new TeleportDenyFlag("deny-teleport");
|
public static final TeleportDenyFlag DENY_TELEPORT = new TeleportDenyFlag("deny-teleport");
|
||||||
public static final BooleanFlag DENY_EXIT = new BooleanFlag("deny-exit");
|
public static final BooleanFlag DENY_EXIT = new BooleanFlag("deny-exit");
|
||||||
|
public static final BooleanFlag UNTRUSTED_VISIT = new BooleanFlag("untrusted-visit");
|
||||||
|
|
||||||
|
|
||||||
private static final HashMap<String, Flag<?>> flags;
|
private static final HashMap<String, Flag<?>> flags;
|
||||||
|
Loading…
Reference in New Issue
Block a user