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
Dieser Commit ist enthalten in:
Ursprung
2553f30153
Commit
e289accb03
45
patches/api/0445-Expand-LingeringPotion-API.patch
Normale Datei
45
patches/api/0445-Expand-LingeringPotion-API.patch
Normale Datei
@ -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;
|
19
patches/server/1045-Expand-LingeringPotion-API.patch
Normale Datei
19
patches/server/1045-Expand-LingeringPotion-API.patch
Normale Datei
@ -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();
|
In neuem Issue referenzieren
Einen Benutzer sperren