package com.laytonsmith.abstraction.bukkit; import com.laytonsmith.abstraction.AbstractionObject; import com.laytonsmith.abstraction.MCAnimalTamer; import com.laytonsmith.abstraction.MCHumanEntity; import com.laytonsmith.abstraction.MCOfflinePlayer; import com.laytonsmith.abstraction.bukkit.entities.BukkitMCHumanEntity; import org.bukkit.OfflinePlayer; import org.bukkit.entity.AnimalTamer; import org.bukkit.entity.HumanEntity; /** * * */ public class BukkitMCAnimalTamer implements MCAnimalTamer{ AnimalTamer at; public BukkitMCAnimalTamer(AnimalTamer at){ this.at = at; } public BukkitMCAnimalTamer(AbstractionObject a){ this((AnimalTamer)null); if(a instanceof MCAnimalTamer){ this.at = ((AnimalTamer)a.getHandle()); } else { throw new ClassCastException(); } } @Override public Object getHandle(){ return at; } public AnimalTamer _tamer() { return at; } public MCOfflinePlayer getOfflinePlayer() { if(at instanceof OfflinePlayer){ return new BukkitMCOfflinePlayer((OfflinePlayer)at); } return null; } public boolean isOfflinePlayer() { return at instanceof OfflinePlayer; } public boolean isHumanEntity() { return at instanceof HumanEntity; } public MCHumanEntity getHumanEntity() { if(at instanceof HumanEntity){ return new BukkitMCHumanEntity((HumanEntity)at); } return null; } @Override public String toString() { return at.toString(); } @Override public boolean equals(Object obj) { return (obj instanceof BukkitMCAnimalTamer?at.equals(((BukkitMCAnimalTamer)obj).at):false); } @Override public int hashCode() { return at.hashCode(); } @Override public String getName() { return at.getName(); } }