More patches for 1.14
This commit is contained in:
@@ -5,12 +5,12 @@ Subject: [PATCH] Slime Pathfinder Events
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntitySlime.java b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
index f92bf02b87..81966542ee 100644
|
||||
index 8115b1e4e..d720d0fae 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntitySlime.java
|
||||
@@ -0,0 +0,0 @@
|
||||
package net.minecraft.server;
|
||||
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import javax.annotation.Nullable;
|
||||
+// Paper start
|
||||
+import com.destroystokyo.paper.event.entity.SlimeChangeDirectionEvent;
|
||||
@@ -26,15 +26,15 @@ index f92bf02b87..81966542ee 100644
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
super.b(nbttagcompound);
|
||||
nbttagcompound.setInt("Size", this.getSize() - 1);
|
||||
nbttagcompound.setBoolean("wasOnGround", this.bD);
|
||||
nbttagcompound.setBoolean("wasOnGround", this.bA);
|
||||
+ nbttagcompound.setBoolean("Paper.canWander", this.canWander); // Paper
|
||||
}
|
||||
|
||||
public void a(NBTTagCompound nbttagcompound) {
|
||||
@Override
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
|
||||
this.setSize(i + 1, false);
|
||||
this.bD = nbttagcompound.getBoolean("wasOnGround");
|
||||
this.bA = nbttagcompound.getBoolean("wasOnGround");
|
||||
+ // Paper start - check exists before loading or this will be loaded as false
|
||||
+ if (nbttagcompound.hasKey("Paper.canWander")) {
|
||||
+ this.canWander = nbttagcompound.getBoolean("Paper.canWander");
|
||||
@@ -42,33 +42,34 @@ index f92bf02b87..81966542ee 100644
|
||||
+ // Paper end
|
||||
}
|
||||
|
||||
public boolean dy() {
|
||||
public boolean ea() {
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean a() {
|
||||
- return true;
|
||||
+ return this.a.canWander && new SlimeWanderEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper
|
||||
- return !this.a.isPassenger();
|
||||
+ return !this.a.isPassenger() && this.a.canWander && new SlimeWanderEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper
|
||||
}
|
||||
|
||||
public void e() {
|
||||
@Override
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean a() {
|
||||
- return this.a.isInWater() || this.a.ax();
|
||||
+ return (this.a.isInWater() || this.a.ax()) && this.a.canWander && new SlimeSwimEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper
|
||||
- return (this.a.isInWater() || this.a.aC()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime;
|
||||
+ return (this.a.isInWater() || this.a.aC()) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime && this.a.canWander && new SlimeSwimEvent((Slime) this.a.getBukkitEntity()).callEvent(); // Paper
|
||||
}
|
||||
|
||||
public void e() {
|
||||
@Override
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean a() {
|
||||
- return this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.ax() || this.a.hasEffect(MobEffects.LEVITATION));
|
||||
+ return this.a.canWander && this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.ax() || this.a.hasEffect(MobEffects.LEVITATION)); // Paper
|
||||
- return this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aC() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime;
|
||||
+ return this.a.canWander && this.a.getGoalTarget() == null && (this.a.onGround || this.a.isInWater() || this.a.aC() || this.a.hasEffect(MobEffects.LEVITATION)) && this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime; // Paper
|
||||
}
|
||||
|
||||
@Override
|
||||
public void e() {
|
||||
if (--this.c <= 0) {
|
||||
this.c = 40 + this.a.getRandom().nextInt(60);
|
||||
@@ -85,7 +86,7 @@ index f92bf02b87..81966542ee 100644
|
||||
public boolean a() {
|
||||
EntityLiving entityliving = this.a.getGoalTarget();
|
||||
|
||||
- return entityliving == null ? false : (!entityliving.isAlive() ? false : !(entityliving instanceof EntityHuman) || !((EntityHuman) entityliving).abilities.isInvulnerable);
|
||||
- return entityliving == null ? false : (!entityliving.isAlive() ? false : (entityliving instanceof EntityHuman && ((EntityHuman) entityliving).abilities.isInvulnerable ? false : this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime));
|
||||
+ // Paper start
|
||||
+ if (entityliving == null || !entityliving.isAlive()) {
|
||||
+ return false;
|
||||
@@ -93,11 +94,11 @@ index f92bf02b87..81966542ee 100644
|
||||
+ if (entityliving instanceof EntityHuman && ((EntityHuman) entityliving).abilities.isInvulnerable) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ return this.a.canWander && new SlimeTargetLivingEntityEvent((Slime) this.a.getBukkitEntity(), (LivingEntity) entityliving.getBukkitEntity()).callEvent();
|
||||
+ return this.a.getControllerMove() instanceof EntitySlime.ControllerMoveSlime && this.a.canWander && new SlimeTargetLivingEntityEvent((Slime) this.a.getBukkitEntity(), (LivingEntity) entityliving.getBukkitEntity()).callEvent();
|
||||
+ // Paper end
|
||||
}
|
||||
|
||||
public void c() {
|
||||
@Override
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
public boolean b() {
|
||||
EntityLiving entityliving = this.a.getGoalTarget();
|
||||
@@ -114,9 +115,10 @@ index f92bf02b87..81966542ee 100644
|
||||
+ // Paper end
|
||||
}
|
||||
|
||||
public void e() {
|
||||
@Override
|
||||
@@ -0,0 +0,0 @@ public class EntitySlime extends EntityInsentient implements IMonster {
|
||||
this.a.a((Entity) this.a.getGoalTarget(), 10.0F, 10.0F);
|
||||
((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.a.yaw, this.a.dt());
|
||||
((EntitySlime.ControllerMoveSlime) this.a.getControllerMove()).a(this.a.yaw, this.a.dV());
|
||||
}
|
||||
+
|
||||
+ // Paper start - clear timer and target when goal resets
|
||||
@@ -145,7 +147,7 @@ index f92bf02b87..81966542ee 100644
|
||||
+ // Paper end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
|
||||
index 18e7ef80ac..8403c1e01c 100644
|
||||
index 00fbef360..6c11a5f8a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftSlime.java
|
||||
@@ -0,0 +0,0 @@ public class CraftSlime extends CraftMob implements Slime {
|
||||
|
||||
Reference in New Issue
Block a user