001 package org.bukkit.entity;
002
003 public interface Tameable {
004
005 /**
006 * Check if this is tamed
007 * <p>
008 * If something is tamed then a player can not tame it through normal
009 * methods, even if it does not belong to anyone in particular.
010 *
011 * @return true if this has been tamed
012 */
013 public boolean isTamed();
014
015 /**
016 * Sets if this has been tamed. Not necessary if the method setOwner has
017 * been used, as it tames automatically.
018 * <p>
019 * If something is tamed then a player can not tame it through normal
020 * methods, even if it does not belong to anyone in particular.
021 *
022 * @param tame true if tame
023 */
024 public void setTamed(boolean tame);
025
026 /**
027 * Gets the current owning AnimalTamer
028 *
029 * @return the owning AnimalTamer, or null if not owned
030 */
031 public AnimalTamer getOwner();
032
033 /**
034 * Set this to be owned by given AnimalTamer.
035 * <p>
036 * If the owner is not null, this will be tamed and will have any current
037 * path it is following removed. If the owner is set to null, this will be
038 * untamed, and the current owner removed.
039 *
040 * @param tamer the AnimalTamer who should own this
041 */
042 public void setOwner(AnimalTamer tamer);
043
044 }