-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
- Loading branch information
Showing
2 changed files
with
64 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Tamion <70228790+notTamion@users.noreply.github.com> | ||
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; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Tamion <70228790+notTamion@users.noreply.github.com> | ||
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(); |