mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2025-01-15 20:11:55 +01:00
Fixed behaviour of ladders that don't fully connect to the ground
This commit is contained in:
parent
d23f38ebd1
commit
624e04393f
@ -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.13b
|
version: 1.13c
|
||||||
|
|
||||||
softdepend: [ Permissions, CraftIRC ]
|
softdepend: [ Permissions, CraftIRC ]
|
||||||
|
|
||||||
|
@ -130,7 +130,10 @@ public class MovingEventHelper {
|
|||||||
if(isLiquid(standingIn) || isLiquid(headIn)) {
|
if(isLiquid(standingIn) || isLiquid(headIn)) {
|
||||||
return LIQUID;
|
return LIQUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isLadder(standingIn) || isLadder(headIn)) {
|
||||||
|
return LADDER;
|
||||||
|
}
|
||||||
|
|
||||||
int standingOn = types[world.getBlockTypeIdAt(x, y - 1, z)];
|
int standingOn = types[world.getBlockTypeIdAt(x, y - 1, z)];
|
||||||
|
|
||||||
@ -140,7 +143,7 @@ public class MovingEventHelper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Player standing on a block?
|
// Player standing on a block?
|
||||||
if((isSolid(standingOn) || types[world.getBlockTypeIdAt(x, y - 2, z)] == FENCE) && isNonSolid(standingIn) && standingOn != FENCE) {
|
if((isLadder(headIn) || isLadder(standingIn)) || ((isSolid(standingOn) || types[world.getBlockTypeIdAt(x, y - 2, z)] == FENCE) && isNonSolid(standingIn) && standingOn != FENCE)) {
|
||||||
result |= ONGROUND;
|
result |= ONGROUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +161,19 @@ public class MovingEventHelper {
|
|||||||
private final boolean isNonSolid(int value) {
|
private final boolean isNonSolid(int value) {
|
||||||
return((value & NONSOLID) == NONSOLID);
|
return((value & NONSOLID) == NONSOLID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public final boolean isLadder(int value) {
|
||||||
|
return((value & LADDER) == LADDER);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOnGround(int fromType) {
|
||||||
|
return isLadder(fromType) || (fromType & ONGROUND) == ONGROUND;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isInGround(int fromType) {
|
||||||
|
return isLadder(fromType) || isLiquid(fromType) || (fromType & INGROUND) == INGROUND;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Personal Rounding function to determine if a player is still touching a
|
* Personal Rounding function to determine if a player is still touching a
|
||||||
* block or not
|
* block or not
|
||||||
@ -199,11 +214,5 @@ public class MovingEventHelper {
|
|||||||
return (int) (floor - d4);
|
return (int) (floor - d4);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOnGround(int fromType) {
|
|
||||||
return (fromType & ONGROUND) == ONGROUND;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isInGround(int fromType) {
|
|
||||||
return isLiquid(fromType) || (fromType & INGROUND) == INGROUND;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user