mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 21:17:00 +01:00
bffb08c2f9
The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check.
37 lines
1.6 KiB
Diff
37 lines
1.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nassim Jahnke <nassim@njahnke.dev>
|
|
Date: Thu, 25 Nov 2021 10:25:09 +0100
|
|
Subject: [PATCH] Prevent excessive velocity through repeated crits
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
index bbeb81980b847a65f8d57eb6caf26aae63ee2061..1e0dfa8e04e02e552d9233c12be915778bb6e09c 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -2680,13 +2680,26 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
|
return this.hasEffect(MobEffects.JUMP) ? 0.1F * ((float) this.getEffect(MobEffects.JUMP).getAmplifier() + 1.0F) : 0.0F;
|
|
}
|
|
|
|
+ protected long lastJumpTime = 0L; // Paper
|
|
protected void jumpFromGround() {
|
|
Vec3 vec3d = this.getDeltaMovement();
|
|
+ // Paper start
|
|
+ long time = System.nanoTime();
|
|
+ boolean canCrit = true;
|
|
+ if (this instanceof net.minecraft.world.entity.player.Player) {
|
|
+ canCrit = false;
|
|
+ if (time - this.lastJumpTime > (long)(0.250e9)) {
|
|
+ this.lastJumpTime = time;
|
|
+ canCrit = true;
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
|
|
this.setDeltaMovement(vec3d.x, (double) this.getJumpPower(), vec3d.z);
|
|
if (this.isSprinting()) {
|
|
float f = this.getYRot() * 0.017453292F;
|
|
|
|
+ if (canCrit) // Paper
|
|
this.setDeltaMovement(this.getDeltaMovement().add((double) (-Mth.sin(f) * 0.2F), 0.0D, (double) (Mth.cos(f) * 0.2F)));
|
|
}
|
|
|