mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2025-02-04 22:01:54 +01:00
Fixed water on top of player behaviour + Fixed behaviour in case of
cancelled move-events
This commit is contained in:
parent
6033ee47e5
commit
d23f38ebd1
@ -3,7 +3,7 @@ name: NoCheat
|
|||||||
author: Evenprime
|
author: Evenprime
|
||||||
|
|
||||||
main: cc.co.evenprime.bukkit.nocheat.NoCheat
|
main: cc.co.evenprime.bukkit.nocheat.NoCheat
|
||||||
version: 1.13a
|
version: 1.13b
|
||||||
|
|
||||||
softdepend: [ Permissions, CraftIRC ]
|
softdepend: [ Permissions, CraftIRC ]
|
||||||
|
|
||||||
|
@ -98,6 +98,7 @@ public class MovingCheck extends Check {
|
|||||||
|
|
||||||
if(data.setBackPoint == null) {
|
if(data.setBackPoint == null) {
|
||||||
data.setBackPoint = from;
|
data.setBackPoint = from;
|
||||||
|
data.jumpPhase = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(flyCheck || runCheck) {
|
if(flyCheck || runCheck) {
|
||||||
@ -135,7 +136,7 @@ public class MovingCheck extends Check {
|
|||||||
data.jumpPhase++;
|
data.jumpPhase++;
|
||||||
|
|
||||||
if(result <= 0) {
|
if(result <= 0) {
|
||||||
if(toInGround && from.getY() >= to.getY() || helper.isLiquid(toType)) {
|
if((toInGround && from.getY() >= to.getY()) || helper.isLiquid(toType)) {
|
||||||
data.setBackPoint = to.clone();
|
data.setBackPoint = to.clone();
|
||||||
data.setBackPoint.setY(Math.ceil(data.setBackPoint.getY()));
|
data.setBackPoint.setY(Math.ceil(data.setBackPoint.getY()));
|
||||||
data.jumpPhase = 0;
|
data.jumpPhase = 0;
|
||||||
@ -236,12 +237,9 @@ public class MovingCheck extends Check {
|
|||||||
data.teleportInitializedByMe = null;
|
data.teleportInitializedByMe = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!event.isCancelled()) {
|
|
||||||
data.setBackPoint = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// reset anyway - if another plugin cancelled our teleport it's no use
|
// reset anyway - if another plugin cancelled our teleport it's no use
|
||||||
// to try and be precise
|
// to try and be precise
|
||||||
|
data.setBackPoint = null;
|
||||||
data.jumpPhase = 0;
|
data.jumpPhase = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -306,7 +304,7 @@ public class MovingCheck extends Check {
|
|||||||
|
|
||||||
double y = data.setBackPoint.getY();
|
double y = data.setBackPoint.getY();
|
||||||
|
|
||||||
// search for the first solid block up to 5 blocks below
|
/*// search for the first solid block up to 5 blocks below
|
||||||
// the setbackpoint and teleport the player there
|
// the setbackpoint and teleport the player there
|
||||||
int i = 0;
|
int i = 0;
|
||||||
for(; i < 20; i++) {
|
for(; i < 20; i++) {
|
||||||
@ -316,7 +314,7 @@ public class MovingCheck extends Check {
|
|||||||
}
|
}
|
||||||
y -= 0.5 * i;
|
y -= 0.5 * i;
|
||||||
|
|
||||||
data.setBackPoint.setY(y);
|
data.setBackPoint.setY(y);*/
|
||||||
|
|
||||||
// Remember the location we send the player to, to
|
// Remember the location we send the player to, to
|
||||||
// identify teleports that were started by us
|
// identify teleports that were started by us
|
||||||
@ -347,8 +345,8 @@ public class MovingCheck extends Check {
|
|||||||
private static int limitCheck(final double value) {
|
private static int limitCheck(final double value) {
|
||||||
|
|
||||||
if(value > 0.0D) {
|
if(value > 0.0D) {
|
||||||
if(value > 0.5D) {
|
if(value > 1.0D) {
|
||||||
if(value > 2.0D)
|
if(value > 4.0D)
|
||||||
return 2;
|
return 2;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
@ -122,15 +122,16 @@ public class MovingEventHelper {
|
|||||||
private final int canStand(World world, int x, int y, int z) {
|
private final int canStand(World world, int x, int y, int z) {
|
||||||
|
|
||||||
int standingIn = types[world.getBlockTypeIdAt(x, y, z)];
|
int standingIn = types[world.getBlockTypeIdAt(x, y, z)];
|
||||||
|
int headIn = types[world.getBlockTypeIdAt(x, y + 1, z)];
|
||||||
|
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
// It's either liquid, or something else
|
// It's either liquid, or something else
|
||||||
if(isLiquid(standingIn)) {
|
if(isLiquid(standingIn) || isLiquid(headIn)) {
|
||||||
return LIQUID;
|
return LIQUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
int headIn = types[world.getBlockTypeIdAt(x, y + 1, z)];
|
|
||||||
int standingOn = types[world.getBlockTypeIdAt(x, y - 1, z)];
|
int standingOn = types[world.getBlockTypeIdAt(x, y - 1, z)];
|
||||||
|
|
||||||
// Player standing with his feet in a (half) block?
|
// Player standing with his feet in a (half) block?
|
||||||
|
@ -50,6 +50,7 @@ public class MovingPlayerListener extends PlayerListener {
|
|||||||
// Did the checks decide we need a new To-Location?
|
// Did the checks decide we need a new To-Location?
|
||||||
if(newTo != null) {
|
if(newTo != null) {
|
||||||
event.setTo(new Location(newTo.getWorld(), newTo.getX(), newTo.getY(), newTo.getZ(), event.getTo().getYaw(), event.getTo().getPitch()));
|
event.setTo(new Location(newTo.getWorld(), newTo.getX(), newTo.getY(), newTo.getZ(), event.getTo().getYaw(), event.getTo().getPitch()));
|
||||||
|
data.setBackPoint = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,6 @@ public class MovingPlayerMonitor extends PlayerListener {
|
|||||||
public void onPlayerRespawn(PlayerRespawnEvent event) {
|
public void onPlayerRespawn(PlayerRespawnEvent event) {
|
||||||
MovingData data = dataManager.getMovingData(event.getPlayer());
|
MovingData data = dataManager.getMovingData(event.getPlayer());
|
||||||
data.setBackPoint = null;
|
data.setBackPoint = null;
|
||||||
data.jumpPhase = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -50,11 +49,7 @@ public class MovingPlayerMonitor extends PlayerListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerMove(PlayerMoveEvent event) {
|
public void onPlayerMove(PlayerMoveEvent event) {
|
||||||
|
if(event.isCancelled() || event.getPlayer().isInsideVehicle()) {
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
|
|
||||||
if(event.getPlayer().isInsideVehicle()) {
|
|
||||||
MovingData data = dataManager.getMovingData(event.getPlayer());
|
MovingData data = dataManager.getMovingData(event.getPlayer());
|
||||||
data.setBackPoint = null;
|
data.setBackPoint = null;
|
||||||
}
|
}
|
||||||
|
@ -30,10 +30,6 @@ public class SpeedhackPlayerListener extends PlayerListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPlayerTeleport(PlayerTeleportEvent event) {
|
public void onPlayerTeleport(PlayerTeleportEvent event) {
|
||||||
|
|
||||||
if(event.isCancelled())
|
|
||||||
return;
|
|
||||||
|
|
||||||
check.teleported(event);
|
check.teleported(event);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user