diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java index 36a966d23..e84ea0c04 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java @@ -1,13 +1,14 @@ package org.bukkit.craftbukkit.entity; -import org.bukkit.entity.Arrow; import net.minecraft.server.EntityArrow; +import net.minecraft.server.EntityLiving; + import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.LivingEntity; /** * Represents an arrow. - * - * @author sk89q */ public class CraftArrow extends CraftEntity implements Arrow { public CraftArrow(CraftServer server, EntityArrow entity) { @@ -18,4 +19,19 @@ public class CraftArrow extends CraftEntity implements Arrow { public String toString() { return "CraftArrow"; } + + public LivingEntity getShooter() { + if (((EntityArrow) getHandle()).shooter != null) { + return (LivingEntity) ((EntityArrow) getHandle()).shooter.getBukkitEntity(); + } + + return null; + + } + + public void setShooter(LivingEntity shooter) { + if (shooter instanceof CraftLivingEntity) { + ((EntityArrow) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity; + } + } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java index d7d6d9d84..cae2c3502 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftEgg.java @@ -1,13 +1,14 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityEgg; +import net.minecraft.server.EntityLiving; + import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Egg; +import org.bukkit.entity.LivingEntity; /** * An egg. - * - * @author sk89q */ public class CraftEgg extends CraftEntity implements Egg { public CraftEgg(CraftServer server, EntityEgg entity) { @@ -18,4 +19,19 @@ public class CraftEgg extends CraftEntity implements Egg { public String toString() { return "CraftEgg"; } + + public LivingEntity getShooter() { + if (((EntityEgg) getHandle()).thrower != null) { + return (LivingEntity) ((EntityEgg) getHandle()).thrower.getBukkitEntity(); + } + + return null; + + } + + public void setShooter(LivingEntity shooter) { + if (shooter instanceof CraftLivingEntity) { + ((EntityEgg) getHandle()).thrower = (EntityLiving) ((CraftLivingEntity) shooter).entity; + } + } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java index bf5429c29..280bfbab6 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFireball.java @@ -1,9 +1,12 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityFireball; +import net.minecraft.server.EntityLiving; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Fireball; +import org.bukkit.entity.LivingEntity; +import org.bukkit.util.Vector; /** * A Fireball. @@ -33,4 +36,27 @@ public class CraftFireball extends CraftEntity implements Fireball { public void setYield(float yield) { ((EntityFireball) getHandle()).yield = yield; } + + public LivingEntity getShooter() { + if (((EntityFireball) getHandle()).shooter != null) { + return (LivingEntity) ((EntityFireball) getHandle()).shooter.getBukkitEntity(); + } + + return null; + + } + + public void setShooter(LivingEntity shooter) { + if (shooter instanceof CraftLivingEntity) { + ((EntityFireball) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity; + } + } + + public Vector getDirection() { + return new Vector(((EntityFireball) getHandle()).c, ((EntityFireball) getHandle()).d, ((EntityFireball) getHandle()).e); + } + + public void setDirection(Vector direction) { + ((EntityFireball) getHandle()).setDirection(direction.getX(), direction.getY(), direction.getZ()); + } } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java index 7e2682c2c..d2d5813a4 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftFish.java @@ -1,14 +1,14 @@ package org.bukkit.craftbukkit.entity; import net.minecraft.server.EntityFish; +import net.minecraft.server.EntityHuman; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Fish; +import org.bukkit.entity.LivingEntity; /** * A Fish. - * - * @author Cogito */ public class CraftFish extends CraftEntity implements Fish { public CraftFish(CraftServer server, EntityFish entity) { @@ -19,4 +19,20 @@ public class CraftFish extends CraftEntity implements Fish { public String toString() { return "CraftFish"; } + + public LivingEntity getShooter() { + if (((EntityFish) getHandle()).owner != null) { + return (LivingEntity) ((EntityFish) getHandle()).owner.getBukkitEntity(); + } + + return null; + + } + + public void setShooter(LivingEntity shooter) { + if (shooter instanceof CraftHumanEntity) { + ((EntityFish) getHandle()).owner = (EntityHuman) ((CraftHumanEntity) shooter).entity; + } + } + } diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java index 1a7939d08..4d5d54b06 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftSnowball.java @@ -1,13 +1,14 @@ package org.bukkit.craftbukkit.entity; +import net.minecraft.server.EntityLiving; import net.minecraft.server.EntitySnowball; + import org.bukkit.craftbukkit.CraftServer; +import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Snowball; /** * A snowball. - * - * @author sk89q */ public class CraftSnowball extends CraftEntity implements Snowball { public CraftSnowball(CraftServer server, EntitySnowball entity) { @@ -18,4 +19,18 @@ public class CraftSnowball extends CraftEntity implements Snowball { public String toString() { return "CraftSnowball"; } + + public LivingEntity getShooter() { + if (((EntitySnowball) getHandle()).shooter != null) { + return (LivingEntity) ((EntitySnowball) getHandle()).shooter.getBukkitEntity(); + } + + return null; + } + + public void setShooter(LivingEntity shooter) { + if (shooter instanceof CraftLivingEntity) { + ((EntitySnowball) getHandle()).shooter = (EntityLiving) ((CraftLivingEntity) shooter).entity; + } + } }