From 873533b1297480d6157ee5bbdbe51720c790e575 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Sat, 17 Jun 2023 21:10:13 -0700 Subject: [PATCH] Add method to remove all active potion effects (#9361) * Add method to remove all active potion effects * use clear instead of removeAll --- ...-to-remove-all-active-potion-effects.patch | 26 +++++++++++++++++++ ...-to-remove-all-active-potion-effects.patch | 24 +++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 patches/api/0418-Add-method-to-remove-all-active-potion-effects.patch create mode 100644 patches/server/0976-Add-method-to-remove-all-active-potion-effects.patch diff --git a/patches/api/0418-Add-method-to-remove-all-active-potion-effects.patch b/patches/api/0418-Add-method-to-remove-all-active-potion-effects.patch new file mode 100644 index 0000000000..ebb66dfa7f --- /dev/null +++ b/patches/api/0418-Add-method-to-remove-all-active-potion-effects.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 17 Jun 2023 13:17:20 -0700 +Subject: [PATCH] Add method to remove all active potion effects + + +diff --git a/src/main/java/org/bukkit/entity/LivingEntity.java b/src/main/java/org/bukkit/entity/LivingEntity.java +index ffca32ae2464ea5a669029079a50585ca259a4f8..9712f7140933d7fc87c5838c173e2d818b70cfde 100644 +--- a/src/main/java/org/bukkit/entity/LivingEntity.java ++++ b/src/main/java/org/bukkit/entity/LivingEntity.java +@@ -565,6 +565,15 @@ public interface LivingEntity extends Attributable, Damageable, ProjectileSource + @NotNull + public Collection getActivePotionEffects(); + ++ // Paper start - LivingEntity#clearActivePotionEffects(); ++ /** ++ * Removes all active potion effects for this entity. ++ * ++ * @return true if any were removed ++ */ ++ boolean clearActivePotionEffects(); ++ // Paper end ++ + /** + * Checks whether the living entity has block line of sight to another. + *

diff --git a/patches/server/0976-Add-method-to-remove-all-active-potion-effects.patch b/patches/server/0976-Add-method-to-remove-all-active-potion-effects.patch new file mode 100644 index 0000000000..c1e651e367 --- /dev/null +++ b/patches/server/0976-Add-method-to-remove-all-active-potion-effects.patch @@ -0,0 +1,24 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jake Potrebic +Date: Sat, 17 Jun 2023 13:17:25 -0700 +Subject: [PATCH] Add method to remove all active potion effects + + +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +index 7880631fe8a4b06f29ef69ab850129737a99521b..19212795df4024cfb2b9f56e1efcd4c9f20d1d83 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +@@ -490,6 +490,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { + return effects; + } + ++ // Paper start - LivingEntity#clearActivePotionEffects(); ++ @Override ++ public boolean clearActivePotionEffects() { ++ return this.getHandle().removeAllEffects(EntityPotionEffectEvent.Cause.PLUGIN); ++ } ++ // Paper end ++ + @Override + public T launchProjectile(Class projectile) { + return this.launchProjectile(projectile, null);