geforkt von Mirrors/Paper
ea855e2b46
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Also, restore a patch that was dropped in the last upstream Bukkit Changes: 279eeab3 Fix command description not being set 96e2bb18 Remove debug print from SyntheticEventTest CraftBukkit Changes:d3ed1516
Fix dangerously threaded beacons217a293d
Don't relocate joptsimple to allow --help to work.1be05a21
Prepare for imminent Java 12 releasea49270b2
Mappings Update5259d80c
SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports Spigot Changes: e6eb36f2 Rebuild patches
149 Zeilen
6.2 KiB
Diff
149 Zeilen
6.2 KiB
Diff
From 43af2664a31e1843a4c6a14fc57cebab8b3eef6e Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sun, 7 Oct 2018 04:29:59 -0500
|
|
Subject: [PATCH] Add more Zombie API
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityZombie.java b/src/main/java/net/minecraft/server/EntityZombie.java
|
|
index 81cc0c3b3..24bc3e0f0 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityZombie.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityZombie.java
|
|
@@ -21,8 +21,8 @@ public class EntityZombie extends EntityMonster {
|
|
private final AttributeModifier babyModifier = new AttributeModifier(EntityZombie.a, "Baby speed boost", world.paperConfig.babyZombieMovementSpeed, 1); // Paper - Remove static - Make baby speed configurable
|
|
private static final DataWatcherObject<Boolean> bC = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
|
private static final DataWatcherObject<Integer> bD = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.b);
|
|
- private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
|
- public static final DataWatcherObject<Boolean> DROWN_CONVERTING = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i);
|
|
+ private static final DataWatcherObject<Boolean> bE = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> armsRaised = bE; // Paper - OBFHELPER
|
|
+ public static final DataWatcherObject<Boolean> DROWN_CONVERTING = DataWatcher.a(EntityZombie.class, DataWatcherRegistry.i); private static final DataWatcherObject<Boolean> drowning = DROWN_CONVERTING; // Paper - OBFHELPER
|
|
private final PathfinderGoalBreakDoor bG;
|
|
private boolean bH;
|
|
private int bI;
|
|
@@ -30,6 +30,7 @@ public class EntityZombie extends EntityMonster {
|
|
private float bK;
|
|
private float bL;
|
|
private int lastTick = MinecraftServer.currentTick; // CraftBukkit - add field
|
|
+ private boolean shouldBurnInDay = true; // Paper
|
|
|
|
public EntityZombie(EntityTypes<?> entitytypes, World world) {
|
|
super(entitytypes, world);
|
|
@@ -78,14 +79,22 @@ public class EntityZombie extends EntityMonster {
|
|
this.getDataWatcher().register(EntityZombie.DROWN_CONVERTING, false);
|
|
}
|
|
|
|
+ public boolean isDrowning() { return isDrownConverting(); } // Paper - OBFHELPER
|
|
public boolean isDrownConverting() {
|
|
return (Boolean) this.getDataWatcher().get(EntityZombie.DROWN_CONVERTING);
|
|
}
|
|
|
|
+ public void setArmsRaised(boolean raised) { s(raised); } // Paper - OBFHELPER
|
|
public void s(boolean flag) {
|
|
this.getDataWatcher().set(EntityZombie.bE, flag);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ public boolean isArmsRaised() {
|
|
+ return ((Boolean) this.getDataWatcher().get(EntityZombie.armsRaised)).booleanValue();
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
public boolean dH() {
|
|
return this.bH;
|
|
}
|
|
@@ -207,6 +216,13 @@ public class EntityZombie extends EntityMonster {
|
|
this.getDataWatcher().set(EntityZombie.DROWN_CONVERTING, true);
|
|
}
|
|
|
|
+ // Paper start
|
|
+ public void stopDrowning() {
|
|
+ this.drownedConversionTime = -1;
|
|
+ this.getDataWatcher().set(EntityZombie.drowning, Boolean.valueOf(false));
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
protected void dE() {
|
|
this.a((EntityZombie) EntityTypes.DROWNED.create(world)); // Paper
|
|
this.world.a((EntityHuman) null, 1040, new BlockPosition((int) this.locX, (int) this.locY, (int) this.locZ), 0);
|
|
@@ -245,10 +261,17 @@ public class EntityZombie extends EntityMonster {
|
|
}
|
|
}
|
|
|
|
+ public boolean shouldBurnInDay() { return L_(); } // Paper - OBFHELPER
|
|
protected boolean L_() {
|
|
- return true;
|
|
+ return shouldBurnInDay; // Paper
|
|
}
|
|
|
|
+ // Paper start
|
|
+ public void setShouldBurnInDay(boolean shouldBurnInDay) {
|
|
+ this.shouldBurnInDay = shouldBurnInDay;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
public boolean damageEntity(DamageSource damagesource, float f) {
|
|
if (super.damageEntity(damagesource, f)) {
|
|
EntityLiving entityliving = this.getGoalTarget();
|
|
@@ -361,6 +384,7 @@ public class EntityZombie extends EntityMonster {
|
|
nbttagcompound.setBoolean("CanBreakDoors", this.dH());
|
|
nbttagcompound.setInt("InWaterTime", this.isInWater() ? this.bI : -1);
|
|
nbttagcompound.setInt("DrownedConversionTime", this.isDrownConverting() ? this.drownedConversionTime : -1);
|
|
+ nbttagcompound.setBoolean("Paper.ShouldBurnInDay", shouldBurnInDay); // Paper
|
|
}
|
|
|
|
public void a(NBTTagCompound nbttagcompound) {
|
|
@@ -374,7 +398,11 @@ public class EntityZombie extends EntityMonster {
|
|
if (nbttagcompound.hasKeyOfType("DrownedConversionTime", 99) && nbttagcompound.getInt("DrownedConversionTime") > -1) {
|
|
this.startDrownedConversion(nbttagcompound.getInt("DrownedConversionTime"));
|
|
}
|
|
-
|
|
+ // Paper start
|
|
+ if (nbttagcompound.hasKey("Paper.ShouldBurnInDay")) {
|
|
+ shouldBurnInDay = nbttagcompound.getBoolean("Paper.ShouldBurnInDay");
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
public void b(EntityLiving entityliving) {
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
|
|
index e93ecb076..c516d3475 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftZombie.java
|
|
@@ -77,4 +77,34 @@ public class CraftZombie extends CraftMonster implements Zombie {
|
|
getHandle().startDrownedConversion(time);
|
|
}
|
|
}
|
|
+
|
|
+ // Paper start
|
|
+ public boolean isDrowning() {
|
|
+ return getHandle().isDrowning();
|
|
+ }
|
|
+
|
|
+ public void startDrowning(int drownedConversionTime) {
|
|
+ getHandle().startDrownedConversion(drownedConversionTime);
|
|
+ }
|
|
+
|
|
+ public void stopDrowning() {
|
|
+ getHandle().stopDrowning();
|
|
+ }
|
|
+
|
|
+ public void setArmsRaised(boolean raised) {
|
|
+ getHandle().setArmsRaised(raised);
|
|
+ }
|
|
+
|
|
+ public boolean isArmsRaised() {
|
|
+ return getHandle().isArmsRaised();
|
|
+ }
|
|
+
|
|
+ public boolean shouldBurnInDay() {
|
|
+ return getHandle().shouldBurnInDay();
|
|
+ }
|
|
+
|
|
+ public void setShouldBurnInDay(boolean shouldBurnInDay) {
|
|
+ getHandle().setShouldBurnInDay(shouldBurnInDay);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
--
|
|
2.21.0
|
|
|