Call PotionSplashEvent even for no effects. Fixes BUKKIT-3618
When a splash potion has no applicable effects we currently do not call PotionSplashEvent. This means plugins are unable to make custom potions with reliable splash handling as they have to relicate the functionality themselves. With this commit we simply make the event fire regardless of the effects on the potion.
Dieser Commit ist enthalten in:
Ursprung
adbee6049e
Commit
377be0a79e
@ -64,7 +64,7 @@ public class EntityPotion extends EntityProjectile {
|
|||||||
if (!this.world.isStatic) {
|
if (!this.world.isStatic) {
|
||||||
List list = Item.POTION.g(this.c);
|
List list = Item.POTION.g(this.c);
|
||||||
|
|
||||||
if (list != null && !list.isEmpty()) {
|
if (true || list != null && !list.isEmpty()) { // CraftBukkit - Call event even if no effects to apply
|
||||||
AxisAlignedBB axisalignedbb = this.boundingBox.grow(4.0D, 2.0D, 4.0D);
|
AxisAlignedBB axisalignedbb = this.boundingBox.grow(4.0D, 2.0D, 4.0D);
|
||||||
List list1 = this.world.a(EntityLiving.class, axisalignedbb);
|
List list1 = this.world.a(EntityLiving.class, axisalignedbb);
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ public class EntityPotion extends EntityProjectile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
org.bukkit.event.entity.PotionSplashEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPotionSplashEvent(this, affected);
|
org.bukkit.event.entity.PotionSplashEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callPotionSplashEvent(this, affected);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled() && list != null && !list.isEmpty()) { // do not process effects if there are no effects to process
|
||||||
for (LivingEntity victim : event.getAffectedEntities()) {
|
for (LivingEntity victim : event.getAffectedEntities()) {
|
||||||
if (!(victim instanceof CraftLivingEntity)) {
|
if (!(victim instanceof CraftLivingEntity)) {
|
||||||
continue;
|
continue;
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren