diff --git a/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccess.java b/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccess.java index 35d68299..5c180749 100644 --- a/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccess.java +++ b/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/compat/MCAccess.java @@ -91,13 +91,13 @@ public interface MCAccess { /** * * @param player - * @return Double.MIN_VALUE if not present. + * @return Double.NEGATIVE_INFINITY if not present. */ public double getJumpAmplifier(Player player); /** * - * @return Double.MIN_VALUE if not present. + * @return Double.NEGATIVE_INFINITY if not present. */ public double getFasterMovementAmplifier(Player player); diff --git a/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/utilities/PotionUtil.java b/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/utilities/PotionUtil.java index 3c6c48ca..fb304402 100644 --- a/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/utilities/PotionUtil.java +++ b/NCPCompat/src/main/java/fr/neatmonster/nocheatplus/utilities/PotionUtil.java @@ -17,14 +17,14 @@ public class PotionUtil { * Get amplifier for a potion effect. * @param player * @param type - * @return Double.MIN_VALUE if not present, otherwise the maximal amplifier. + * @return Double.NEGATIVE_INFINITY if not present, otherwise the maximal amplifier. */ public static final double getPotionEffectAmplifier(final Player player, final PotionEffectType type) { - if (!player.hasPotionEffect(type)) return Double.MIN_VALUE; + if (!player.hasPotionEffect(type)) return Double.NEGATIVE_INFINITY; // TODO: Might not win anything. final Collection effects = player.getActivePotionEffects(); - double max = Double.MIN_VALUE; + double max = Double.NEGATIVE_INFINITY; for (final PotionEffect effect : effects){ - if (effect.getType() == type){ + if (effect.getType().equals(type)){ max = Math.max(max, effect.getAmplifier()); } } diff --git a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java b/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java index d08664ce..965420bd 100644 --- a/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java +++ b/NCPCompatCB2511/src/main/java/fr/neatmonster/nocheatplus/compat/cb2511/MCAccessCB2511.java @@ -111,14 +111,14 @@ public class MCAccessCB2511 implements MCAccess { final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.JUMP)) return mcPlayer.getEffect(MobEffectList.JUMP).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override public double getFasterMovementAmplifier(final Player player) { final net.minecraft.server.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.FASTER_MOVEMENT)) return mcPlayer.getEffect(MobEffectList.FASTER_MOVEMENT).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override diff --git a/NCPCompatCB2512/src/main/java/fr/neatmonster/nocheatplus/compat/cb2512/MCAccessCB2512.java b/NCPCompatCB2512/src/main/java/fr/neatmonster/nocheatplus/compat/cb2512/MCAccessCB2512.java index d63c0310..9981426a 100644 --- a/NCPCompatCB2512/src/main/java/fr/neatmonster/nocheatplus/compat/cb2512/MCAccessCB2512.java +++ b/NCPCompatCB2512/src/main/java/fr/neatmonster/nocheatplus/compat/cb2512/MCAccessCB2512.java @@ -110,14 +110,14 @@ public class MCAccessCB2512 implements MCAccess{ final net.minecraft.server.v1_4_5.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.JUMP)) return mcPlayer.getEffect(MobEffectList.JUMP).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override public double getFasterMovementAmplifier(final Player player) { final net.minecraft.server.v1_4_5.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.FASTER_MOVEMENT)) return mcPlayer.getEffect(MobEffectList.FASTER_MOVEMENT).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override diff --git a/NCPCompatCB2545/src/main/java/fr/neatmonster/nocheatplus/compat/cb2545/MCAccessCB2545.java b/NCPCompatCB2545/src/main/java/fr/neatmonster/nocheatplus/compat/cb2545/MCAccessCB2545.java index 748d0021..96b400c6 100644 --- a/NCPCompatCB2545/src/main/java/fr/neatmonster/nocheatplus/compat/cb2545/MCAccessCB2545.java +++ b/NCPCompatCB2545/src/main/java/fr/neatmonster/nocheatplus/compat/cb2545/MCAccessCB2545.java @@ -110,14 +110,14 @@ public class MCAccessCB2545 implements MCAccess{ final net.minecraft.server.v1_4_6.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.JUMP)) return mcPlayer.getEffect(MobEffectList.JUMP).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override public double getFasterMovementAmplifier(final Player player) { final net.minecraft.server.v1_4_6.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.FASTER_MOVEMENT)) return mcPlayer.getEffect(MobEffectList.FASTER_MOVEMENT).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override diff --git a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java index d1e9cbfd..8d74dd91 100644 --- a/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java +++ b/NCPCompatCBDev/src/main/java/fr/neatmonster/nocheatplus/compat/cbdev/MCAccessCBDev.java @@ -111,14 +111,14 @@ public class MCAccessCBDev implements MCAccess{ final net.minecraft.server.v1_4_R1.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.JUMP)) return mcPlayer.getEffect(MobEffectList.JUMP).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override public double getFasterMovementAmplifier(final Player player) { final net.minecraft.server.v1_4_R1.EntityPlayer mcPlayer = ((CraftPlayer) player).getHandle(); if (mcPlayer.hasEffect(MobEffectList.FASTER_MOVEMENT)) return mcPlayer.getEffect(MobEffectList.FASTER_MOVEMENT).getAmplifier(); - else return Double.MIN_VALUE; + else return Double.NEGATIVE_INFINITY; } @Override diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/CreativeFly.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/CreativeFly.java index a54fb51d..6bc71824 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/CreativeFly.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/CreativeFly.java @@ -76,7 +76,7 @@ public class CreativeFly extends Check { final double speedModifier = mcAccess.getFasterMovementAmplifier(player); final double fSpeed; - if (speedModifier == Double.MIN_VALUE) fSpeed = 1D; + if (speedModifier == Double.NEGATIVE_INFINITY) fSpeed = 1D; else fSpeed = 1D + 0.2D * (speedModifier + 1D); final double limitH = cc.creativeFlyHorizontalSpeed / 100D * HORIZONTAL_SPEED * fSpeed; diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java index 63d564b8..538a02fa 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java @@ -134,7 +134,7 @@ public class MovingListener extends CheckListener implements TickListener, IRemo */ public static final double getJumpAmplifier(final Player player) { final double amplifier = NoCheatPlus.getMCAccess().getJumpAmplifier(player); - if (amplifier == Double.MIN_VALUE) return 0D; + if (amplifier == Double.NEGATIVE_INFINITY) return 0D; else return 1D + amplifier; } @@ -489,13 +489,18 @@ public class MovingListener extends CheckListener implements TickListener, IRemo moveInfo.set(player, from, to, cc.yOnGround); if (cc.debug) { - StringBuilder builder = new StringBuilder(250); + final StringBuilder builder = new StringBuilder(250); final Location loc = player.getLocation(); - builder.append(player.getName()); + builder.append("\n" + player.getName()); builder.append(" " + from.getWorld().getName() + " " + StringUtil.fdec3.format(from.getX()) + (from.getX() == loc.getX() ? "" : ("(" + StringUtil.fdec3.format(loc.getX()) + ")"))); builder.append(", " + StringUtil.fdec3.format(from.getY()) + (from.getY() == loc.getY() ? "" : ("(" + StringUtil.fdec3.format(loc.getY()) + ")"))); builder.append(", " + StringUtil.fdec3.format(from.getZ()) + (from.getZ() == loc.getZ() ? "" : ("(" + StringUtil.fdec3.format(loc.getZ()) + ")"))); builder.append(" -> " + StringUtil.fdec3.format(to.getX()) + ", " + StringUtil.fdec3.format(to.getY()) + ", " + StringUtil.fdec3.format(to.getZ())); + final double jump = mcAccess.getJumpAmplifier(player); + final double speed = mcAccess.getFasterMovementAmplifier(player); + if (speed != Double.NEGATIVE_INFINITY || jump != Double.NEGATIVE_INFINITY){ + builder.append(" (" + (speed != Double.NEGATIVE_INFINITY ? ("speed=" + speed) : "") + (jump != Double.NEGATIVE_INFINITY ? ("jump=" + jump) : "") + ")"); + } System.out.print(builder.toString()); } @@ -514,8 +519,8 @@ public class MovingListener extends CheckListener implements TickListener, IRemo // Potion effect "Jump". final double jumpAmplifier = MovingListener.getJumpAmplifier(player); - if (jumpAmplifier > 0D && cc.debug) System.out.println(player.getName() + " Jump effect: " + jumpAmplifier); if (jumpAmplifier > data.jumpAmplifier) data.jumpAmplifier = jumpAmplifier; + // TODO: same for speed (oncemedium is introduced). // Just try to estimate velocities over time. Not very precise, but works good enough most of the time. Do // general data modifications one for each event. diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java index 2b0235e3..7ca725eb 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/SurvivalFly.java @@ -536,7 +536,7 @@ public class SurvivalFly extends Check { // Speed amplifier. final double speedAmplifier = mcAccess.getFasterMovementAmplifier(player); - if (speedAmplifier != Double.MIN_VALUE) hAllowedDistance *= 1.0D + 0.2D * (speedAmplifier + 1); + if (speedAmplifier != Double.NEGATIVE_INFINITY) hAllowedDistance *= 1.0D + 0.2D * (speedAmplifier + 1); return hAllowedDistance; }