mirror of
https://github.com/EngineHub/WorldGuard.git
synced 2024-10-01 16:17:28 +02:00
Fixed floating point inaccuracy in onPlayerMove().
This commit is contained in:
parent
7fce4bf53e
commit
fb39261dc7
@ -152,7 +152,7 @@ public static class PlayerFlagState {
|
||||
public long lastHeal;
|
||||
public String lastGreeting;
|
||||
public String lastFarewell;
|
||||
public boolean lastExitAllowed = true;
|
||||
public Boolean lastExitAllowed = null;
|
||||
public Boolean notifiedForEnter = false;
|
||||
public Boolean notifiedForLeave = false;
|
||||
}
|
||||
|
@ -242,7 +242,7 @@ public void onPlayerMove(PlayerMoveEvent event) {
|
||||
boolean hasBypass = plugin.getGlobalRegionManager().hasBypass(player, world);
|
||||
|
||||
RegionManager mgr = plugin.getGlobalRegionManager().get(world);
|
||||
Vector pt = toVector(event.getTo());
|
||||
Vector pt = new Vector(event.getTo().getBlockX(), event.getTo().getBlockY(), event.getTo().getBlockZ());
|
||||
ApplicableRegionSet set = mgr.getApplicableRegions(pt);
|
||||
|
||||
boolean entryAllowed = set.allows(DefaultFlag.ENTRY, localPlayer);
|
||||
@ -257,6 +257,12 @@ public void onPlayerMove(PlayerMoveEvent event) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Have to set this state
|
||||
if (state.lastExitAllowed == null) {
|
||||
state.lastExitAllowed = mgr.getApplicableRegions(toVector(event.getFrom()))
|
||||
.allows(DefaultFlag.EXIT, localPlayer);
|
||||
}
|
||||
|
||||
boolean exitAllowed = set.allows(DefaultFlag.EXIT, localPlayer);
|
||||
if (!hasBypass && exitAllowed && !state.lastExitAllowed) {
|
||||
player.sendMessage(ChatColor.DARK_RED + "You are not permitted to leave this area.");
|
||||
|
Loading…
Reference in New Issue
Block a user