mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 04:56:50 +01:00
Add a DamageEvent for falling blocks which can damage entities. Fixes BUKKIT-2781
This commit is contained in:
parent
d039986be7
commit
5f5dd727b6
1 changed files with 12 additions and 1 deletions
|
@ -3,6 +3,8 @@ package net.minecraft.server;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent; // CraftBukkit
|
||||||
|
|
||||||
public class EntityFallingBlock extends Entity {
|
public class EntityFallingBlock extends Entity {
|
||||||
|
|
||||||
public int id;
|
public int id;
|
||||||
|
@ -124,7 +126,16 @@ public class EntityFallingBlock extends Entity {
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
Entity entity = (Entity) iterator.next();
|
Entity entity = (Entity) iterator.next();
|
||||||
|
|
||||||
entity.damageEntity(damagesource, Math.min(MathHelper.d((float) i * this.fallHurtAmount), this.fallHurtMax));
|
// CraftBukkit start
|
||||||
|
int damage = Math.min(MathHelper.d((float) i * this.fallHurtAmount), this.fallHurtMax);
|
||||||
|
|
||||||
|
EntityDamageEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityDamageEvent(this, entity, EntityDamageEvent.DamageCause.FALLING_BLOCK, damage);
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
entity.damageEntity(damagesource, event.getDamage());
|
||||||
|
// CraftBukkit end
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.id == Block.ANVIL.id && (double) this.random.nextFloat() < 0.05000000074505806D + (double) i * 0.05D) {
|
if (this.id == Block.ANVIL.id && (double) this.random.nextFloat() < 0.05000000074505806D + (double) i * 0.05D) {
|
||||||
|
|
Loading…
Reference in a new issue