diff --git a/patches/server/0100-test.patch b/patches/server/0100-test.patch new file mode 100644 index 000000000..136a64ba9 --- /dev/null +++ b/patches/server/0100-test.patch @@ -0,0 +1,164 @@ +From 53b6b1ac2ba2d1d5c3ccec7242be7a45b37ea137 Mon Sep 17 00:00:00 2001 +From: William Blake Galbreath +Date: Thu, 16 Jan 2020 22:44:07 -0600 +Subject: [PATCH] test + +--- + .../minecraft/server/EntityInsentient.java | 2 +- + .../net/minecraft/server/EntityRabbit.java | 57 ++++++++++++++++++- + .../purpur/controller/ControllerMoveWASD.java | 2 +- + 3 files changed, 56 insertions(+), 5 deletions(-) + +diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java +index b223044f5..c98203603 100644 +--- a/src/main/java/net/minecraft/server/EntityInsentient.java ++++ b/src/main/java/net/minecraft/server/EntityInsentient.java +@@ -29,7 +29,7 @@ public abstract class EntityInsentient extends EntityLiving { + protected int f; + protected ControllerLook lookController; + protected ControllerMove moveController; +- protected ControllerJump bq; ++ protected ControllerJump bq; public ControllerJump getJumpController() { return bq; } // Purpur - OBFHELPER + private final EntityAIBodyControl c; + protected NavigationAbstract navigation; + public PathfinderGoalSelector goalSelector; +diff --git a/src/main/java/net/minecraft/server/EntityRabbit.java b/src/main/java/net/minecraft/server/EntityRabbit.java +index 35b8e182c..2e89745ce 100644 +--- a/src/main/java/net/minecraft/server/EntityRabbit.java ++++ b/src/main/java/net/minecraft/server/EntityRabbit.java +@@ -44,6 +44,14 @@ public class EntityRabbit extends EntityAnimal { + + @Override + protected float dp() { ++ // Purpur start ++ if (getRider() != null) { ++ if (getForward() < 0) { ++ setSpeed(getForward() * 2F); ++ } ++ return actualJump ? 0.5F : 0.3F; ++ } ++ // Purpur end + if (!this.positionChanged && (!this.moveController.b() || this.moveController.e() <= this.locY() + 0.5D)) { + PathEntity pathentity = this.navigation.k(); + +@@ -94,6 +102,7 @@ public class EntityRabbit extends EntityAnimal { + + } + ++ public void startJumping() { eq(); } // Purpur - OBFHELPER + public void eq() { + this.setJumping(true); + this.bz = 10; +@@ -108,6 +117,12 @@ public class EntityRabbit extends EntityAnimal { + + @Override + public void mobTick() { ++ // Purpur start ++ if (getRider() != null) { ++ handleJumping(); ++ return; ++ } ++ // Purpur end + if (this.bB > 0) { + --this.bB; + } +@@ -158,6 +173,39 @@ public class EntityRabbit extends EntityAnimal { + this.bA = this.onGround; + } + ++ // Purpur start ++ private boolean wasOnGround; ++ private boolean actualJump; ++ ++ private void handleJumping() { ++ if (onGround) { ++ ControllerJumpRabbit jumpController = (ControllerJumpRabbit) getJumpController(); ++ if (!wasOnGround) { ++ setJumping(false); ++ jumpController.setCanJump(false); ++ } ++ if (!jumpController.isJumping()) { ++ if (moveController.b()) { // isUpdating ++ startJumping(); ++ } ++ } else if (!jumpController.canJump()) { ++ jumpController.setCanJump(true); ++ } ++ } ++ wasOnGround = onGround; ++ } ++ ++ @Override ++ public boolean onSpacebar() { ++ if (onGround) { ++ actualJump = true; ++ jump(); ++ actualJump = false; ++ } ++ return true; ++ } ++ // Purpur end ++ + @Override + public void aE() {} + +@@ -477,7 +525,7 @@ public class EntityRabbit extends EntityAnimal { + } + } + +- static class ControllerMoveRabbit extends ControllerMove { ++ static class ControllerMoveRabbit extends net.pl3x.purpur.controller.ControllerMoveWASD { // Purpur + + private final EntityRabbit i; + private double j; +@@ -488,14 +536,14 @@ public class EntityRabbit extends EntityAnimal { + } + + @Override +- public void a() { ++ public void tick() { // Purpur + if (this.i.onGround && !this.i.jumping && !((EntityRabbit.ControllerJumpRabbit) this.i.bq).c()) { + this.i.i(0.0D); + } else if (this.b()) { + this.i.i(this.j); + } + +- super.a(); ++ super.tick(); // Purpur + } + + @Override +@@ -522,14 +570,17 @@ public class EntityRabbit extends EntityAnimal { + this.c = entityrabbit; + } + ++ public boolean isJumping() { return c(); } // Purpur - OBFHELPER + public boolean c() { + return this.a; + } + ++ public boolean canJump() { return d(); } // Purpur - OBFHELPER + public boolean d() { + return this.d; + } + ++ public void setCanJump(boolean canJump) { a(canJump); } // Purpur - OBFHELPER + public void a(boolean flag) { + this.d = flag; + } +diff --git a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java +index d64a66274..cc2956f17 100644 +--- a/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java ++++ b/src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java +@@ -16,7 +16,7 @@ public class ControllerMoveWASD extends ControllerMove { + // isUpdating + @Override + public boolean b() { +- return entity.getRider() != null || super.b(); ++ return entity.getRider() != null ? f != 0 || g != 0 : super.b(); + } + + // tick +-- +2.24.0 +