--- a/net/minecraft/world/entity/animal/EntitySnowman.java +++ b/net/minecraft/world/entity/animal/EntitySnowman.java @@ -40,6 +40,10 @@ import net.minecraft.world.level.gameevent.GameEvent; import net.minecraft.world.phys.Vec3D; +// CraftBukkit start +import org.bukkit.craftbukkit.event.CraftEventFactory; +// CraftBukkit end + public class EntitySnowman extends EntityGolem implements IShearable, IRangedEntity { private static final DataWatcherObject DATA_PUMPKIN_ID = DataWatcher.a(EntitySnowman.class, DataWatcherRegistry.BYTE); @@ -100,7 +104,7 @@ int k = MathHelper.floor(this.locZ()); if (this.level.getBiome(new BlockPosition(i, 0, k)).getAdjustedTemperature(new BlockPosition(i, j, k)) > 1.0F) { - this.damageEntity(DamageSource.ON_FIRE, 1.0F); + this.damageEntity(CraftEventFactory.MELTING, 1.0F); // CraftBukkit - DamageSource.BURN -> CraftEventFactory.MELTING } if (!this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING)) { @@ -116,7 +120,7 @@ BlockPosition blockposition = new BlockPosition(i, j, k); if (this.level.getType(blockposition).isAir() && this.level.getBiome(blockposition).getAdjustedTemperature(blockposition) < 0.8F && iblockdata.canPlace(this.level, blockposition)) { - this.level.setTypeUpdate(blockposition, iblockdata); + org.bukkit.craftbukkit.event.CraftEventFactory.handleBlockFormEvent(this.level, blockposition, iblockdata, this); // CraftBukkit } } } @@ -147,6 +151,11 @@ ItemStack itemstack = entityhuman.b(enumhand); if (itemstack.a(Items.SHEARS) && this.canShear()) { + // CraftBukkit start + if (!CraftEventFactory.handlePlayerShearEntityEvent(entityhuman, this, itemstack, enumhand)) { + return EnumInteractionResult.PASS; + } + // CraftBukkit end this.shear(SoundCategory.PLAYERS); this.a(GameEvent.SHEAR, (Entity) entityhuman); if (!this.level.isClientSide) {