package org.bukkit.craftbukkit.entity;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.AnimalTamer;
import org.bukkit.entity.Creature;
import org.bukkit.entity.Tameable;
import java.util.UUID;
public class CraftTameableAnimal extends CraftAnimals implements Tameable, Creature
{
public CraftTameableAnimal(CraftServer server, net.minecraft.entity.passive.EntityTameable entity)
{
super(server, entity);
}
@Override
public net.minecraft.entity.passive.EntityTameable getHandle()
{
return (net.minecraft.entity.passive.EntityTameable) super.getHandle();
}
public UUID getOwnerUUID()
{
try
{
return UUID.fromString(getHandle().func_152113_b());
} catch(IllegalArgumentException ex)
{
return null;
}
}
public void setOwnerUUID(UUID uuid)
{
if(uuid == null)
{
getHandle().func_152115_b("");
}
else
{
getHandle().func_152115_b(uuid.toString());
}
}
public AnimalTamer getOwner()
{
if(getOwnerUUID() == null)
{
return null;
}
AnimalTamer owner = getServer().getPlayer(getOwnerUUID());
if(owner == null)
{
owner = getServer().getOfflinePlayer(getOwnerUUID());
}
return owner;
}
public boolean isTamed()
{
return getHandle().isTamed();
}
public void setOwner(AnimalTamer tamer)
{
if(tamer != null)
{
setTamed(true);
getHandle().setPathToEntity(null);
setOwnerUUID(tamer.getUniqueId());
}
else
{
setTamed(false);
setOwnerUUID(null);
}
}
public void setTamed(boolean tame)
{
getHandle().setTamed(tame);
if(!tame)
{
setOwnerUUID(null);
}
}
public boolean isSitting()
{
return getHandle().isSitting();
}
public void setSitting(boolean sitting)
{
getHandle().func_70907_r().setSitting(sitting);
}
@Override
public String toString()
{
return getClass().getSimpleName() + "{owner=" + getOwner() + ",tamed=" + isTamed() + "}";
}
}