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;