From 95aa440473bcdc75cfb8c2059163d0896ab179bb Mon Sep 17 00:00:00 2001
From: Lulu13022002 <41980282+Lulu13022002@users.noreply.github.com>
Date: Sun, 23 Jun 2024 22:08:13 +0200
Subject: [PATCH] Add missing effect cause and deprecate PATROL_CAPTAIN cause
 (#10958)

---
 .../api/0166-Fix-Spigot-annotation-mistakes.patch | 15 +++++++++++++++
 patches/server/0742-Missing-effect-cause.patch    | 13 +++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
index 2292c8df84..05a3f639e4 100644
--- a/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
+++ b/patches/api/0166-Fix-Spigot-annotation-mistakes.patch
@@ -1003,6 +1003,21 @@ index f2edd4a9357832e9dec3fb0aafa006335d7b289b..f05ce4fd6c4bbd79edc5f65e7edd1e4a
          return offers;
      }
  
+diff --git a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
+index c9f395064656dd0126410eb3c6e197baa450c063..c95943a0c6a2cc7685b0e2601460d92fa1b4b2f5 100644
+--- a/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
++++ b/src/main/java/org/bukkit/event/entity/EntityPotionEffectEvent.java
+@@ -219,7 +219,10 @@ public class EntityPotionEffectEvent extends EntityEvent implements Cancellable
+         MILK,
+         /**
+          * When a player gets bad omen after killing a patrol captain.
++         *
++         * @deprecated no longer used, player now gets an ominous bottle instead
+          */
++        @Deprecated(since = "1.21") // Paper
+         PATROL_CAPTAIN,
+         /**
+          * When a potion effect is modified through the plugin methods.
 diff --git a/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java b/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java
 index 090ec6f96ca9b7f760389994da988c44c32b9976..e6b4d4c1722bf4a11744a421d09646b22745b138 100644
 --- a/src/main/java/org/bukkit/event/entity/EntityTargetLivingEntityEvent.java
diff --git a/patches/server/0742-Missing-effect-cause.patch b/patches/server/0742-Missing-effect-cause.patch
index a56cd781d5..f9c09496b6 100644
--- a/patches/server/0742-Missing-effect-cause.patch
+++ b/patches/server/0742-Missing-effect-cause.patch
@@ -30,6 +30,19 @@ index 483a24b094e2afa49405f4ef5a0d3f04eab31dec..530e3105e11094beab88b4d991aa0756
          }
  
          if (stack.isEmpty()) {
+diff --git a/src/main/java/net/minecraft/world/item/OminousBottleItem.java b/src/main/java/net/minecraft/world/item/OminousBottleItem.java
+index aba027a4c73fd7a01556e71cfc39dbe5e9c9464a..d42b64ab58997f45974f70dc660643ac4e372a39 100644
+--- a/src/main/java/net/minecraft/world/item/OminousBottleItem.java
++++ b/src/main/java/net/minecraft/world/item/OminousBottleItem.java
+@@ -36,7 +36,7 @@ public class OminousBottleItem extends Item {
+         if (!world.isClientSide) {
+             world.playSound(null, user.blockPosition(), SoundEvents.OMINOUS_BOTTLE_DISPOSE, user.getSoundSource(), 1.0F, 1.0F);
+             Integer integer = stack.getOrDefault(DataComponents.OMINOUS_BOTTLE_AMPLIFIER, Integer.valueOf(0));
+-            user.addEffect(new MobEffectInstance(MobEffects.BAD_OMEN, 120000, integer, false, false, true));
++            user.addEffect(new MobEffectInstance(MobEffects.BAD_OMEN, 120000, integer, false, false, true), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.POTION_DRINK); // Paper - Add missing effect cause
+         }
+ 
+         stack.consume(1, user);
 diff --git a/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java b/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java
 index 6dccaec9834c110dde4d8b66bfd400c3306c2867..da559bf12574a5bb13c43b97282aabd3d7a71274 100644
 --- a/src/main/java/net/minecraft/world/item/SuspiciousStewItem.java