API has been added to interface with Horses and to modify their inventories. A new event, HorseJumpEvent, has been added to be fired whenever a horse jumps. This commit fixes BUKKIT-4393.
257 lines
6.5 KiB
Java
257 lines
6.5 KiB
Java
package org.bukkit.entity;
|
|
|
|
import org.bukkit.inventory.HorseInventory;
|
|
import org.bukkit.inventory.InventoryHolder;
|
|
|
|
/**
|
|
* Represents a Horse.
|
|
*/
|
|
public interface Horse extends Animals, Vehicle, InventoryHolder, Tameable {
|
|
|
|
/**
|
|
* Represents the different types of horses that may exist.
|
|
*/
|
|
public enum Variant {
|
|
/**
|
|
* A normal horse
|
|
*/
|
|
HORSE,
|
|
/**
|
|
* A donkey
|
|
*/
|
|
DONKEY,
|
|
/**
|
|
* A mule
|
|
*/
|
|
MULE,
|
|
/**
|
|
* An undead horse
|
|
*/
|
|
UNDEAD_HORSE,
|
|
/**
|
|
* A skeleton horse
|
|
*/
|
|
SKELETON_HORSE,
|
|
;
|
|
}
|
|
|
|
/**
|
|
* Represents the base color that the horse has.
|
|
*/
|
|
public enum Color {
|
|
/**
|
|
* Snow white
|
|
*/
|
|
WHITE,
|
|
/**
|
|
* Very light brown
|
|
*/
|
|
CREAMY,
|
|
/**
|
|
* Chestnut
|
|
*/
|
|
CHESTNUT,
|
|
/**
|
|
* Light brown
|
|
*/
|
|
BROWN,
|
|
/**
|
|
* Pitch black
|
|
*/
|
|
BLACK,
|
|
/**
|
|
* Gray
|
|
*/
|
|
GRAY,
|
|
/**
|
|
* Dark brown
|
|
*/
|
|
DARK_BROWN,
|
|
;
|
|
}
|
|
|
|
/**
|
|
* Represents the style, or markings, that the horse has.
|
|
*/
|
|
public enum Style {
|
|
/**
|
|
* No markings
|
|
*/
|
|
NONE,
|
|
/**
|
|
* White socks or stripes
|
|
*/
|
|
WHITE,
|
|
/**
|
|
* Milky splotches
|
|
*/
|
|
WHITEFIELD,
|
|
/**
|
|
* Round white dots
|
|
*/
|
|
WHITE_DOTS,
|
|
/**
|
|
* Small black dots
|
|
*/
|
|
BLACK_DOTS,
|
|
;
|
|
}
|
|
|
|
/**
|
|
* Gets the horse's variant.
|
|
* <p>
|
|
* A horse's variant defines its physical appearance and capabilities.
|
|
* Whether a horse is a regular horse, donkey, mule, or other kind of
|
|
* horse is determined using the variant.
|
|
*
|
|
* @return a {@link Variant} representing the horse's variant
|
|
*/
|
|
public Variant getVariant();
|
|
|
|
/**
|
|
* Sets the horse's variant.
|
|
* <p>
|
|
* A horse's variant defines its physical appearance and capabilities.
|
|
* Whether a horse is a regular horse, donkey, mule, or other kind of
|
|
* horse can be set using the variant.
|
|
* <p>
|
|
* Setting a horse's variant does not change its attributes such as
|
|
* its owner and its tamed status, but changing a mule or donkey
|
|
* with a chest to another variant which does not support a chest
|
|
* will remove the chest and its contents.
|
|
*
|
|
* @param variant a {@link Variant} for this horse
|
|
*/
|
|
public void setVariant(Variant variant);
|
|
|
|
/**
|
|
* Gets the horse's color.
|
|
* <p>
|
|
* Colors only apply to horses, not to donkeys, mules, skeleton horses
|
|
* or undead horses.
|
|
*
|
|
* @return a {@link Color} representing the horse's group
|
|
*/
|
|
public Color getColor();
|
|
|
|
/**
|
|
* Sets the horse's color.
|
|
* <p>
|
|
* Attempting to set a color for any donkey, mule, skeleton horse or
|
|
* undead horse will not result in a change.
|
|
*
|
|
* @param color a {@link Color} for this horse
|
|
*/
|
|
public void setColor(Color color);
|
|
|
|
/**
|
|
* Gets the horse's style.
|
|
* Styles determine what kind of markings or patterns a horse has.
|
|
* <p>
|
|
* Styles only apply to horses, not to donkeys, mules, skeleton horses
|
|
* or undead horses.
|
|
*
|
|
* @return a {@link Style} representing the horse's style
|
|
*/
|
|
public Style getStyle();
|
|
|
|
/**
|
|
* Sets the style of this horse.
|
|
* Styles determine what kind of markings or patterns a horse has.
|
|
* <p>
|
|
* Attempting to set a style for any donkey, mule, skeleton horse or
|
|
* undead horse will not result in a change.
|
|
*
|
|
* @param style a {@link Style} for this horse
|
|
*/
|
|
public void setStyle(Style style);
|
|
|
|
/**
|
|
* Gets whether the horse has a chest equipped.
|
|
*
|
|
* @return true if the horse has chest storage
|
|
*/
|
|
public boolean isCarryingChest();
|
|
|
|
/**
|
|
* Sets whether the horse has a chest equipped.
|
|
* Removing a chest will also clear the chest's inventory.
|
|
*
|
|
* @param chest true if the horse should have a chest
|
|
*/
|
|
public void setCarryingChest(boolean chest);
|
|
|
|
/**
|
|
* Gets the domestication level of this horse.
|
|
* <p>
|
|
* A higher domestication level indicates that the horse is closer to
|
|
* becoming tame. As the domestication level gets closer to the max
|
|
* domestication level, the chance of the horse becoming tame increases.
|
|
*
|
|
* @return domestication level
|
|
*/
|
|
public int getDomestication();
|
|
|
|
/**
|
|
* Sets the domestication level of this horse.
|
|
* <p>
|
|
* Setting the domestication level to a high value will increase the
|
|
* horse's chances of becoming tame.
|
|
* <p>
|
|
* Domestication level must be greater than zero and no greater than
|
|
* the max domestication level of the horse, determined with
|
|
* {@link #getMaxDomestication()}
|
|
*
|
|
* @param level domestication level
|
|
*/
|
|
public void setDomestication(int level);
|
|
|
|
/**
|
|
* Gets the maximum domestication level of this horse.
|
|
* <p>
|
|
* The higher this level is, the longer it will likely take
|
|
* for the horse to be tamed.
|
|
*
|
|
* @return the max domestication level
|
|
*/
|
|
public int getMaxDomestication();
|
|
|
|
/**
|
|
* Sets the maximum domestication level of this horse.
|
|
* <p>
|
|
* Setting a higher max domestication will increase the amount of
|
|
* domesticating (feeding, riding, etc.) necessary in order to tame it,
|
|
* while setting a lower max value will have the opposite effect.
|
|
* <p>
|
|
* Maximum domestication must be greater than zero.
|
|
*
|
|
* @param level the max domestication level
|
|
*/
|
|
public void setMaxDomestication(int level);
|
|
|
|
/**
|
|
* Gets the jump strength of this horse.
|
|
* <p>
|
|
* Jump strength defines how high the horse can jump. A higher jump strength
|
|
* increases how high a jump will go.
|
|
*
|
|
* @return the horse's jump strength
|
|
*/
|
|
public double getJumpStrength();
|
|
|
|
/**
|
|
* Sets the jump strength of this horse.
|
|
* <p>
|
|
* A higher jump strength increases how high a jump will go.
|
|
* Setting a jump strength to 0 will result in no jump.
|
|
* You cannot set a jump strength to a value below 0 or
|
|
* above 2.
|
|
*
|
|
* @param strength jump strength for this horse
|
|
*/
|
|
public void setJumpStrength(double strength);
|
|
|
|
@Override
|
|
public HorseInventory getInventory();
|
|
}
|