mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2025-03-12 14:39:12 +01:00
Quick workaround for split moves (disable handling).
https://hub.spigotmc.org/jira/browse/SPIGOT-1646
This commit is contained in:
parent
d91a37256c
commit
3c3ae4b351
@ -167,6 +167,11 @@ public class MovingConfig extends ACheckConfig {
|
||||
public final double yOnGround;
|
||||
|
||||
// General things.
|
||||
/**
|
||||
* If to allow splitting moves, due to player.getLocation reflecting
|
||||
* soemthing else than from/to.
|
||||
*/
|
||||
public final boolean splitMoves;
|
||||
public final boolean ignoreStance;
|
||||
public final boolean tempKickIllegal;
|
||||
public final boolean loadChunksOnJoin;
|
||||
@ -277,6 +282,8 @@ public class MovingConfig extends ACheckConfig {
|
||||
noFallyOnGround = config.getDouble(ConfPaths.MOVING_NOFALL_YONGROUND, Y_ON_GROUND_MIN, Y_ON_GROUND_MAX, yOnGround);
|
||||
|
||||
// TODO: Ignore the stance, once it is known that the server catches such.
|
||||
AlmostBoolean refSplitMoves = config.getAlmostBoolean(ConfPaths.MOVING_SPLITMOVES, AlmostBoolean.MAYBE);
|
||||
splitMoves = refSplitMoves == AlmostBoolean.MAYBE ? ServerVersion.compareMinecraftVersion("1.9") == -1 : refSplitMoves.decide();
|
||||
AlmostBoolean refIgnoreStance = config.getAlmostBoolean(ConfPaths.MOVING_IGNORESTANCE, AlmostBoolean.MAYBE);
|
||||
ignoreStance = refIgnoreStance == AlmostBoolean.MAYBE ? ServerVersion.compareMinecraftVersion("1.8") >= 0 : refIgnoreStance.decide();
|
||||
tempKickIllegal = config.getBoolean(ConfPaths.MOVING_TEMPKICKILLEGAL);
|
||||
|
@ -414,10 +414,15 @@ public class MovingListener extends CheckListener implements TickListener, IRemo
|
||||
final Location loc = player.getLocation(moveInfo.useLoc);
|
||||
final MoveData lastMove = data.moveData.getFirst();
|
||||
// TODO: On pistons pulling the player back: -1.15 yDistance for split move 1 (untracked position > 0.5 yDistance!).
|
||||
if (TrigUtil.isSamePos(from, loc)
|
||||
if (
|
||||
// Handling split moves has been disabled.
|
||||
!cc.splitMoves ||
|
||||
// The usual case: no micro move happened.
|
||||
TrigUtil.isSamePos(from, loc)
|
||||
// Special case / bug? TODO: Which/why, which version of MC/spigot?
|
||||
|| lastMove.valid && TrigUtil.isSamePos(loc, lastMove.from.x, lastMove.from.y, lastMove.from.z)
|
||||
// Could also be other envelopes (0.9 velocity upwards), too tedious to research.
|
||||
//&& data.lastYDist < -SurvivalFly.GRAVITY_MIN && data.lastYDist > -SurvivalFly.GRAVITY_MAX - SurvivalFly.GRAVITY_MIN
|
||||
//&& data.lastYDist < -SurvivalFly.GRAVITY_MIN && data.lastYDist > -SurvivalFly.GRAVITY_MAX - SurvivalFly.GRAVITY_MIN
|
||||
) {
|
||||
// Fire move from -> to
|
||||
// (Special case: Location has not been updated last moving event.)
|
||||
|
@ -598,6 +598,7 @@ public abstract class ConfPaths {
|
||||
public static final String MOVING_SURVIVALFLY_YSTEP = MOVING_SURVIVALFLY + "ystep";
|
||||
|
||||
// General.
|
||||
public static final String MOVING_SPLITMOVES = MOVING + "splitmoves"; // Needs better categories...
|
||||
public static final String MOVING_TEMPKICKILLEGAL = MOVING + "tempkickillegal";
|
||||
public static final String MOVING_IGNORESTANCE = MOVING + "ignorestance";
|
||||
// TODO: Might add a section for illegal move.
|
||||
|
@ -423,6 +423,7 @@ public class DefaultConfig extends ConfigFile {
|
||||
set(ConfPaths.MOVING_VELOCITY_STRICTINVALIDATION, true);
|
||||
|
||||
// General.
|
||||
set(ConfPaths.MOVING_SPLITMOVES, "default");
|
||||
set(ConfPaths.MOVING_IGNORESTANCE, "default");
|
||||
set(ConfPaths.MOVING_TEMPKICKILLEGAL, true);
|
||||
set(ConfPaths.MOVING_LOADCHUNKS_JOIN, true);
|
||||
|
Loading…
Reference in New Issue
Block a user