aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0527-Add-more-WanderingTrader-API.patch
diff options
context:
space:
mode:
authorSpottedleaf <[email protected]>2024-07-17 10:24:53 -0700
committerSpottedleaf <[email protected]>2024-07-17 10:28:32 -0700
commit00b949f1bbbf444e2b5e7b8de7c9b14fbd2133c6 (patch)
tree82639515bc5e9ae00c1e639e72137ed51e1ac688 /patches/server/0527-Add-more-WanderingTrader-API.patch
parent967f98aa81da851740aeb429778e46159fd188df (diff)
downloadPaper-00b949f1bbbf444e2b5e7b8de7c9b14fbd2133c6.tar.gz
Paper-00b949f1bbbf444e2b5e7b8de7c9b14fbd2133c6.zip
Remove Moonrise utils to MCUtils, remove duplicated/unused utils
Diffstat (limited to 'patches/server/0527-Add-more-WanderingTrader-API.patch')
-rw-r--r--patches/server/0527-Add-more-WanderingTrader-API.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/patches/server/0527-Add-more-WanderingTrader-API.patch b/patches/server/0527-Add-more-WanderingTrader-API.patch
new file mode 100644
index 0000000000..0ce65786dc
--- /dev/null
+++ b/patches/server/0527-Add-more-WanderingTrader-API.patch
@@ -0,0 +1,65 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: HexedHero <[email protected]>
+Date: Thu, 6 May 2021 14:56:43 +0100
+Subject: [PATCH] Add more WanderingTrader API
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+index e51cb9c96e1bd13c00bf938436f4fc26d80055a1..856a93324f5ac411713851ccfb38dba52fb0af5e 100644
+--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
++++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
+@@ -61,6 +61,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
+ @Nullable
+ private BlockPos wanderTarget;
+ private int despawnDelay;
++ // Paper start - Add more WanderingTrader API
++ public boolean canDrinkPotion = true;
++ public boolean canDrinkMilk = true;
++ // Paper end - Add more WanderingTrader API
+
+ public WanderingTrader(EntityType<? extends WanderingTrader> type, Level world) {
+ super(type, world);
+@@ -71,10 +75,10 @@ public class WanderingTrader extends net.minecraft.world.entity.npc.AbstractVill
+ protected void registerGoals() {
+ this.goalSelector.addGoal(0, new FloatGoal(this));
+ this.goalSelector.addGoal(0, new UseItemGoal<>(this, PotionContents.createItemStack(Items.POTION, Potions.INVISIBILITY), SoundEvents.WANDERING_TRADER_DISAPPEARED, (entityvillagertrader) -> {
+- return this.level().isNight() && !entityvillagertrader.isInvisible();
++ return this.canDrinkPotion && this.level().isNight() && !entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
+ }));
+ this.goalSelector.addGoal(0, new UseItemGoal<>(this, new ItemStack(Items.MILK_BUCKET), SoundEvents.WANDERING_TRADER_REAPPEARED, (entityvillagertrader) -> {
+- return this.level().isDay() && entityvillagertrader.isInvisible();
++ return this.canDrinkMilk && this.level().isDay() && entityvillagertrader.isInvisible(); // Paper - Add more WanderingTrader API
+ }));
+ this.goalSelector.addGoal(1, new TradeWithPlayerGoal(this));
+ this.goalSelector.addGoal(1, new AvoidEntityGoal<>(this, Zombie.class, 8.0F, 0.5D, 0.5D));
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java
+index 08194a78c2170e971ee8ff440b276ed3590e8c4a..0e597394a3dd08f022614fc9777302fea581eb55 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java
+@@ -28,4 +28,26 @@ public class CraftWanderingTrader extends CraftAbstractVillager implements Wande
+ public void setDespawnDelay(int despawnDelay) {
+ this.getHandle().setDespawnDelay(despawnDelay);
+ }
++
++ // Paper start - Add more WanderingTrader API
++ @Override
++ public void setCanDrinkPotion(boolean bool) {
++ getHandle().canDrinkPotion = bool;
++ }
++
++ @Override
++ public boolean canDrinkPotion() {
++ return getHandle().canDrinkPotion;
++ }
++
++ @Override
++ public void setCanDrinkMilk(boolean bool) {
++ getHandle().canDrinkMilk = bool;
++ }
++
++ @Override
++ public boolean canDrinkMilk() {
++ return getHandle().canDrinkMilk;
++ }
++ // Paper end
+ }