aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch')
-rw-r--r--Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch42
1 files changed, 42 insertions, 0 deletions
diff --git a/Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch b/Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch
new file mode 100644
index 0000000000..31754281aa
--- /dev/null
+++ b/Spigot-Server-Patches-Unmapped/0141-Do-not-let-armorstands-drown.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Zach Brown <[email protected]>
+Date: Sat, 18 Feb 2017 19:29:58 -0600
+Subject: [PATCH] Do not let armorstands drown
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/EntityLiving.java b/src/main/java/net/minecraft/world/entity/EntityLiving.java
+index 2eee92f74a7c82ec7df05db6df79743b4345cc86..3d6b8fd09c07e78c0d786dff9658eb0089f853cf 100644
+--- a/src/main/java/net/minecraft/world/entity/EntityLiving.java
++++ b/src/main/java/net/minecraft/world/entity/EntityLiving.java
+@@ -338,6 +338,7 @@ public abstract class EntityLiving extends Entity {
+ super.a(d0, flag, iblockdata, blockposition);
+ }
+
++ public boolean canBreatheUnderwater() { return this.cM(); } // Paper - OBFHELPER
+ public boolean cM() {
+ return this.getMonsterType() == EnumMonsterType.UNDEAD;
+ }
+@@ -381,7 +382,7 @@ public abstract class EntityLiving extends Entity {
+
+ if (this.isAlive()) {
+ if (this.a((Tag) TagsFluid.WATER) && !this.world.getType(new BlockPosition(this.locX(), this.getHeadY(), this.locZ())).a(Blocks.BUBBLE_COLUMN)) {
+- if (!this.cM() && !MobEffectUtil.c(this) && !flag1) {
++ if (!this.canBreatheUnderwater() && !MobEffectUtil.c(this) && !flag1) { // Paper - use OBFHELPER so it can be overridden
+ this.setAirTicks(this.l(this.getAirTicks()));
+ if (this.getAirTicks() == -20) {
+ this.setAirTicks(0);
+diff --git a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java
+index 2ef991aa7f739d3577fbbf4386064557e8f7c904..57e0ea95df34fab22d6c5868ab839d56a3fa85fc 100644
+--- a/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java
++++ b/src/main/java/net/minecraft/world/entity/decoration/EntityArmorStand.java
+@@ -872,5 +872,10 @@ public class EntityArmorStand extends EntityLiving {
+ super.move(moveType, vec3d);
+ }
+ }
++
++ @Override
++ public boolean canBreatheUnderwater() { // Skips a bit of damage handling code, probably a micro-optimization
++ return true;
++ }
+ // Paper end
+ }