diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/CheckType.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/CheckType.java index 18115236..7b95d612 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/CheckType.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/CheckType.java @@ -74,7 +74,6 @@ public enum CheckType { FIGHT_DIRECTION(FIGHT, Permissions.FIGHT_DIRECTION), FIGHT_FASTHEAL(FIGHT, Permissions.FIGHT_FASTHEAL), FIGHT_GODMODE(FIGHT, Permissions.FIGHT_GODMODE), - FIGHT_KNOCKBACK(FIGHT, Permissions.FIGHT_KNOCKBACK), FIGHT_NOSWING(FIGHT, Permissions.FIGHT_NOSWING), FIGHT_REACH(FIGHT, Permissions.FIGHT_REACH), FIGHT_SELFHIT(FIGHT, Permissions.FIGHT_SELFHIT, FightConfig.factory, FightData.selfHitDataFactory), diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightConfig.java index bf8b6834..8dd9f5af 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightConfig.java @@ -80,10 +80,6 @@ public class FightConfig extends ACheckConfig { public final long godModeLagMaxAge; public final ActionList godModeActions; - public final boolean knockbackCheck; - public final long knockbackInterval; - public final ActionList knockbackActions; - public final boolean noSwingCheck; public final ActionList noSwingActions; @@ -148,10 +144,6 @@ public class FightConfig extends ACheckConfig { godModeLagMaxAge = data.getLong(ConfPaths.FIGHT_GODMODE_LAGMAXAGE); godModeActions = data.getOptimizedActionList(ConfPaths.FIGHT_GODMODE_ACTIONS, Permissions.FIGHT_GODMODE); - knockbackCheck = data.getBoolean(ConfPaths.FIGHT_KNOCKBACK_CHECK); - knockbackInterval = data.getLong(ConfPaths.FIGHT_KNOCKBACK_INTERVAL); - knockbackActions = data.getOptimizedActionList(ConfPaths.FIGHT_KNOCKBACK_ACTIONS, Permissions.FIGHT_KNOCKBACK); - noSwingCheck = data.getBoolean(ConfPaths.FIGHT_NOSWING_CHECK); noSwingActions = data.getOptimizedActionList(ConfPaths.FIGHT_NOSWING_ACTIONS, Permissions.FIGHT_NOSWING); @@ -197,8 +189,6 @@ public class FightConfig extends ACheckConfig { return directionCheck; case FIGHT_GODMODE: return godModeCheck; - case FIGHT_KNOCKBACK: - return knockbackCheck; case FIGHT_NOSWING: return noSwingCheck; case FIGHT_REACH: diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java index 99c4406f..9bbe2e95 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightData.java @@ -123,7 +123,6 @@ public class FightData extends ACheckData { public double directionVL; public double fastHealVL; public double godModeVL; - public double knockbackVL; public double noSwingVL; public double reachVL; public double speedVL; @@ -167,9 +166,6 @@ public class FightData extends ACheckData { /** Accumulator. */ public int godModeAcc = 0; - // Data of the knockback check. - public long knockbackSprintTime; - // Data of the no swing check. public boolean noSwingArmSwung; diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java index f9a97ec3..f088890f 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/FightListener.java @@ -18,7 +18,6 @@ import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; import org.bukkit.event.player.PlayerAnimationEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerItemHeldEvent; -import org.bukkit.event.player.PlayerToggleSprintEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; @@ -67,9 +66,6 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ /** The god mode check. */ private final GodMode godMode = addCheck(new GodMode()); - /** The knockback check. */ - private final Knockback knockback = addCheck(new Knockback()); - /** The no swing check. */ private final NoSwing noSwing = addCheck(new NoSwing()); @@ -222,10 +218,6 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ cancelled = true; } - if (!cancelled && knockback.isEnabled(player) && knockback.check(player, data, cc)) { - cancelled = true; - } - if (!cancelled && noSwing.isEnabled(player) && noSwing.check(player, data, cc)) { cancelled = true; } @@ -594,19 +586,6 @@ public class FightListener extends CheckListener implements JoinLeaveListener{ FightData.getData(event.getPlayer()).noSwingArmSwung = true; } - /** - * We listen to the PlayerToggleSprint events for the Knockback check. - * - * @param event - * the event - */ - @EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR) - public void onPlayerToggleSprint(final PlayerToggleSprintEvent event) { - if (event.isSprinting()) { - FightData.getData(event.getPlayer()).knockbackSprintTime = System.currentTimeMillis(); - } - } - @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onEntityRegainHealthLow(final EntityRegainHealthEvent event){ final Entity entity = event.getEntity(); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Knockback.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Knockback.java deleted file mode 100644 index 435cedc3..00000000 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/checks/fight/Knockback.java +++ /dev/null @@ -1,57 +0,0 @@ -package fr.neatmonster.nocheatplus.checks.fight; - -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; - -import fr.neatmonster.nocheatplus.checks.Check; -import fr.neatmonster.nocheatplus.checks.CheckType; -import fr.neatmonster.nocheatplus.utilities.TickTask; - -/** - * A check used to verify if players aren't "knockbacking" other players when it's not technically possible. - */ -public class Knockback extends Check { - - /** - * Instantiates a new knockback check. - */ - public Knockback() { - super(CheckType.FIGHT_KNOCKBACK); - } - - /** - * Checks a player. - * - * @param player - * the player - * @return true, if successful - */ - public boolean check(final Player player, final FightData data, final FightConfig cc) { - boolean cancel = false; - - final long time = System.currentTimeMillis(); - - // If the item has the knockback enchantment, do not check. - if (player.getItemInHand().containsEnchantment(Enchantment.KNOCKBACK) - || player.getItemInHand().containsEnchantment(Enchantment.ARROW_KNOCKBACK)) - return false; - - // How long ago has the player started sprinting? - final long usedTime = (time - data.knockbackSprintTime); - final long effectiveTime = (long) ((float) usedTime * (cc.lag ? TickTask.getLag(usedTime, true): 1f)); - // Pretty rough: Completely skip on lag. - if (data.knockbackSprintTime > 0L && effectiveTime < cc.knockbackInterval) { - final double difference = cc.knockbackInterval - time + data.knockbackSprintTime; - - // Player failed the check, but this is influenced by lag, so don't do it if there was lag. - // Increment the violation level - data.knockbackVL += difference; - - // Execute whatever actions are associated with this check and the violation level and find out if we should - // cancel the event. - cancel = executeActions(player, data.knockbackVL, difference, cc.knockbackActions); - } - - return cancel; - } -} diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java index ad91014b..7a984df8 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java @@ -408,11 +408,6 @@ public abstract class ConfPaths { public static final String FIGHT_GODMODE_LAGMAXAGE = FIGHT_GODMODE + "maxage"; public static final String FIGHT_GODMODE_ACTIONS = FIGHT_GODMODE + "actions"; - private static final String FIGHT_KNOCKBACK = FIGHT + "knockback."; - public static final String FIGHT_KNOCKBACK_CHECK = FIGHT_KNOCKBACK + "active"; - public static final String FIGHT_KNOCKBACK_INTERVAL = FIGHT_KNOCKBACK + "interval"; - public static final String FIGHT_KNOCKBACK_ACTIONS = FIGHT_KNOCKBACK + "actions"; - private static final String FIGHT_NOSWING = FIGHT + "noswing."; public static final String FIGHT_NOSWING_CHECK = FIGHT_NOSWING + "active"; public static final String FIGHT_NOSWING_ACTIONS = FIGHT_NOSWING + "actions"; @@ -657,5 +652,11 @@ public abstract class ConfPaths { public static final String FIGHT_CRITICAL_VELOCITY = "checks.fight.critical.velocity"; @Deprecated public static final String BLOCKBREAK_FASTBREAK_DEBUG = "checks.blockbreak.fastbreak.debug"; + @Deprecated + public static final String FIGHT_KNOCKBACK_CHECK = "checks.fight.knockback.active"; + @Deprecated + public static final String FIGHT_KNOCKBACK_INTERVAL = "checks.fight.knockback.interval"; + @Deprecated + public static final String FIGHT_KNOCKBACK_ACTIONS = "checks.fight.knockback.actions"; } diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java index a108355f..e668d4fa 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java @@ -291,10 +291,6 @@ public class DefaultConfig extends ConfigFile { set(ConfPaths.FIGHT_GODMODE_LAGMAXAGE, 5000); set(ConfPaths.FIGHT_GODMODE_ACTIONS, "log:godmode:2:5:if cancel vl>60 log:godmode:2:5:icf cancel"); // cmd:kickgod"); - set(ConfPaths.FIGHT_KNOCKBACK_CHECK, true); - set(ConfPaths.FIGHT_KNOCKBACK_INTERVAL, 50L); - set(ConfPaths.FIGHT_KNOCKBACK_ACTIONS, "cancel vl>50 log:knockback:0:5:cif cancel"); - set(ConfPaths.FIGHT_NOSWING_CHECK, true); set(ConfPaths.FIGHT_NOSWING_ACTIONS, "cancel vl>10 log:noswing:0:5:if cancel"); diff --git a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/permissions/Permissions.java b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/permissions/Permissions.java index 791e6e6b..102280a5 100644 --- a/NCPCore/src/main/java/fr/neatmonster/nocheatplus/permissions/Permissions.java +++ b/NCPCore/src/main/java/fr/neatmonster/nocheatplus/permissions/Permissions.java @@ -99,7 +99,6 @@ public class Permissions { public static final String FIGHT_DIRECTION = FIGHT + ".direction"; public static final String FIGHT_FASTHEAL = FIGHT + ".fastheal"; public static final String FIGHT_GODMODE = FIGHT + ".godmode"; - public static final String FIGHT_KNOCKBACK = FIGHT + ".knockback"; public static final String FIGHT_NOSWING = FIGHT + ".noswing"; public static final String FIGHT_REACH = FIGHT + ".reach"; public static final String FIGHT_SELFHIT = FIGHT + ".selfhit"; diff --git a/NCPPlugin/src/main/resources/plugin.yml b/NCPPlugin/src/main/resources/plugin.yml index 9c6d39d4..f039ec1d 100644 --- a/NCPPlugin/src/main/resources/plugin.yml +++ b/NCPPlugin/src/main/resources/plugin.yml @@ -130,8 +130,6 @@ permissions: description: Allow the player to bypass the FastHeal check. nocheatplus.checks.fight.godmode: description: Allow the player to bypass the GodMode check. - nocheatplus.checks.fight.knockback: - description: Allow the player to bypass the Knockback check. nocheatplus.checks.fight.noswing: description: Allow the player to bypass the NoSwing check. nocheatplus.checks.fight.reach: