Fix multiple issues with phantoms

This commit is contained in:
William Blake Galbreath
2020-02-20 14:16:20 -06:00
parent 1fe6a8c4d8
commit 4e5bf94149
4 changed files with 58 additions and 62 deletions

View File

@@ -1,4 +1,4 @@
From 93bd02ed77297b7123ec4b9208f2bd43d5a7d827 Mon Sep 17 00:00:00 2001 From 08ce7fec031b626b24d380cac2563cf331672249 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com> From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 6 Feb 2020 19:53:59 -0600 Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables Subject: [PATCH] Ridables
@@ -47,7 +47,7 @@ Subject: [PATCH] Ridables
.../net/minecraft/server/EntityOcelot.java | 19 + .../net/minecraft/server/EntityOcelot.java | 19 +
.../net/minecraft/server/EntityPanda.java | 47 +- .../net/minecraft/server/EntityPanda.java | 47 +-
.../net/minecraft/server/EntityParrot.java | 69 ++- .../net/minecraft/server/EntityParrot.java | 69 ++-
.../net/minecraft/server/EntityPhantom.java | 56 +- .../net/minecraft/server/EntityPhantom.java | 59 +-
.../java/net/minecraft/server/EntityPig.java | 48 +- .../java/net/minecraft/server/EntityPig.java | 48 +-
.../net/minecraft/server/EntityPigZombie.java | 17 + .../net/minecraft/server/EntityPigZombie.java | 17 +
.../net/minecraft/server/EntityPillager.java | 19 + .../net/minecraft/server/EntityPillager.java | 19 +
@@ -95,7 +95,7 @@ Subject: [PATCH] Ridables
.../controller/ControllerMoveWASDWater.java | 43 ++ .../controller/ControllerMoveWASDWater.java | 43 ++
.../pathfinder/PathfinderGoalHasRider.java | 21 + .../pathfinder/PathfinderGoalHasRider.java | 21 +
.../craftbukkit/entity/CraftEntity.java | 27 + .../craftbukkit/entity/CraftEntity.java | 27 +
91 files changed, 3032 insertions(+), 194 deletions(-) 91 files changed, 3035 insertions(+), 194 deletions(-)
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerLookWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASD.java
create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java create mode 100644 src/main/java/net/pl3x/purpur/controller/ControllerMoveWASDFlying.java
@@ -2657,7 +2657,7 @@ index 1402087612..95b786a5a6 100644
this.goalSelector.a(2, this.goalSit); this.goalSelector.a(2, this.goalSit);
this.goalSelector.a(2, new PathfinderGoalFollowOwner(this, 1.0D, 5.0F, 1.0F, true)); this.goalSelector.a(2, new PathfinderGoalFollowOwner(this, 1.0D, 5.0F, 1.0F, true));
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 90eeddb1af..954edf73f7 100644 index 90eeddb1af..850d5efff1 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java --- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -22,6 +22,28 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -22,6 +22,28 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -2718,7 +2718,31 @@ index 90eeddb1af..954edf73f7 100644
this.setOnFire(8); this.setOnFire(8);
} }
@@ -447,14 +472,23 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -215,6 +240,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@Override
public boolean a() {
+ if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
if (this.c > 0) {
--this.c;
return false;
@@ -244,6 +270,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@Override
public boolean b() {
+ if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
EntityLiving entityliving = EntityPhantom.this.getGoalTarget();
return entityliving != null ? EntityPhantom.this.a(entityliving, PathfinderTargetCondition.a) : false;
@@ -258,6 +285,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@Override
public boolean a() {
+ if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
EntityLiving entityliving = EntityPhantom.this.getGoalTarget();
return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false;
@@ -447,14 +475,23 @@ public class EntityPhantom extends EntityFlying implements IMonster {
} }
} }
@@ -2744,7 +2768,7 @@ index 90eeddb1af..954edf73f7 100644
} }
class d extends EntityAIBodyControl { class d extends EntityAIBodyControl {
@@ -470,7 +504,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -470,7 +507,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
} }
} }
@@ -2753,7 +2777,7 @@ index 90eeddb1af..954edf73f7 100644
private float j = 0.1F; private float j = 0.1F;
@@ -479,7 +513,19 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -479,7 +516,19 @@ public class EntityPhantom extends EntityFlying implements IMonster {
} }
@Override @Override

View File

@@ -1,4 +1,4 @@
From af3a9b799fd16d9eaa22aaed6a4981bde0861e86 Mon Sep 17 00:00:00 2001 From 71fcbab5c7496fbaaddf8d398ae6d7dd26590a9f Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com> From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Fri, 29 Nov 2019 20:33:41 -0600 Date: Fri, 29 Nov 2019 20:33:41 -0600
Subject: [PATCH] Phantoms only attack insomniacs Subject: [PATCH] Phantoms only attack insomniacs
@@ -10,10 +10,10 @@ Subject: [PATCH] Phantoms only attack insomniacs
3 files changed, 4 insertions(+) 3 files changed, 4 insertions(+)
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 954edf73f7..4bd9ea63b9 100644 index 850d5efff1..bbbb6e601b 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java --- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -257,6 +257,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -258,6 +258,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
EntityHuman entityhuman = (EntityHuman) iterator.next(); EntityHuman entityhuman = (EntityHuman) iterator.next();
if (EntityPhantom.this.a((EntityLiving) entityhuman, PathfinderTargetCondition.a)) { if (EntityPhantom.this.a((EntityLiving) entityhuman, PathfinderTargetCondition.a)) {

View File

@@ -1,4 +1,4 @@
From c7ad30ef7fead11565164b8c1c8a2b866ccca031 Mon Sep 17 00:00:00 2001 From 0cb18f1bf59e372cf29c3487eb1d375574ad8df9 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com> From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Thu, 9 May 2019 18:26:06 -0500 Date: Thu, 9 May 2019 18:26:06 -0500
Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
@@ -7,10 +7,10 @@ Subject: [PATCH] Phantoms attracted to crystals and crystals shoot phantoms
.../net/minecraft/server/DamageSource.java | 1 + .../net/minecraft/server/DamageSource.java | 1 +
.../java/net/minecraft/server/Entity.java | 8 +- .../java/net/minecraft/server/Entity.java | 8 +-
.../minecraft/server/EntityEnderCrystal.java | 49 +++++ .../minecraft/server/EntityEnderCrystal.java | 49 +++++
.../net/minecraft/server/EntityPhantom.java | 176 +++++++++++++++++- .../net/minecraft/server/EntityPhantom.java | 174 +++++++++++++++++-
.../net/minecraft/server/IEntityAccess.java | 1 + .../net/minecraft/server/IEntityAccess.java | 1 +
.../net/pl3x/purpur/PurpurWorldConfig.java | 6 + .../net/pl3x/purpur/PurpurWorldConfig.java | 6 +
6 files changed, 228 insertions(+), 13 deletions(-) 6 files changed, 228 insertions(+), 11 deletions(-)
diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java diff --git a/src/main/java/net/minecraft/server/DamageSource.java b/src/main/java/net/minecraft/server/DamageSource.java
index 816d301f1c..0971f25b56 100644 index 816d301f1c..0971f25b56 100644
@@ -123,7 +123,7 @@ index a57d0089d8..02952c3af8 100644
@Override @Override
protected void b(NBTTagCompound nbttagcompound) { protected void b(NBTTagCompound nbttagcompound) {
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 4bd9ea63b9..9cae8885d2 100644 index bbbb6e601b..964c043eb1 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java --- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java +++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -8,9 +8,10 @@ import javax.annotation.Nullable; @@ -8,9 +8,10 @@ import javax.annotation.Nullable;
@@ -327,32 +327,30 @@ index 4bd9ea63b9..9cae8885d2 100644
class b extends PathfinderGoal { class b extends PathfinderGoal {
private final PathfinderTargetCondition b; private final PathfinderTargetCondition b;
@@ -236,6 +393,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { @@ -241,6 +398,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
private b() {
this.b = (new PathfinderTargetCondition()).a(64.0D);
this.c = 20;
+ this.a(EnumSet.of(PathfinderGoal.Type.TARGET)); // Purpur
}
@Override
@@ -280,7 +438,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
private int b;
- private c() {}
+ private c() { this.a(EnumSet.of(PathfinderGoal.Type.MOVE, PathfinderGoal.Type.LOOK)); } // Purpur
@Override @Override
public boolean a() { public boolean a() {
@@ -465,7 +623,7 @@ public class EntityPhantom extends EntityFlying implements IMonster { if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
abstract class h extends PathfinderGoal { + if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag
if (this.c > 0) {
--this.c;
return false;
@@ -272,6 +430,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@Override
public boolean b() {
if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
+ if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag
EntityLiving entityliving = EntityPhantom.this.getGoalTarget();
public h() { return entityliving != null ? EntityPhantom.this.a(entityliving, PathfinderTargetCondition.a) : false;
- this.a(EnumSet.of(PathfinderGoal.Type.MOVE)); @@ -287,6 +446,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
+ this.a(EnumSet.of(PathfinderGoal.Type.MOVE, PathfinderGoal.Type.LOOK)); @Override
} public boolean a() {
if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
+ if (isCirclingCrystal()) return false; // Purpur - pathfinder does not have a flag
EntityLiving entityliving = EntityPhantom.this.getGoalTarget();
protected boolean g() { return entityliving != null ? EntityPhantom.this.a(EntityPhantom.this.getGoalTarget(), PathfinderTargetCondition.a) : false;
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
index 4157e50e4d..774ec96f0a 100644 index 4157e50e4d..774ec96f0a 100644
--- a/src/main/java/net/minecraft/server/IEntityAccess.java --- a/src/main/java/net/minecraft/server/IEntityAccess.java

View File

@@ -1,26 +0,0 @@
From e73d5d6a8519d763d801f66c0bb7098e83dafdbd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 18 Feb 2020 20:09:30 -0600
Subject: [PATCH] Fix a possible NPE for lukeeexd
---
src/main/java/net/minecraft/server/EntityPhantom.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/main/java/net/minecraft/server/EntityPhantom.java b/src/main/java/net/minecraft/server/EntityPhantom.java
index 9cae8885d2..8d22fd2f50 100644
--- a/src/main/java/net/minecraft/server/EntityPhantom.java
+++ b/src/main/java/net/minecraft/server/EntityPhantom.java
@@ -474,7 +474,8 @@ public class EntityPhantom extends EntityFlying implements IMonster {
}
private void g() {
- EntityPhantom.this.d = (new BlockPosition(EntityPhantom.this.getGoalTarget())).up(20 + EntityPhantom.this.random.nextInt(20));
+ EntityLiving target = EntityPhantom.this.getGoalTarget(); if (target == null) return; // Purpur - this _shouldn't_ be needed at all...
+ EntityPhantom.this.d = (new BlockPosition(target)).up(20 + EntityPhantom.this.random.nextInt(20)); // Purpur
if (EntityPhantom.this.d.getY() < EntityPhantom.this.world.getSeaLevel()) {
EntityPhantom.this.d = new BlockPosition(EntityPhantom.this.d.getX(), EntityPhantom.this.world.getSeaLevel() + 1, EntityPhantom.this.d.getZ());
}
--
2.24.0