From cb9b5bfa82d73072bb1d1d24f24cd5c13c56aa86 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 31 May 2018 18:16:26 -0400
Subject: [PATCH] add Escape Reason Drown for EndermanEscapeEvent

to detect rain specifically from every other armor ignoring hit
---
 Spigot-API-Patches/EndermanEscapeEvent.patch    | 8 ++++++--
 Spigot-Server-Patches/EndermanEscapeEvent.patch | 4 ++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/Spigot-API-Patches/EndermanEscapeEvent.patch b/Spigot-API-Patches/EndermanEscapeEvent.patch
index 72abe21d14..fa1db68299 100644
--- a/Spigot-API-Patches/EndermanEscapeEvent.patch
+++ b/Spigot-API-Patches/EndermanEscapeEvent.patch
@@ -9,7 +9,7 @@ You may cancel this, enabling ranged attacks to damage the enderman for example.
 
 diff --git a/src/main/java/com/destroystokyo/paper/event/entity/EndermanEscapeEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/EndermanEscapeEvent.java
 new file mode 100644
-index 00000000..b8de1037
+index 00000000..0d15a8ab
 --- /dev/null
 +++ b/src/main/java/com/destroystokyo/paper/event/entity/EndermanEscapeEvent.java
 @@ -0,0 +0,0 @@
@@ -88,7 +88,11 @@ index 00000000..b8de1037
 +        /**
 +         * The enderman has teleported away due to the player staring at it during combat
 +         */
-+        STARE
++        STARE,
++        /**
++         * Specific case for CRITICAL_HIT where the enderman is taking rain damage
++         */
++        DROWN
 +    }
 +}
 --
\ No newline at end of file
diff --git a/Spigot-Server-Patches/EndermanEscapeEvent.patch b/Spigot-Server-Patches/EndermanEscapeEvent.patch
index 89f71cec53..387b686fdb 100644
--- a/Spigot-Server-Patches/EndermanEscapeEvent.patch
+++ b/Spigot-Server-Patches/EndermanEscapeEvent.patch
@@ -8,7 +8,7 @@ Fires an event anytime an enderman intends to teleport away from the player
 You may cancel this, enabling ranged attacks to damage the enderman for example.
 
 diff --git a/src/main/java/net/minecraft/server/EntityEnderman.java b/src/main/java/net/minecraft/server/EntityEnderman.java
-index 2f59e7071..bf32e386c 100644
+index 2f59e7071..e8ea231dc 100644
 --- a/src/main/java/net/minecraft/server/EntityEnderman.java
 +++ b/src/main/java/net/minecraft/server/EntityEnderman.java
 @@ -0,0 +0,0 @@
@@ -54,7 +54,7 @@ index 2f59e7071..bf32e386c 100644
              boolean flag = super.damageEntity(damagesource, f);
  
 -            if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0) {
-+            if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0 && tryEscape(EndermanEscapeEvent.Reason.CRITICAL_HIT)) { // Paper
++            if (damagesource.ignoresArmor() && this.random.nextInt(10) != 0 && tryEscape(damagesource == DamageSource.DROWN ? EndermanEscapeEvent.Reason.DROWN : EndermanEscapeEvent.Reason.CRITICAL_HIT)) { // Paper
                  this.dm();
              }