Files
CatServer/patches/net/minecraft/entity/projectile/EntitySmallFireball.java.patch
2018-09-08 11:39:03 +08:00

40 lines
1.8 KiB
Diff

--- ../src-base/minecraft/net/minecraft/entity/projectile/EntitySmallFireball.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntitySmallFireball.java
@@ -1,5 +1,7 @@
package net.minecraft.entity.projectile;
+import org.bukkit.event.entity.EntityCombustByEntityEvent;
+
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Blocks;
@@ -47,7 +49,14 @@
if (flag)
{
this.applyEnchantments(this.shootingEntity, result.entityHit);
- result.entityHit.setFire(5);
+ // CraftBukkit start - Entity damage by entity event + combust event
+ EntityCombustByEntityEvent event = new EntityCombustByEntityEvent(this.getBukkitEntity(), result.entityHit.getBukkitEntity(), 5);
+ result.entityHit.worldObj.getServer().getPluginManager().callEvent(event);
+
+ if (!event.isCancelled()) {
+ result.entityHit.setFire(event.getDuration());
+ }
+ // CraftBukkit end
}
}
}
@@ -66,7 +75,11 @@
if (this.worldObj.isAirBlock(blockpos))
{
- this.worldObj.setBlockState(blockpos, Blocks.FIRE.getDefaultState());
+ // CraftBukkit start
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callBlockIgniteEvent(worldObj, blockpos.getX(), blockpos.getY(), blockpos.getZ(), this).isCancelled()) {
+ this.worldObj.setBlockState(blockpos, Blocks.FIRE.getDefaultState());
+ }
+ // CraftBukkit end
}
}
}