9147456fc9
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: ab8ace685 SPIGOT-7236: Bone meal doesn't increase use statistic 7dcb59b8e Avoid switch on material in previous commit Spigot Changes: 19641c75 SPIGOT-7235: World.Spigot#strikeLightningEffect doesn't do anything
66 Zeilen
3.3 KiB
Diff
66 Zeilen
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: HexedHero <6012891+HexedHero@users.noreply.github.com>
|
|
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 e594cf4b8084b7448c29208a2070e766e391713d..e92e6fb4cf97f4d5406b5b5d5786bfa5fb55f536 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/npc/WanderingTrader.java
|
|
@@ -56,6 +56,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
|
|
|
|
public WanderingTrader(EntityType<? extends WanderingTrader> type, Level world) {
|
|
super(type, world);
|
|
@@ -66,10 +70,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, PotionUtils.setPotion(new ItemStack(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 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 65b052567d1d855021d7273672b4354aba0a42a4..fa7107593b20e0151d8d67104e4a92dcc697d461 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWanderingTrader.java
|
|
@@ -34,4 +34,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
|
|
}
|