#697: Add ArrowBodyCountChangeEvent

By: Martoph <sager1018@gmail.com>
This commit is contained in:
CraftBukkit/Spigot
2020-09-02 18:52:40 +10:00
parent 5d37d3d19d
commit 4f32c945c9
4 changed files with 108 additions and 42 deletions

View File

@@ -246,6 +246,27 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
getHandle().maxAirTicks = ticks;
}
@Override
public int getArrowCooldown() {
return getHandle().al; // PAIL rename arrowCooldown
}
@Override
public void setArrowCooldown(int ticks) {
getHandle().al = ticks;
}
@Override
public int getArrowsInBody() {
return getHandle().getArrowCount();
}
@Override
public void setArrowsInBody(int count) {
Preconditions.checkArgument(count >= 0, "New arrow amount must be >= 0");
getHandle().getDataWatcher().set(EntityLiving.bh, count);
}
@Override
public void damage(double amount) {
damage(amount, null);

View File

@@ -144,6 +144,7 @@ import org.bukkit.event.block.EntityBlockFormEvent;
import org.bukkit.event.block.FluidLevelChangeEvent;
import org.bukkit.event.block.MoistureChangeEvent;
import org.bukkit.event.block.NotePlayEvent;
import org.bukkit.event.entity.ArrowBodyCountChangeEvent;
import org.bukkit.event.entity.AreaEffectCloudApplyEvent;
import org.bukkit.event.entity.BatToggleSleepEvent;
import org.bukkit.event.entity.CreatureSpawnEvent;
@@ -1596,4 +1597,16 @@ public class CraftEventFactory {
Bukkit.getPluginManager().callEvent(event);
return !event.isCancelled();
}
/**
* ArrowBodyCountChangeEvent
*/
public static ArrowBodyCountChangeEvent callArrowBodyCountChangeEvent(EntityLiving entity, int oldAmount, int newAmount, boolean isReset) {
org.bukkit.entity.LivingEntity bukkitEntity = (LivingEntity) entity.getBukkitEntity();
ArrowBodyCountChangeEvent event = new ArrowBodyCountChangeEvent(bukkitEntity, oldAmount, newAmount, isReset);
Bukkit.getPluginManager().callEvent(event);
return event;
}
}