From 42da3577bb33f7321a6b9107c9b42274c2de49fb Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 7 May 2020 10:12:27 -0500 Subject: [PATCH] Remove anonymous classes for horse/llama pathfinders --- patches/server/0007-Ridables.patch | 110 ++++++++---------- ...-should-not-bypass-cramming-gamerule.patch | 6 +- ...lement-LivingEntity-safeFallDistance.patch | 10 +- patches/server/0070-Add-more-llama-API.patch | 8 +- 4 files changed, 62 insertions(+), 72 deletions(-) diff --git a/patches/server/0007-Ridables.patch b/patches/server/0007-Ridables.patch index 2a3a5661b..15740561c 100644 --- a/patches/server/0007-Ridables.patch +++ b/patches/server/0007-Ridables.patch @@ -1,10 +1,9 @@ -From 84b8fe88a684f32494286c90864dadfe9617502b Mon Sep 17 00:00:00 2001 +From b38d49c4521e69aad41951622616d80d2ef017d7 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Thu, 6 Feb 2020 19:53:59 -0600 Subject: [PATCH] Ridables --- - .../paper/entity/ai/MobGoalHelper.java | 5 + .../net/minecraft/server/AxisAlignedBB.java | 2 + .../server/ControllerLookDolphin.java | 4 +- .../net/minecraft/server/ControllerMove.java | 6 +- @@ -34,7 +33,7 @@ Subject: [PATCH] Ridables .../net/minecraft/server/EntityGuardian.java | 47 +- .../minecraft/server/EntityGuardianElder.java | 17 + .../net/minecraft/server/EntityHorse.java | 7 + - .../minecraft/server/EntityHorseAbstract.java | 29 +- + .../minecraft/server/EntityHorseAbstract.java | 22 +- .../minecraft/server/EntityHorseDonkey.java | 7 + .../net/minecraft/server/EntityHorseMule.java | 7 + .../minecraft/server/EntityHorseSkeleton.java | 16 +- @@ -44,7 +43,7 @@ Subject: [PATCH] Ridables .../minecraft/server/EntityInsentient.java | 48 +- .../net/minecraft/server/EntityIronGolem.java | 23 +- .../net/minecraft/server/EntityLiving.java | 21 +- - .../net/minecraft/server/EntityLlama.java | 64 +- + .../net/minecraft/server/EntityLlama.java | 50 +- .../minecraft/server/EntityLlamaTrader.java | 23 + .../net/minecraft/server/EntityMagmaCube.java | 17 + .../minecraft/server/EntityMushroomCow.java | 17 + @@ -102,9 +101,10 @@ Subject: [PATCH] Ridables .../net/pl3x/purpur/entity/DolphinSpit.java | 119 ++++ .../net/pl3x/purpur/entity/PhantomFlames.java | 126 ++++ .../pathfinder/PathfinderGoalHasRider.java | 21 + + .../PathfinderGoalHorseHasRider.java | 21 + .../craftbukkit/entity/CraftEntity.java | 27 + src/main/resources/purpur.lang | 4 +- - 100 files changed, 3627 insertions(+), 211 deletions(-) + 100 files changed, 3622 insertions(+), 211 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 @@ -113,23 +113,8 @@ Subject: [PATCH] Ridables create mode 100644 src/main/java/net/pl3x/purpur/entity/DolphinSpit.java create mode 100644 src/main/java/net/pl3x/purpur/entity/PhantomFlames.java create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHasRider.java + create mode 100644 src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java -diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java -index d6ee94107..0ab87b458 100644 ---- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java -+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java -@@ -118,6 +118,11 @@ public class MobGoalHelper { - ignored.add("selector_1"); - ignored.add("selector_2"); - ignored.add("wrapped"); -+ // Purpur start -+ ignored.add("horse_abstract_1"); -+ ignored.add("llama_3"); -+ ignored.add("llama_4"); -+ // Purpur end - - bukkitMap.put(EntityInsentient.class, Mob.class); - bukkitMap.put(EntityAgeable.class, Ageable.class); diff --git a/src/main/java/net/minecraft/server/AxisAlignedBB.java b/src/main/java/net/minecraft/server/AxisAlignedBB.java index 3fdb52007..7e67292c2 100644 --- a/src/main/java/net/minecraft/server/AxisAlignedBB.java @@ -2138,10 +2123,10 @@ index a6fb4ba5b..98b1e9375 100644 protected void initDatawatcher() { super.initDatawatcher(); diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index c56efe035..e7ba83f32 100644 +index c56efe035..f31cb0554 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -@@ -38,12 +38,39 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven +@@ -38,12 +38,32 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven protected EntityHorseAbstract(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2170,23 +2155,16 @@ index c56efe035..e7ba83f32 100644 + @Override protected void initPathfinder() { -+ // Purpur start -+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) { -+ @Override -+ public boolean a() { -+ return entity.getRidingPassenger() instanceof EntityHuman && isSaddled(); -+ } -+ }); -+ // Purpur ++ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur this.goalSelector.a(1, new PathfinderGoalPanic(this, 1.2D)); this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D)); this.goalSelector.a(2, new PathfinderGoalBreed(this, 1.0D, EntityHorseAbstract.class)); -@@ -281,7 +308,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven +@@ -281,7 +301,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven return true; } - public boolean eL() { -+ public boolean eL() { return isSaddled(); } boolean isSaddled() { // Purpur - OBFHELPER ++ public boolean eL() { return isSaddled(); } public boolean isSaddled() { // Purpur - OBFHELPER return this.t(4); } @@ -2586,10 +2564,10 @@ index 3fc2360a1..58aa2a9a3 100644 } diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 193dbfc5f..7a4e64a3d 100644 +index 193dbfc5f..c5f87cbdd 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java -@@ -16,8 +16,47 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -16,7 +16,46 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn public EntityLlama(EntityTypes entitytypes, World world) { super(entitytypes, world); @@ -2626,48 +2604,33 @@ index 193dbfc5f..7a4e64a3d 100644 + @Override + public boolean isRidableInWater() { + return world.purpurConfig.llamaRidableInWater; - } - ++ } ++ + @Override + public boolean requireShiftToMount() { + return false; // shift reserved for opening inventory -+ } + } + // Purpur end -+ + public void setStrength(int i) { this.datawatcher.set(EntityLlama.bF, Math.max(1, Math.min(5, i))); - } -@@ -58,6 +97,14 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -58,6 +97,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @Override protected void initPathfinder() { this.goalSelector.a(0, new PathfinderGoalFloat(this)); -+ // Purpur start -+ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) { -+ @Override -+ public boolean a() { -+ return super.a() && isSaddled(); -+ } -+ }); -+ // Purpur end ++ this.goalSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur this.goalSelector.a(1, new PathfinderGoalTame(this, 1.2D)); this.goalSelector.a(2, new PathfinderGoalLlamaFollow(this, 2.0999999046325684D)); this.goalSelector.a(3, new PathfinderGoalArrowAttack(this, 1.25D, 40, 20.0F)); -@@ -67,6 +114,14 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -67,6 +107,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn this.goalSelector.a(6, new PathfinderGoalRandomStrollLand(this, 0.7D)); this.goalSelector.a(7, new PathfinderGoalLookAtPlayer(this, EntityHuman.class, 6.0F)); this.goalSelector.a(8, new PathfinderGoalRandomLookaround(this)); -+ // Purpur start -+ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHasRider(this) { -+ @Override -+ public boolean a() { -+ return entity.getRidingPassenger() instanceof EntityHuman && isSaddled(); -+ } -+ }); -+ // Purpur end ++ this.targetSelector.a(0, new net.pl3x.purpur.pathfinder.PathfinderGoalHorseHasRider(this)); // Purpur this.targetSelector.a(1, new EntityLlama.c(this)); this.targetSelector.a(2, new EntityLlama.a(this)); } -@@ -253,6 +308,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -253,6 +294,13 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn return false; } @@ -2681,7 +2644,7 @@ index 193dbfc5f..7a4e64a3d 100644 @Override public void a(IInventory iinventory) { EnumColor enumcolor = this.eZ(); -@@ -286,7 +348,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -286,7 +334,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } @Nullable @@ -6526,6 +6489,33 @@ index 000000000..6e50344c0 + return entity.hasRider(); + } +} +diff --git a/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java +new file mode 100644 +index 000000000..9bb9da22a +--- /dev/null ++++ b/src/main/java/net/pl3x/purpur/pathfinder/PathfinderGoalHorseHasRider.java +@@ -0,0 +1,21 @@ ++package net.pl3x.purpur.pathfinder; ++ ++import net.minecraft.server.EntityHorseAbstract; ++import net.minecraft.server.PathfinderGoal; ++ ++import java.util.EnumSet; ++ ++public class PathfinderGoalHorseHasRider extends PathfinderGoal { ++ public final EntityHorseAbstract entity; ++ ++ public PathfinderGoalHorseHasRider(EntityHorseAbstract entity) { ++ this.entity = entity; ++ setTypes(EnumSet.of(Type.JUMP, Type.MOVE, Type.LOOK, Type.TARGET)); ++ } ++ ++ // shouldExecute ++ @Override ++ public boolean a() { ++ return super.a() && entity.isSaddled(); ++ } ++} diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index ff60568ce..ef64cfade 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java diff --git a/patches/server/0051-Climbing-should-not-bypass-cramming-gamerule.patch b/patches/server/0051-Climbing-should-not-bypass-cramming-gamerule.patch index ac15f988c..1158b5342 100644 --- a/patches/server/0051-Climbing-should-not-bypass-cramming-gamerule.patch +++ b/patches/server/0051-Climbing-should-not-bypass-cramming-gamerule.patch @@ -1,4 +1,4 @@ -From 35403d1858efe17b7c06d9e140bb07172191be25 Mon Sep 17 00:00:00 2001 +From c10b2b1a786a5b0fc07c60b9665db2e502a51492 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 21 Jul 2019 18:06:20 -0500 Subject: [PATCH] Climbing should not bypass cramming gamerule @@ -73,10 +73,10 @@ index fdf306e80..563fc8ced 100644 } diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index e7ba83f32..55e18e4c7 100644 +index f31cb0554..0ecdea671 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -@@ -188,7 +188,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven +@@ -181,7 +181,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven } @Override diff --git a/patches/server/0055-Implement-LivingEntity-safeFallDistance.patch b/patches/server/0055-Implement-LivingEntity-safeFallDistance.patch index ccf02915b..9d6f40334 100644 --- a/patches/server/0055-Implement-LivingEntity-safeFallDistance.patch +++ b/patches/server/0055-Implement-LivingEntity-safeFallDistance.patch @@ -1,4 +1,4 @@ -From 25a125f8ba5cf577c9b5550d77eb62d321022b22 Mon Sep 17 00:00:00 2001 +From 30b16e3582f794fd004dc65a83a91cef2951cc93 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Sun, 5 May 2019 12:58:45 -0500 Subject: [PATCH] Implement LivingEntity safeFallDistance @@ -25,10 +25,10 @@ index 4296aaa07..a2e3e6001 100644 // Purpur start diff --git a/src/main/java/net/minecraft/server/EntityHorseAbstract.java b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -index 55e18e4c7..b14f67b3a 100644 +index 0ecdea671..e099ef9a0 100644 --- a/src/main/java/net/minecraft/server/EntityHorseAbstract.java +++ b/src/main/java/net/minecraft/server/EntityHorseAbstract.java -@@ -229,7 +229,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven +@@ -222,7 +222,7 @@ public abstract class EntityHorseAbstract extends EntityAnimal implements IInven @Override protected int e(float f, float f1) { @@ -38,7 +38,7 @@ index 55e18e4c7..b14f67b3a 100644 protected int getChestSlots() { diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java -index 006b498fd..c6a6befdc 100644 +index 0f8ba92a8..d6751e3cc 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -125,6 +125,7 @@ public abstract class EntityLiving extends Entity { @@ -59,7 +59,7 @@ index 006b498fd..c6a6befdc 100644 protected void cZ() { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java -index 8ffa3cb05..3dd0faea7 100644 +index 245bd116d..4c16f96ab 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -739,4 +739,16 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { diff --git a/patches/server/0070-Add-more-llama-API.patch b/patches/server/0070-Add-more-llama-API.patch index a26306be5..7d8b6330e 100644 --- a/patches/server/0070-Add-more-llama-API.patch +++ b/patches/server/0070-Add-more-llama-API.patch @@ -1,4 +1,4 @@ -From 6a7bfa1e3b358bef374f994a8642a15e52c4a863 Mon Sep 17 00:00:00 2001 +From 1aec2aadfca3245b44957a3484e6d1343a17c2f6 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 18 Oct 2019 22:50:12 -0500 Subject: [PATCH] Add more llama API @@ -10,7 +10,7 @@ Subject: [PATCH] Add more llama API 3 files changed, 61 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java -index 7a4e64a3d..576179756 100644 +index c5f87cbdd..082aac258 100644 --- a/src/main/java/net/minecraft/server/EntityLlama.java +++ b/src/main/java/net/minecraft/server/EntityLlama.java @@ -12,7 +12,8 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn @@ -45,7 +45,7 @@ index 7a4e64a3d..576179756 100644 this.eI(); } -@@ -427,19 +432,24 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -413,19 +418,24 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } } @@ -70,7 +70,7 @@ index 7a4e64a3d..576179756 100644 public boolean fc() { return this.bK != null; } -@@ -450,7 +460,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn +@@ -436,7 +446,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn } @Nullable