From 13779aabdecc6ed5bb9a06e1a88483772fb7af01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?N=C3=A9meth=20Noel?= Date: Mon, 28 Jun 2021 19:23:36 +0200 Subject: [PATCH] Fix knockback --- src/main/java/net/minestom/server/entity/Entity.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minestom/server/entity/Entity.java b/src/main/java/net/minestom/server/entity/Entity.java index 584975bc1..ce590466f 100644 --- a/src/main/java/net/minestom/server/entity/Entity.java +++ b/src/main/java/net/minestom/server/entity/Entity.java @@ -1748,9 +1748,10 @@ public class Entity implements Viewable, Tickable, EventHandler, Da */ public void takeKnockback(final float strength, final double x, final double z) { if (strength > 0) { - final Vector velocityModifier = new Vector(x, 0d, z).normalize().multiply(strength); + //TODO check possible side effects of unnatural TPS (other than 20TPS) + final Vector velocityModifier = new Vector(x, 0d, z).normalize().multiply(strength * MinecraftServer.TICK_PER_SECOND / 2); this.velocity.setX(velocity.getX() / 2d - velocityModifier.getX()); - this.velocity.setY(onGround ? Math.min(.4d, velocity.getY() / 2d + strength) : velocity.getY()); + this.velocity.setY(onGround ? Math.min(.4d, velocity.getY() / 2d + strength) * MinecraftServer.TICK_PER_SECOND : velocity.getY()); this.velocity.setZ(velocity.getZ() / 2d - velocityModifier.getZ()); } }