SPIGOT-6193: Allow small fireballs to ignite players when MobGriefing is disabled

This commit is contained in:
Sander Knauff 2020-10-23 18:29:08 +11:00 committed by md_5
parent b8dd5ec216
commit 55a78ffbd7
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11

View File

@ -20,25 +20,23 @@
} }
public EntitySmallFireball(World world, double d0, double d1, double d2, double d3, double d4, double d5) { public EntitySmallFireball(World world, double d0, double d1, double d2, double d3, double d4, double d5) {
@@ -24,7 +31,16 @@ @@ -24,7 +31,14 @@
Entity entity1 = this.getShooter(); Entity entity1 = this.getShooter();
int i = entity.getFireTicks(); int i = entity.getFireTicks();
- entity.setOnFire(5); - entity.setOnFire(5);
+ // CraftBukkit start - Entity damage by entity event + combust event + // CraftBukkit start - Entity damage by entity event + combust event
+ if (isIncendiary) { + EntityCombustByEntityEvent event = new EntityCombustByEntityEvent((org.bukkit.entity.Projectile) this.getBukkitEntity(), entity.getBukkitEntity(), 5);
+ EntityCombustByEntityEvent event = new EntityCombustByEntityEvent((org.bukkit.entity.Projectile) this.getBukkitEntity(), entity.getBukkitEntity(), 5); + entity.world.getServer().getPluginManager().callEvent(event);
+ entity.world.getServer().getPluginManager().callEvent(event);
+ +
+ if (!event.isCancelled()) { + if (!event.isCancelled()) {
+ entity.setOnFire(event.getDuration(), false); + entity.setOnFire(event.getDuration(), false);
+ }
+ } + }
+ // CraftBukkit end + // CraftBukkit end
boolean flag = entity.damageEntity(DamageSource.fireball(this, entity1), 5.0F); boolean flag = entity.damageEntity(DamageSource.fireball(this, entity1), 5.0F);
if (!flag) { if (!flag) {
@@ -43,10 +59,10 @@ @@ -43,10 +57,10 @@
if (!this.world.isClientSide) { if (!this.world.isClientSide) {
Entity entity = this.getShooter(); Entity entity = this.getShooter();