package org.bukkit.craftbukkit.entity;
import net.minecraft.entity.EntityLivingBase;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Projectile;
import org.bukkit.projectiles.ProjectileSource;
import org.ultramine.mods.bukkit.interfaces.entity.IMixinEntity;
import org.ultramine.mods.bukkit.interfaces.entity.projectile.IMixinThrowable;
public class CraftProjectile extends AbstractProjectile implements Projectile
{ // Cauldron - concrete
public CraftProjectile(CraftServer server, net.minecraft.entity.Entity entity)
{
super(server, entity);
}
public ProjectileSource getShooter()
{
return ((IMixinEntity) getHandle()).getProjectileSource();
}
public void setShooter(ProjectileSource shooter)
{
if(shooter instanceof CraftLivingEntity)
{
((IMixinThrowable) getHandle()).setThrower((net.minecraft.entity.EntityLivingBase) ((CraftLivingEntity) shooter).entity);
if(shooter instanceof CraftHumanEntity)
{
((IMixinThrowable) getHandle()).setThrowerName(((CraftHumanEntity) shooter).getName());
}
}
else
{
((IMixinThrowable) getHandle()).setThrower(null);
((IMixinThrowable) getHandle()).setThrowerName(null);
}
((IMixinEntity) getHandle()).setProjectileSource(shooter);
}
@Override
public net.minecraft.entity.projectile.EntityThrowable getHandle()
{
return (net.minecraft.entity.projectile.EntityThrowable) entity;
}
@Override
public String toString()
{
return "CraftProjectile";
}
// Cauldron start
@Override
public EntityType getType()
{
return EntityType.UNKNOWN;
}
// Cauldron end
@Deprecated
public LivingEntity _INVALID_getShooter()
{
EntityLivingBase thrower = getHandle().getThrower();
if(thrower == null)
{
return null;
}
return (LivingEntity) ((IMixinEntity) thrower).getBukkitEntity();
}
@Deprecated
public void _INVALID_setShooter(LivingEntity shooter)
{
if(shooter == null)
{
return;
}
((IMixinThrowable) getHandle()).setThrower(((CraftLivingEntity) shooter).getHandle());
if(shooter instanceof CraftHumanEntity)
{
((IMixinThrowable) getHandle()).setThrowerName(((CraftHumanEntity) shooter).getName());
}
}
}