mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 09:27:43 +01:00
Fix multiple issues with phantoms
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user