Skip to content

Commit e2fb2be

Browse files
authored
Fix Wither not being ridable (#1761)
1 parent 8ce75f6 commit e2fb2be

File tree

5 files changed

+49
-48
lines changed

5 files changed

+49
-48
lines changed

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

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2918,7 +2918,7 @@ index 41200efbaa29ee487c0383b261122e0701413865..871adbd10f49a4d59820c089da149a47
29182918
protected void defineSynchedData(SynchedEntityData.Builder builder) {
29192919
}
29202920
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
2921-
index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e29ec35728 100644
2921+
index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..5164a251c67bd3c1ccb8a49a2f1c1196a8a9764e 100644
29222922
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
29232923
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
29242924
@@ -72,6 +72,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
@@ -2929,14 +2929,15 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2
29292929
private boolean canPortal = false; // Paper
29302930
public final ServerBossEvent bossEvent = (ServerBossEvent)new ServerBossEvent(
29312931
this.getDisplayName(), BossEvent.BossBarColor.PURPLE, BossEvent.BossBarOverlay.PROGRESS
2932-
@@ -81,9 +82,23 @@ public class WitherBoss extends Monster implements RangedAttackMob {
2932+
@@ -81,10 +82,23 @@ public class WitherBoss extends Monster implements RangedAttackMob {
29332933
&& entity.attackable();
29342934
private static final TargetingConditions TARGETING_CONDITIONS = TargetingConditions.forCombat().range(20.0).selector(LIVING_ENTITY_SELECTOR);
29352935
private java.util.@Nullable UUID summoner; // Purpur - Summoner API
29362936
+ private org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD purpurController; // Purpur - Ridables
29372937

29382938
public WitherBoss(EntityType<? extends WitherBoss> type, Level level) {
29392939
super(type, level);
2940+
- this.moveControl = new FlyingMoveControl(this, 10, false);
29402941
+ // Purpur start - Ridables
29412942
+ this.purpurController = new org.purpurmc.purpur.controller.FlyingWithSpacebarMoveControllerWASD(this, 0.1F);
29422943
+ this.moveControl = new FlyingMoveControl(this, 10, false) {
@@ -2950,10 +2951,10 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2
29502951
+ }
29512952
+ };
29522953
+ // Purpur end - Ridables
2953-
this.moveControl = new FlyingMoveControl(this, 10, false);
29542954
this.setHealth(this.getMaxHealth());
29552955
this.xpReward = 50;
2956-
@@ -99,6 +114,105 @@ public class WitherBoss extends Monster implements RangedAttackMob {
2956+
}
2957+
@@ -99,6 +113,105 @@ public class WitherBoss extends Monster implements RangedAttackMob {
29572958
}
29582959
// Purpur end - Summoner API
29592960

@@ -3059,7 +3060,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2
30593060
@Override
30603061
protected PathNavigation createNavigation(Level level) {
30613062
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
3062-
@@ -109,11 +223,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
3063+
@@ -109,11 +222,13 @@ public class WitherBoss extends Monster implements RangedAttackMob {
30633064

30643065
@Override
30653066
protected void registerGoals() {
@@ -3073,7 +3074,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2
30733074
this.targetSelector.addGoal(1, new HurtByTargetGoal(this));
30743075
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, LIVING_ENTITY_SELECTOR));
30753076
}
3076-
@@ -273,6 +389,15 @@ public class WitherBoss extends Monster implements RangedAttackMob {
3077+
@@ -273,6 +388,15 @@ public class WitherBoss extends Monster implements RangedAttackMob {
30773078

30783079
@Override
30793080
protected void customServerAiStep(ServerLevel level) {
@@ -3089,7 +3090,7 @@ index be74b2f6e21e9adb1e5c96414854a5c4f07655fc..6c516b71b91cdca51d218a154c8ea9e2
30893090
if (this.getInvulnerableTicks() > 0) {
30903091
int i = this.getInvulnerableTicks() - 1;
30913092
this.bossEvent.setProgress(1.0F - i / 220.0F);
3092-
@@ -579,11 +704,11 @@ public class WitherBoss extends Monster implements RangedAttackMob {
3093+
@@ -579,11 +703,11 @@ public class WitherBoss extends Monster implements RangedAttackMob {
30933094
}
30943095

30953096
public int getAlternativeTarget(int head) {

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

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
55

66

77
diff --git a/net/minecraft/world/entity/LivingEntity.java b/net/minecraft/world/entity/LivingEntity.java
8-
index 6e0a2741db06f93f31349515d1d13181b70e08ed..42dcad656dff5ba1e7fa8aced86628ac28f300af 100644
8+
index 23b51bcf8397a4fc9fdedbd4fcee379322477d39..82e11df2c44a19f9643e98d0be9b7000caadda48 100644
99
--- a/net/minecraft/world/entity/LivingEntity.java
1010
+++ b/net/minecraft/world/entity/LivingEntity.java
1111
@@ -295,6 +295,7 @@ public abstract class LivingEntity extends Entity implements Attackable, Waypoin
@@ -212,7 +212,7 @@ index 1a9f5f17e46af831bc6621c83c57e5436397dbc2..85ad44eb3e64232cf1ea326257078c46
212212
public float getWalkTargetValue(BlockPos pos, LevelReader level) {
213213
return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos);
214214
diff --git a/net/minecraft/world/entity/animal/dolphin/Dolphin.java b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
215-
index 656335a3bd021efc538ab407673c09a83178ed7c..94f92080de46f2af67e1d28753208691da534ddf 100644
215+
index 90ad3a0115c3cee36a310505d945afd13ae2c817..a5305e057d7f557bedca71962ebf19b0d7344abf 100644
216216
--- a/net/minecraft/world/entity/animal/dolphin/Dolphin.java
217217
+++ b/net/minecraft/world/entity/animal/dolphin/Dolphin.java
218218
@@ -152,6 +152,14 @@ public class Dolphin extends AgeableWaterCreature {
@@ -543,7 +543,7 @@ index f73b3f5ae65f7793ff25145c72fb35e3daec8494..e00e623d7df9e179d8bb5ee481253857
543543
public ItemStack getBucketItemStack() {
544544
return new ItemStack(Items.COD_BUCKET);
545545
diff --git a/net/minecraft/world/entity/animal/fish/Pufferfish.java b/net/minecraft/world/entity/animal/fish/Pufferfish.java
546-
index 1eaa5e5fb65b18e5042d69b5dbfea15a7271c0aa..b2932aeb6000a4e268db12cb7b05be746788569c 100644
546+
index aea7887cd88604ed7a36f414221035abf999489d..8bd92b3a28ffe70cb9753050c2128c2e744fb1ee 100644
547547
--- a/net/minecraft/world/entity/animal/fish/Pufferfish.java
548548
+++ b/net/minecraft/world/entity/animal/fish/Pufferfish.java
549549
@@ -59,6 +59,13 @@ public class Pufferfish extends AbstractFish {
@@ -616,7 +616,7 @@ index bf00cf5e6fd8b9143e1b327ef7b90ae055d264ff..6819bcb15ad6c85f41a098a9fdb73ce5
616616
protected void defineSynchedData(SynchedEntityData.Builder builder) {
617617
super.defineSynchedData(builder);
618618
diff --git a/net/minecraft/world/entity/animal/golem/CopperGolem.java b/net/minecraft/world/entity/animal/golem/CopperGolem.java
619-
index 4dc1ce5e07e23134cf3ed68e78a055c3b75fdc83..e3c5b6fe7d6cdb674fbf5ac22001c3d917bf91ec 100644
619+
index 27b9abe5a2d352bdba5822e840abdccdb995b0f7..b32932f1d7c9c0bbd4814eb145339a9a183ff9b9 100644
620620
--- a/net/minecraft/world/entity/animal/golem/CopperGolem.java
621621
+++ b/net/minecraft/world/entity/animal/golem/CopperGolem.java
622622
@@ -130,6 +130,16 @@ public class CopperGolem extends AbstractGolem implements ContainerUser, Shearab
@@ -656,7 +656,7 @@ index 363bf7781c8785bc6fdbc65941794a5a02f8a57a..677f584b38aeb6805db0bb867f62d561
656656
protected void registerGoals() {
657657
if (this.level().purpurConfig.ironGolemPoppyCalm) this.goalSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.ReceiveFlower(this)); // Purpur - Iron golem calm anger options
658658
diff --git a/net/minecraft/world/entity/animal/golem/SnowGolem.java b/net/minecraft/world/entity/animal/golem/SnowGolem.java
659-
index d8a3b7d329757bb84ee4d53671c89f211e8581ab..ab44bc401438d589696d9f25ebaca0fc39648bed 100644
659+
index 9b5a531fe67cb17021d5aa1a036ffff36ecb48d5..aa53ee0586a85a64e8c6471735e29b2694f61b9d 100644
660660
--- a/net/minecraft/world/entity/animal/golem/SnowGolem.java
661661
+++ b/net/minecraft/world/entity/animal/golem/SnowGolem.java
662662
@@ -79,6 +79,14 @@ public class SnowGolem extends AbstractGolem implements Shearable, RangedAttackM
@@ -974,7 +974,7 @@ index 44b650de646ea605e41f39f3d99d8f550c9a8e19..7bccee8b5dd689bbff18f34d3afac52b
974974
protected void registerGoals() {
975975
this.goalSelector.addGoal(1, new FloatGoal(this));
976976
diff --git a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
977-
index b8ddcc460ff1ae1cbfde70d3d8c16486bb2d3f8c..844c989fc4e0d131d823bf8a59951f35f30b7641 100644
977+
index eae6f063a2148ac1ac1689d65d3f80bad79f1ae8..9a8da85462dd74eed8c158ea3343354a255d320d 100644
978978
--- a/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
979979
+++ b/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
980980
@@ -163,6 +163,13 @@ public class EnderDragon extends Mob implements Enemy {
@@ -1001,10 +1001,10 @@ index b8ddcc460ff1ae1cbfde70d3d8c16486bb2d3f8c..844c989fc4e0d131d823bf8a59951f35
10011001

10021002
// CraftBukkit start - SPIGOT-2420: Special case, the ender dragon drops 12000 xp for the first kill and 500 xp for every other kill and this over time.
10031003
diff --git a/net/minecraft/world/entity/boss/wither/WitherBoss.java b/net/minecraft/world/entity/boss/wither/WitherBoss.java
1004-
index dbf3c7049fae08dc5c4ac491a5fc8141ab177a22..612df8799b80f1793ab9781212442098633e9d65 100644
1004+
index 5164a251c67bd3c1ccb8a49a2f1c1196a8a9764e..1f777f69e37291c9367969f52aef11fe270541b7 100644
10051005
--- a/net/minecraft/world/entity/boss/wither/WitherBoss.java
10061006
+++ b/net/minecraft/world/entity/boss/wither/WitherBoss.java
1007-
@@ -213,6 +213,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
1007+
@@ -212,6 +212,14 @@ public class WitherBoss extends Monster implements RangedAttackMob {
10081008
}
10091009
// Purpur end - Ridables
10101010

@@ -1019,7 +1019,7 @@ index dbf3c7049fae08dc5c4ac491a5fc8141ab177a22..612df8799b80f1793ab9781212442098
10191019
@Override
10201020
protected PathNavigation createNavigation(Level level) {
10211021
FlyingPathNavigation flyingPathNavigation = new FlyingPathNavigation(this, level);
1022-
@@ -435,7 +443,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
1022+
@@ -434,7 +442,7 @@ public class WitherBoss extends Monster implements RangedAttackMob {
10231023

10241024
this.setInvulnerableTicks(i);
10251025
if (this.tickCount % 10 == 0) {
@@ -1105,7 +1105,7 @@ index bd78d8c3e8c1d9b581c751d336322fbfe20dacef..29570047bfc78a8993b0bbd7168cb4fe
11051105
protected void registerGoals() {
11061106
this.goalSelector.addGoal(0, new FloatGoal(this));
11071107
diff --git a/net/minecraft/world/entity/monster/Endermite.java b/net/minecraft/world/entity/monster/Endermite.java
1108-
index 844ba943a2a752f9b25506b644a4b4abc981b4cb..c6ae00f6ab83743b9ce43d9e55f04ba23b0de0f1 100644
1108+
index 06687be7b218a2a3140924f5e7216199d85d35be..f92dfcf9e296714f3802264406d8ab627c9bf067 100644
11091109
--- a/net/minecraft/world/entity/monster/Endermite.java
11101110
+++ b/net/minecraft/world/entity/monster/Endermite.java
11111111
@@ -64,6 +64,14 @@ public class Endermite extends Monster {
@@ -1303,7 +1303,7 @@ index 9647741b67e1b4b7bbff0df22fc1bf3fb26afa73..30f2503ebd045b05f5594cef28389a69
13031303

13041304
private void setVariant(Optional<DyeColor> variant) {
13051305
diff --git a/net/minecraft/world/entity/monster/Silverfish.java b/net/minecraft/world/entity/monster/Silverfish.java
1306-
index cf305d4a0a71f91caa31757dcd8ca5be84fc3f03..1df006a0a49038f1e737194e7da8e0b27e6eeb95 100644
1306+
index 99b1f5009a14dab2641c1f9096d819538545989e..6f708c041679c0926282241c637162b141d06f64 100644
13071307
--- a/net/minecraft/world/entity/monster/Silverfish.java
13081308
+++ b/net/minecraft/world/entity/monster/Silverfish.java
13091309
@@ -55,6 +55,16 @@ public class Silverfish extends Monster {
@@ -1746,7 +1746,7 @@ index 03c801d5982eed73fd8f56f63ccab570e83b8a53..b5d3bfb68d8f167e5d6439d15024597d
17461746
protected void addBehaviourGoals() {
17471747
this.goalSelector.addGoal(1, new Drowned.DrownedGoToWaterGoal(this, 1.0));
17481748
diff --git a/net/minecraft/world/entity/monster/zombie/Husk.java b/net/minecraft/world/entity/monster/zombie/Husk.java
1749-
index f18ac33d31ae23db02654658840b89ba03736bf3..03270138e6fae7ee28f958cafee5b74b18dce355 100644
1749+
index ee66242db5ada8e5f8ab7ddc452c2fa818ebef89..b498cdcb5b49a1e95e4c0f6215defec325e4d8d7 100644
17501750
--- a/net/minecraft/world/entity/monster/zombie/Husk.java
17511751
+++ b/net/minecraft/world/entity/monster/zombie/Husk.java
17521752
@@ -46,6 +46,18 @@ public class Husk extends Zombie {
@@ -1769,7 +1769,7 @@ index f18ac33d31ae23db02654658840b89ba03736bf3..03270138e6fae7ee28f958cafee5b74b
17691769
public boolean isSunSensitive() {
17701770
return false;
17711771
diff --git a/net/minecraft/world/entity/monster/zombie/Zombie.java b/net/minecraft/world/entity/monster/zombie/Zombie.java
1772-
index b2d322bee9343079c0c21cc7b47493df9cfd861e..d873ca9873e95f3a5869cb63a93b0643a9c867dc 100644
1772+
index 15f2e24e8b8ef367a134d88e7c47a3377beceaea..32b1202379d77b8360cc644885db6fe31f2c4a72 100644
17731773
--- a/net/minecraft/world/entity/monster/zombie/Zombie.java
17741774
+++ b/net/minecraft/world/entity/monster/zombie/Zombie.java
17751775
@@ -120,6 +120,14 @@ public class Zombie extends Monster {
@@ -1797,7 +1797,7 @@ index b2d322bee9343079c0c21cc7b47493df9cfd861e..d873ca9873e95f3a5869cb63a93b0643
17971797

17981798
class ZombieAttackTurtleEggGoal extends RemoveBlockGoal {
17991799
diff --git a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
1800-
index d91a1aec302a93326a357311f1743fa87ec92fa3..0a02684ec00540b91a2a68e5787e51d15b3743a7 100644
1800+
index 00c8d2cbc5acca9062d8a7029e84fdb575a9130b..1e533522f73fde5b0faf65353a9939ae90a55e8c 100644
18011801
--- a/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
18021802
+++ b/net/minecraft/world/entity/monster/zombie/ZombieVillager.java
18031803
@@ -102,6 +102,18 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {

0 commit comments

Comments
 (0)