package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; import net.minecraft.world.entity.projectile.EntityFireball; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.entity.Fireball; import org.bukkit.projectiles.ProjectileSource; import org.bukkit.util.Vector; public class CraftFireball extends AbstractProjectile implements Fireball { public CraftFireball(CraftServer server, EntityFireball entity) { super(server, entity); } @Override public float getYield() { return getHandle().bukkitYield; } @Override public boolean isIncendiary() { return getHandle().isIncendiary; } @Override public void setIsIncendiary(boolean isIncendiary) { getHandle().isIncendiary = isIncendiary; } @Override public void setYield(float yield) { getHandle().bukkitYield = yield; } @Override public ProjectileSource getShooter() { return getHandle().projectileSource; } @Override public void setShooter(ProjectileSource shooter) { if (shooter instanceof CraftLivingEntity) { getHandle().setOwner(((CraftLivingEntity) shooter).getHandle()); } else { getHandle().setOwner(null); } getHandle().projectileSource = shooter; } @Override public Vector getDirection() { return new Vector(getHandle().xPower, getHandle().yPower, getHandle().zPower); } @Override public void setDirection(Vector direction) { Preconditions.checkArgument(direction != null, "Vector direction cannot be null"); getHandle().setDirection(direction.getX(), direction.getY(), direction.getZ()); update(); // SPIGOT-6579 } @Override public EntityFireball getHandle() { return (EntityFireball) entity; } @Override public String toString() { return "CraftFireball"; } }