Skip to content

Commit 9f6cbee

Browse files
committed
it compiles \o/
1 parent 503c6f4 commit 9f6cbee

16 files changed

Lines changed: 160 additions & 113 deletions

purpur-server/minecraft-patches/features/0001-Ridables.patch

Lines changed: 51 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ index e4c88e1f99e684fadec47eeceb82420c879897cf..44a8629ec03c01597c7167c26d801c01
4242
@Override
4343
public @Nullable LevelChunk getChunkIfLoaded(int x, int z) {
4444
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
45-
index 14a7b040e9f5609a0e08783b60a767618a192de7..0c489a6d3357ed0d3dc9341440b87623d007da3f 100644
45+
index 565f54a7e37b9303cb23db09881751b364cdf5c4..38f92b36533c5f9694ca689a88f3f42a977d003a 100644
4646
--- a/net/minecraft/server/level/ServerPlayer.java
4747
+++ b/net/minecraft/server/level/ServerPlayer.java
4848
@@ -761,6 +761,15 @@ public class ServerPlayer extends Player {
@@ -62,7 +62,7 @@ index 14a7b040e9f5609a0e08783b60a767618a192de7..0c489a6d3357ed0d3dc9341440b87623
6262

6363
private void updatePlayerAttributes() {
6464
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
65-
index 7cdb4d46bb0ebdece3cdbe0dc2c156fe211da0d0..58be234e80a0c55642ba66a5001bac784c420a95 100644
65+
index 55e74b04ed0576923b8acfdf833e6c999d5a7b6c..900d59620d309258b3b883ccd8cb086f26db0c11 100644
6666
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
6767
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
6868
@@ -2773,6 +2773,8 @@ public class ServerGamePacketListenerImpl
@@ -75,10 +75,10 @@ index 7cdb4d46bb0ebdece3cdbe0dc2c156fe211da0d0..58be234e80a0c55642ba66a5001bac78
7575
if ((target instanceof net.minecraft.world.entity.animal.Bucketable && target instanceof LivingEntity && origItem != null && origItem == Items.WATER_BUCKET) && (event.isCancelled() || ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().isEmpty() || !ServerGamePacketListenerImpl.this.player.getInventory().getSelectedItem().is(origItem))) {
7676
target.resendPossiblyDesyncedEntityData(ServerGamePacketListenerImpl.this.player); // Paper - The entire mob gets deleted, so resend it
7777
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
78-
index fe1b49288dabc8aecfcae151b40fa76d633fc8c2..bce2b06cd7c0b9928a6538ddcd370f2c4d84a9ae 100644
78+
index efeee8849237270ad7c8cd0577dcefed34b82299..7e9e0e9cd0a12af66d937859885da5c0f619af22 100644
7979
--- a/net/minecraft/world/entity/Entity.java
8080
+++ b/net/minecraft/world/entity/Entity.java
81-
@@ -3069,6 +3069,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
81+
@@ -3065,6 +3065,13 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
8282
this.passengers = ImmutableList.copyOf(list);
8383
}
8484

@@ -92,7 +92,7 @@ index fe1b49288dabc8aecfcae151b40fa76d633fc8c2..bce2b06cd7c0b9928a6538ddcd370f2c
9292
this.gameEvent(GameEvent.ENTITY_MOUNT, passenger);
9393
}
9494
}
95-
@@ -3110,6 +3117,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
95+
@@ -3106,6 +3113,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
9696
return false;
9797
}
9898
// CraftBukkit end
@@ -107,7 +107,7 @@ index fe1b49288dabc8aecfcae151b40fa76d633fc8c2..bce2b06cd7c0b9928a6538ddcd370f2c
107107
if (this.passengers.size() == 1 && this.passengers.get(0) == passenger) {
108108
this.passengers = ImmutableList.of();
109109
} else {
110-
@@ -5079,4 +5094,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
110+
@@ -5075,4 +5090,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
111111
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
112112
}
113113
// Paper end - Expose entity id counter
@@ -177,7 +177,7 @@ index f0c452ddc4b299a930de261722cc41a89aa78eeb..8e8ddab59de508c84c4182e105a11554
177177
protected ParticleOptions getInkParticle() {
178178
return ParticleTypes.GLOW_SQUID_INK;
179179
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
180-
index 65cb0a0cfa3d75e4d1083b7e6b22ca1b2682dc49..e78d30d8fdfcb1a530bf3380251fabd0c9a18f46 100644
180+
index 96e47e6145a4cce8c154a05f9b155c1ba74bfa6a..d272f5e789cb6c03ede0bece14fc3fe976a02ff3 100644
181181
--- a/net/minecraft/world/entity/LivingEntity.java
182182
+++ b/net/minecraft/world/entity/LivingEntity.java
183183
@@ -238,9 +238,9 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -3483,10 +3483,10 @@ index 7efa39ab1fb34da41a04cd6816f2571c6eba98f5..10142de6bdf9474958ca939c956a4282
34833483
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true).setUnseenMemoryTicks(300));
34843484
this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, AbstractVillager.class, false).setUnseenMemoryTicks(300));
34853485
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
3486-
index bbdff8b4043f27045684a2aa5687e2b7ca7afbb5..c7ac650f9618fd124035f9cf01fffada7efc97e1 100644
3486+
index bbdff8b4043f27045684a2aa5687e2b7ca7afbb5..e09004313c7c8333eba38bbfab09b20bdb646034 100644
34873487
--- a/net/minecraft/world/entity/monster/Ghast.java
34883488
+++ b/net/minecraft/world/entity/monster/Ghast.java
3489-
@@ -52,11 +52,47 @@ public class Ghast extends Mob implements Enemy {
3489+
@@ -52,11 +52,35 @@ public class Ghast extends Mob implements Enemy {
34903490
this.moveControl = new Ghast.GhastMoveControl(this, false, () -> false);
34913491
}
34923492

@@ -3510,18 +3510,6 @@ index bbdff8b4043f27045684a2aa5687e2b7ca7afbb5..c7ac650f9618fd124035f9cf01fffada
35103510
+ public double getMaxY() {
35113511
+ return level().purpurConfig.ghastMaxY;
35123512
+ }
3513-
+
3514-
+ @Override
3515-
+ public void travel(Vec3 vec3) {
3516-
+ super.travel(vec3);
3517-
+ if (getRider() != null && this.isControllable() && !onGround) {
3518-
+ float speed = (float) getAttributeValue(Attributes.FLYING_SPEED);
3519-
+ setSpeed(speed);
3520-
+ Vec3 mot = getDeltaMovement();
3521-
+ move(net.minecraft.world.entity.MoverType.SELF, mot.multiply(speed, 1.0, speed));
3522-
+ setDeltaMovement(mot.scale(0.9D));
3523-
+ }
3524-
+ }
35253513
+ // Purpur end - Ridables
35263514
+
35273515
@Override
@@ -3534,7 +3522,23 @@ index bbdff8b4043f27045684a2aa5687e2b7ca7afbb5..c7ac650f9618fd124035f9cf01fffada
35343522
this.targetSelector
35353523
.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, (entity, level) -> Math.abs(entity.getY() - this.getY()) <= 4.0));
35363524
}
3537-
@@ -236,7 +272,7 @@ public class Ghast extends Mob implements Enemy {
3525+
@@ -106,6 +130,15 @@ public class Ghast extends Mob implements Enemy {
3526+
@Override
3527+
public void travel(Vec3 travelVector) {
3528+
this.travelFlying(travelVector, 0.02F);
3529+
+ // Purpur start - Ridables
3530+
+ if (getRider() != null && this.isControllable() && !onGround) {
3531+
+ float speed = (float) getAttributeValue(Attributes.FLYING_SPEED);
3532+
+ setSpeed(speed);
3533+
+ Vec3 mot = getDeltaMovement();
3534+
+ move(net.minecraft.world.entity.MoverType.SELF, mot.multiply(speed, 1.0, speed));
3535+
+ setDeltaMovement(mot.scale(0.9D));
3536+
+ }
3537+
+ // Purpur end - Ridables
3538+
}
3539+
3540+
@Override
3541+
@@ -236,7 +269,7 @@ public class Ghast extends Mob implements Enemy {
35383542
}
35393543
}
35403544

@@ -3543,7 +3547,7 @@ index bbdff8b4043f27045684a2aa5687e2b7ca7afbb5..c7ac650f9618fd124035f9cf01fffada
35433547
private final Mob ghast;
35443548
private int floatDuration;
35453549
private final boolean careful;
3546-
@@ -250,7 +286,7 @@ public class Ghast extends Mob implements Enemy {
3550+
@@ -250,7 +283,7 @@ public class Ghast extends Mob implements Enemy {
35473551
}
35483552

35493553
@Override
@@ -3791,10 +3795,10 @@ index 889c31cc9257fbbd5df8325ccee9ce39b026ec4b..4a1299d6cee2807522de0c2d0d4745c5
37913795

37923796
@Override
37933797
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
3794-
index 2abb55d84507fd29817760cb0068dd083f7f1c37..99194cf1fa89d3112719ead9f7de260ca5b9b676 100644
3798+
index 2abb55d84507fd29817760cb0068dd083f7f1c37..855ec37a7e4110e37823ecf62f67f5cb3714f4bf 100644
37953799
--- a/net/minecraft/world/entity/monster/Phantom.java
37963800
+++ b/net/minecraft/world/entity/monster/Phantom.java
3797-
@@ -62,6 +62,64 @@ public class Phantom extends Mob implements Enemy {
3801+
@@ -62,6 +62,52 @@ public class Phantom extends Mob implements Enemy {
37983802
this.lookControl = new Phantom.PhantomLookControl(this);
37993803
}
38003804

@@ -3819,18 +3823,6 @@ index 2abb55d84507fd29817760cb0068dd083f7f1c37..99194cf1fa89d3112719ead9f7de260c
38193823
+ return level().purpurConfig.phantomMaxY;
38203824
+ }
38213825
+
3822-
+ @Override
3823-
+ public void travel(Vec3 vec3) {
3824-
+ super.travel(vec3);
3825-
+ if (getRider() != null && this.isControllable() && !onGround) {
3826-
+ float speed = (float) getAttributeValue(Attributes.FLYING_SPEED);
3827-
+ setSpeed(speed);
3828-
+ Vec3 mot = getDeltaMovement();
3829-
+ move(net.minecraft.world.entity.MoverType.SELF, mot.multiply(speed, speed, speed));
3830-
+ setDeltaMovement(mot.scale(0.9D));
3831-
+ }
3832-
+ }
3833-
+
38343826
+ public static net.minecraft.world.entity.ai.attributes.AttributeSupplier.Builder createAttributes() {
38353827
+ return Monster.createMonsterAttributes().add(Attributes.FLYING_SPEED, 3.0D);
38363828
+ }
@@ -3859,7 +3851,7 @@ index 2abb55d84507fd29817760cb0068dd083f7f1c37..99194cf1fa89d3112719ead9f7de260c
38593851
@Override
38603852
public boolean isFlapping() {
38613853
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
3862-
@@ -74,9 +132,11 @@ public class Phantom extends Mob implements Enemy {
3854+
@@ -74,9 +120,11 @@ public class Phantom extends Mob implements Enemy {
38633855

38643856
@Override
38653857
protected void registerGoals() {
@@ -3871,23 +3863,39 @@ index 2abb55d84507fd29817760cb0068dd083f7f1c37..99194cf1fa89d3112719ead9f7de260c
38713863
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
38723864
}
38733865

3874-
@@ -92,6 +152,7 @@ public class Phantom extends Mob implements Enemy {
3866+
@@ -92,6 +140,7 @@ public class Phantom extends Mob implements Enemy {
38753867

38763868
private void updatePhantomSizeInfo() {
38773869
this.refreshDimensions();
38783870
+ if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur - Ridables - Phantom flames on swoop
38793871
this.getAttribute(Attributes.ATTACK_DAMAGE).setBaseValue(6 + this.getPhantomSize());
38803872
}
38813873

3882-
@@ -149,6 +210,7 @@ public class Phantom extends Mob implements Enemy {
3874+
@@ -149,6 +198,7 @@ public class Phantom extends Mob implements Enemy {
38833875
@Override
38843876
public void aiStep() {
38853877
if (this.isAlive() && this.shouldBurnInDay && this.isSunBurnTick()) { // Paper - shouldBurnInDay API
38863878
+ if (getRider() == null || !this.isControllable()) // Purpur - Ridables
38873879
this.igniteForSeconds(8.0F);
38883880
}
38893881

3890-
@@ -419,25 +481,42 @@ public class Phantom extends Mob implements Enemy {
3882+
@@ -167,6 +217,15 @@ public class Phantom extends Mob implements Enemy {
3883+
@Override
3884+
public void travel(Vec3 travelVector) {
3885+
this.travelFlying(travelVector, 0.2F);
3886+
+ // Purpur start - Ridables
3887+
+ if (this.getRider() != null && this.isControllable() && !this.onGround) {
3888+
+ float speed = (float) this.getAttributeValue(Attributes.FLYING_SPEED);
3889+
+ this.setSpeed(speed);
3890+
+ Vec3 mot = this.getDeltaMovement();
3891+
+ this.move(net.minecraft.world.entity.MoverType.SELF, mot.multiply(speed, speed, speed));
3892+
+ this.setDeltaMovement(mot.scale(0.9D));
3893+
+ }
3894+
+ // Purpur end - Ridables
3895+
}
3896+
3897+
@Override
3898+
@@ -419,25 +478,42 @@ public class Phantom extends Mob implements Enemy {
38913899
}
38923900
}
38933901

@@ -4029,7 +4037,7 @@ index 2b9a72b8742bf13c69df5ce0c905d47a92b9d8bc..b67ac487ce4a7fd8b2f62452ab0b87f4
40294037
this.getAttribute(Attributes.MOVEMENT_SPEED).setBaseValue(0.0);
40304038
} else {
40314039
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
4032-
index aaa95836e7d767ab6d162ff227f8a82a41255304..e0c70493e771b50885b0263ff07e8ee594c2dfdc 100644
4040+
index b45145051f936bb08941be1b3cd2790f73102352..7b04bf19ee575b9199cb65f0eb3f412a05acac08 100644
40334041
--- a/net/minecraft/world/entity/monster/Shulker.java
40344042
+++ b/net/minecraft/world/entity/monster/Shulker.java
40354043
@@ -110,12 +110,31 @@ public class Shulker extends AbstractGolem implements Enemy {
@@ -5046,7 +5054,7 @@ index 93ed977260f369677028bbd8396862f344dfeaa3..e5d6d8bd30876832e6219969849e8260
50465054
if (this.level().purpurConfig.wanderingTraderAllowTrading) { // Purpur - Add config for villager trading
50475055
this.setTradingPlayer(player);
50485056
diff --git a/net/minecraft/world/entity/player/Player.java b/net/minecraft/world/entity/player/Player.java
5049-
index aba0104c4953ef514118ee8af76d029100081fc4..c421cc7dc6c401a19eaf193abd970f21e910f927 100644
5057+
index cc29c094f81f16e6b4d74877e31fabd4a0e62435..65d981d26c729d63aa9bad1bbe90cef35207e832 100644
50505058
--- a/net/minecraft/world/entity/player/Player.java
50515059
+++ b/net/minecraft/world/entity/player/Player.java
50525060
@@ -239,6 +239,19 @@ public abstract class Player extends LivingEntity {

purpur-server/minecraft-patches/features/0002-Configurable-entity-base-attributes.patch

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ index 8e8ddab59de508c84c4182e105a11554387dcce0..1896f91e10a5e17332836d5354813a18
2323
protected ParticleOptions getInkParticle() {
2424
return ParticleTypes.GLOW_SQUID_INK;
2525
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
26-
index e78d30d8fdfcb1a530bf3380251fabd0c9a18f46..ae0c2f41c522656bde37d4f31699ee6172b5a79d 100644
26+
index d272f5e789cb6c03ede0bece14fc3fe976a02ff3..41b6b18130d89b3c3c31bbb2d184fa735a8cd99c 100644
2727
--- a/net/minecraft/world/entity/LivingEntity.java
2828
+++ b/net/minecraft/world/entity/LivingEntity.java
2929
@@ -291,6 +291,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -1107,10 +1107,10 @@ index 10142de6bdf9474958ca939c956a428218ee48db..e8aac93cffa3a9d4105c03c1aeb4d571
11071107
protected void registerGoals() {
11081108
super.registerGoals();
11091109
diff --git a/net/minecraft/world/entity/monster/Ghast.java b/net/minecraft/world/entity/monster/Ghast.java
1110-
index c7ac650f9618fd124035f9cf01fffada7efc97e1..5e2ae3ada994b5fa7758a61cdf1c0e9f26c23a79 100644
1110+
index e09004313c7c8333eba38bbfab09b20bdb646034..06333fe18ea71464d35584592f487c6ac572f0cd 100644
11111111
--- a/net/minecraft/world/entity/monster/Ghast.java
11121112
+++ b/net/minecraft/world/entity/monster/Ghast.java
1113-
@@ -86,6 +86,14 @@ public class Ghast extends Mob implements Enemy {
1113+
@@ -74,6 +74,14 @@ public class Ghast extends Mob implements Enemy {
11141114
}
11151115
// Purpur end - Ridables
11161116

@@ -1243,10 +1243,10 @@ index 4a1299d6cee2807522de0c2d0d4745c5810e4121..bb1364c4a220cc93f7ac01cbaa617561
12431243
return Monster.createMonsterAttributes().add(Attributes.MOVEMENT_SPEED, 0.2F);
12441244
}
12451245
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
1246-
index 99194cf1fa89d3112719ead9f7de260ca5b9b676..96ef89704122485948a526bcc323379474ac9343 100644
1246+
index 855ec37a7e4110e37823ecf62f67f5cb3714f4bf..e35d1e91c1300d8f7d14a5cfa54c404c9f21184d 100644
12471247
--- a/net/minecraft/world/entity/monster/Phantom.java
12481248
+++ b/net/minecraft/world/entity/monster/Phantom.java
1249-
@@ -153,7 +153,10 @@ public class Phantom extends Mob implements Enemy {
1249+
@@ -141,7 +141,10 @@ public class Phantom extends Mob implements Enemy {
12501250
private void updatePhantomSizeInfo() {
12511251
this.refreshDimensions();
12521252
if (level().purpurConfig.phantomFlamesOnSwoop && attackPhase == AttackPhase.SWOOP) shoot(); // Purpur - Ridables - Phantom flames on swoop
@@ -1258,7 +1258,7 @@ index 99194cf1fa89d3112719ead9f7de260ca5b9b676..96ef89704122485948a526bcc3233794
12581258
}
12591259

12601260
public int getPhantomSize() {
1261-
@@ -178,6 +181,23 @@ public class Phantom extends Mob implements Enemy {
1261+
@@ -166,6 +169,23 @@ public class Phantom extends Mob implements Enemy {
12621262
return true;
12631263
}
12641264

@@ -1321,7 +1321,7 @@ index b67ac487ce4a7fd8b2f62452ab0b87f4a55006f2..9e7b07f353fb8f0650b8805014c37136
13211321
protected void registerGoals() {
13221322
super.registerGoals();
13231323
diff --git a/net/minecraft/world/entity/monster/Shulker.java b/net/minecraft/world/entity/monster/Shulker.java
1324-
index e0c70493e771b50885b0263ff07e8ee594c2dfdc..069dacf455e597a4cb2efae03553479cac2a5fec 100644
1324+
index 7b04bf19ee575b9199cb65f0eb3f412a05acac08..66f26ecce4f9d74c1b008b09c0eaf4b6ef4a177a 100644
13251325
--- a/net/minecraft/world/entity/monster/Shulker.java
13261326
+++ b/net/minecraft/world/entity/monster/Shulker.java
13271327
@@ -127,6 +127,14 @@ public class Shulker extends AbstractGolem implements Enemy {

purpur-server/minecraft-patches/features/0010-Phantoms-attracted-to-crystals-and-crystals-shoot-ph.patch

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ index 5bff703ae4f95091620dec5347246d7c0cbe5d5e..220a828717e1933a44c5282b56713ba0
7272

7373
@Override
7474
diff --git a/net/minecraft/world/entity/monster/Phantom.java b/net/minecraft/world/entity/monster/Phantom.java
75-
index 96ef89704122485948a526bcc323379474ac9343..f9f6199f5b64733be69e9e8dbdb3cd26700d822b 100644
75+
index e35d1e91c1300d8f7d14a5cfa54c404c9f21184d..1d7432bcce99c893a1f6e4a02d0cad65c0d6d3a4 100644
7676
--- a/net/minecraft/world/entity/monster/Phantom.java
7777
+++ b/net/minecraft/world/entity/monster/Phantom.java
7878
@@ -49,6 +49,7 @@ public class Phantom extends Mob implements Enemy {
@@ -83,7 +83,7 @@ index 96ef89704122485948a526bcc323379474ac9343..f9f6199f5b64733be69e9e8dbdb3cd26
8383
// Paper start
8484
@Nullable
8585
public java.util.UUID spawningEntity;
86-
@@ -120,6 +121,25 @@ public class Phantom extends Mob implements Enemy {
86+
@@ -108,6 +109,25 @@ public class Phantom extends Mob implements Enemy {
8787
}
8888
// Purpur end - Ridables
8989

@@ -109,7 +109,7 @@ index 96ef89704122485948a526bcc323379474ac9343..f9f6199f5b64733be69e9e8dbdb3cd26
109109
@Override
110110
public boolean isFlapping() {
111111
return (this.getUniqueFlapTickOffset() + this.tickCount) % TICKS_PER_FLAP == 0;
112-
@@ -133,9 +153,15 @@ public class Phantom extends Mob implements Enemy {
112+
@@ -121,9 +141,15 @@ public class Phantom extends Mob implements Enemy {
113113
@Override
114114
protected void registerGoals() {
115115
this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
@@ -128,7 +128,7 @@ index 96ef89704122485948a526bcc323379474ac9343..f9f6199f5b64733be69e9e8dbdb3cd26
128128
this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - Ridables
129129
this.targetSelector.addGoal(1, new Phantom.PhantomAttackPlayerTargetGoal());
130130
}
131-
@@ -517,6 +543,124 @@ public class Phantom extends Mob implements Enemy {
131+
@@ -514,6 +540,124 @@ public class Phantom extends Mob implements Enemy {
132132
}
133133
}
134134

0 commit comments

Comments
 (0)