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>
Date: Thu, 6 Feb 2020 19:53:59 -0600
Subject: [PATCH] Ridables
@@ -47,7 +47,7 @@ Subject: [PATCH] Ridables
.../net/minecraft/server/EntityOcelot.java | 19 +
.../net/minecraft/server/EntityPanda.java | 47 +-
.../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 +-
.../net/minecraft/server/EntityPigZombie.java | 17 +
.../net/minecraft/server/EntityPillager.java | 19 +
@@ -95,7 +95,7 @@ Subject: [PATCH] Ridables
.../controller/ControllerMoveWASDWater.java | 43 ++
.../pathfinder/PathfinderGoalHasRider.java | 21 +
.../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/ControllerMoveWASD.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, 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
index 90eeddb1af..954edf73f7 100644
index 90eeddb1af..850d5efff1 100644
--- a/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 {
@@ -2718,7 +2718,31 @@ index 90eeddb1af..954edf73f7 100644
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 {
@@ -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;
@@ -479,7 +513,19 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@@ -479,7 +516,19 @@ public class EntityPhantom extends EntityFlying implements IMonster {
}
@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>
Date: Fri, 29 Nov 2019 20:33:41 -0600
Subject: [PATCH] Phantoms only attack insomniacs
@@ -10,10 +10,10 @@ Subject: [PATCH] Phantoms only attack insomniacs
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
index 954edf73f7..4bd9ea63b9 100644
index 850d5efff1..bbbb6e601b 100644
--- a/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();
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>
Date: Thu, 9 May 2019 18:26:06 -0500
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 +
.../java/net/minecraft/server/Entity.java | 8 +-
.../minecraft/server/EntityEnderCrystal.java | 49 +++++
.../net/minecraft/server/EntityPhantom.java | 176 +++++++++++++++++-
.../net/minecraft/server/EntityPhantom.java | 174 +++++++++++++++++-
.../net/minecraft/server/IEntityAccess.java | 1 +
.../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
index 816d301f1c..0971f25b56 100644
@@ -123,7 +123,7 @@ index a57d0089d8..02952c3af8 100644
@Override
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
index 4bd9ea63b9..9cae8885d2 100644
index bbbb6e601b..964c043eb1 100644
--- a/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;
@@ -327,32 +327,30 @@ index 4bd9ea63b9..9cae8885d2 100644
class b extends PathfinderGoal {
private final PathfinderTargetCondition b;
@@ -236,6 +393,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
@@ -241,6 +398,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
@Override
public boolean a() {
@@ -465,7 +623,7 @@ public class EntityPhantom extends EntityFlying implements IMonster {
abstract class h extends PathfinderGoal {
if (getRider() != null) return false; // Purpur - pathfinder does not have a flag
+ 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() {
- this.a(EnumSet.of(PathfinderGoal.Type.MOVE));
+ this.a(EnumSet.of(PathfinderGoal.Type.MOVE, PathfinderGoal.Type.LOOK));
}
return entityliving != null ? EntityPhantom.this.a(entityliving, PathfinderTargetCondition.a) : false;
@@ -287,6 +446,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 (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
index 4157e50e4d..774ec96f0a 100644
--- 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