diff --git a/paper-api/src/main/java/org/bukkit/entity/Entity.java b/paper-api/src/main/java/org/bukkit/entity/Entity.java index 42e0cf49b8..aeb8425619 100644 --- a/paper-api/src/main/java/org/bukkit/entity/Entity.java +++ b/paper-api/src/main/java/org/bukkit/entity/Entity.java @@ -9,7 +9,7 @@ import org.bukkit.World; */ public interface Entity { /** - * Gets the entitys current position + * Gets the entity's current position * * @return Location containing the position of this entity */ diff --git a/paper-api/src/main/java/org/bukkit/entity/Fireball.java b/paper-api/src/main/java/org/bukkit/entity/Fireball.java new file mode 100644 index 0000000000..424de3013f --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Fireball.java @@ -0,0 +1,9 @@ +package org.bukkit.entity; + +/** + * Represents a Fireball. + * + * @author Cogito + */ +public interface Fireball extends Entity { +} diff --git a/paper-api/src/main/java/org/bukkit/entity/Fish.java b/paper-api/src/main/java/org/bukkit/entity/Fish.java new file mode 100644 index 0000000000..44fcede759 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/entity/Fish.java @@ -0,0 +1,9 @@ +package org.bukkit.entity; + +/** + * Represents a Fish. + * + * @author Cogito + */ +public interface Fish extends Entity { +} diff --git a/paper-api/src/main/java/org/bukkit/event/Event.java b/paper-api/src/main/java/org/bukkit/event/Event.java index 0e32359b9b..a7399da703 100644 --- a/paper-api/src/main/java/org/bukkit/event/Event.java +++ b/paper-api/src/main/java/org/bukkit/event/Event.java @@ -417,6 +417,13 @@ public abstract class Event { * @see org.bukkit.event.entity.EntityDamageByEntityEvent */ ENTITY_DAMAGEDBY_ENTITY (Category.LIVING_ENTITY), + + /** + * Called when a LivingEntity is damaged by a projectile Entity + * + * @see org.bukkit.event.entity.EntityDamageByProjectileEvent + */ + ENTITY_DAMAGEDBY_PROJECTILE (Category.LIVING_ENTITY), /** * Called when a LivingEntity is damaged with no source. diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageByProjectileEvent.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageByProjectileEvent.java new file mode 100644 index 0000000000..96529bd691 --- /dev/null +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityDamageByProjectileEvent.java @@ -0,0 +1,35 @@ +package org.bukkit.event.entity; + +import java.util.Random; + +import org.bukkit.entity.Entity; + +public class EntityDamageByProjectileEvent extends EntityDamageByEntityEvent { + + private Entity projectile; + private boolean bounce; + + public EntityDamageByProjectileEvent(Entity damager, Entity damagee, Entity projectile, DamageCause cause, int damage) { + super(damager, damagee, cause, damage); + this.projectile = projectile; + Random random = new Random(); + this.bounce = random.nextBoolean(); + } + + /** + * The projectile used to cause the event + * @return the projectile + */ + public Entity getProjectile() { + return projectile; + } + + public void setBounce(boolean bounce){ + this.bounce = bounce; + } + + public boolean getBounce(){ + return bounce; + } + +} diff --git a/paper-api/src/main/java/org/bukkit/event/entity/EntityListener.java b/paper-api/src/main/java/org/bukkit/event/entity/EntityListener.java index da21f0d85e..03bc5ba09a 100644 --- a/paper-api/src/main/java/org/bukkit/event/entity/EntityListener.java +++ b/paper-api/src/main/java/org/bukkit/event/entity/EntityListener.java @@ -15,6 +15,12 @@ public class EntityListener implements Listener { public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { } + public void onEntityDamageByProjectile(EntityDamageByProjectileEvent event) { + } + public void onEntityCombust(EntityCombustEvent event) { } + + public void onEntityDamage(EntityDamageEvent event) { + } } diff --git a/paper-api/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/paper-api/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index 9288f00018..5ed12363b1 100644 --- a/paper-api/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/paper-api/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -21,6 +21,8 @@ import org.bukkit.event.block.*; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; +import org.bukkit.event.entity.EntityDamageByProjectileEvent; +import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityListener; import org.bukkit.event.player.*; import org.bukkit.event.server.PluginEvent; @@ -216,6 +218,12 @@ public final class JavaPluginLoader implements PluginLoader { case ENTITY_DAMAGEDBY_ENTITY: trueListener.onEntityDamageByEntity((EntityDamageByEntityEvent)event); break; + case ENTITY_DAMAGEDBY_PROJECTILE: + trueListener.onEntityDamageByProjectile((EntityDamageByProjectileEvent)event); + break; + case ENTITY_DAMAGED: + trueListener.onEntityDamage((EntityDamageEvent)event); + break; case ENTITY_DEATH: // TODO: ENTITY_DEATH hook break;