diff options
author | Tamion <[email protected]> | 2023-11-05 00:24:06 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2023-11-04 16:24:06 -0700 |
commit | e289accb0375eed492d65e019c287d1d3b1a3fcf (patch) | |
tree | 794b1a22a4d03351ab5a6dc8420372b0fcb30a49 | |
parent | 2553f30153b4f8858456ddff8a4b713938fea1cd (diff) | |
download | Paper-e289accb0375eed492d65e019c287d1d3b1a3fcf.tar.gz Paper-e289accb0375eed492d65e019c287d1d3b1a3fcf.zip |
Add more API to LingeringPotionSplashEvent (#9901)
* Add createAreaEffectCloud API
* Add missing NotNull
* Add missing Paper comments
* Better solution
* Better naming
* New patch and rename
* rename patch
-rw-r--r-- | patches/api/0445-Expand-LingeringPotion-API.patch | 45 | ||||
-rw-r--r-- | patches/server/1045-Expand-LingeringPotion-API.patch | 19 |
2 files changed, 64 insertions, 0 deletions
diff --git a/patches/api/0445-Expand-LingeringPotion-API.patch b/patches/api/0445-Expand-LingeringPotion-API.patch new file mode 100644 index 0000000000..40b5a5f547 --- /dev/null +++ b/patches/api/0445-Expand-LingeringPotion-API.patch @@ -0,0 +1,45 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tamion <[email protected]> +Date: Sat, 4 Nov 2023 23:56:23 +0100 +Subject: [PATCH] Expand LingeringPotion API + + +diff --git a/src/main/java/org/bukkit/event/entity/LingeringPotionSplashEvent.java b/src/main/java/org/bukkit/event/entity/LingeringPotionSplashEvent.java +index 1584c6c41c3ca51b8ab7f48efb140b0fe31f535b..34efe59493729449fe1316ab8f2f7211acf679be 100644 +--- a/src/main/java/org/bukkit/event/entity/LingeringPotionSplashEvent.java ++++ b/src/main/java/org/bukkit/event/entity/LingeringPotionSplashEvent.java +@@ -17,6 +17,7 @@ public class LingeringPotionSplashEvent extends ProjectileHitEvent implements Ca + private static final HandlerList handlers = new HandlerList(); + private boolean cancelled; + private final AreaEffectCloud entity; ++ private boolean allowEmptyAreaEffectCreation; // Paper + + @Deprecated + public LingeringPotionSplashEvent(@NotNull final ThrownPotion potion, @NotNull final AreaEffectCloud entity) { +@@ -44,6 +45,26 @@ public class LingeringPotionSplashEvent extends ProjectileHitEvent implements Ca + return entity; + } + ++ // Paper start ++ /** ++ * Sets if an Empty AreaEffectCloud may be created ++ * ++ * @param allowEmptyAreaEffectCreation If an Empty AreaEffectCloud may be created ++ */ ++ public void allowsEmptyCreation(boolean allowEmptyAreaEffectCreation) { ++ this.allowEmptyAreaEffectCreation = allowEmptyAreaEffectCreation; ++ } ++ ++ /** ++ * Gets if an empty AreaEffectCloud may be created ++ * ++ * @return if an empty AreaEffectCloud may be created ++ */ ++ public boolean allowsEmptyCreation() { ++ return allowEmptyAreaEffectCreation; ++ } ++ // Paper end ++ + @Override + public boolean isCancelled() { + return cancelled; diff --git a/patches/server/1045-Expand-LingeringPotion-API.patch b/patches/server/1045-Expand-LingeringPotion-API.patch new file mode 100644 index 0000000000..9939920a04 --- /dev/null +++ b/patches/server/1045-Expand-LingeringPotion-API.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Tamion <[email protected]> +Date: Sat, 4 Nov 2023 23:57:05 +0100 +Subject: [PATCH] Expand LingeringPotion API + + +diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +index 2f80d484ad523860322483cebe92cf7cd8cfad22..b34dbb083ecc3a6ead7721391a79e7061e098498 100644 +--- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java ++++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java +@@ -288,7 +288,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie + + // CraftBukkit start + org.bukkit.event.entity.LingeringPotionSplashEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callLingeringPotionSplashEvent(this, position, entityareaeffectcloud); +- if (!(event.isCancelled() || entityareaeffectcloud.isRemoved() || (noEffects && entityareaeffectcloud.effects.isEmpty() && entityareaeffectcloud.getPotion().getEffects().isEmpty()))) { // Paper - don't spawn area effect cloud if the effects were empty and not changed during the event handling ++ if (!(event.isCancelled() || entityareaeffectcloud.isRemoved() || (!event.allowsEmptyCreation() && (noEffects && entityareaeffectcloud.effects.isEmpty() && entityareaeffectcloud.getPotion().getEffects().isEmpty())))) { // Paper - don't spawn area effect cloud if the effects were empty and not changed during the event handling + this.level().addFreshEntity(entityareaeffectcloud); + } else { + entityareaeffectcloud.discard(); |