Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / craftbukkit / entity / CraftTameableAnimal.java
@vlad20012 vlad20012 on 24 Feb 2017 1 KB initial
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() + "}";
	}
}