Java源码示例:org.bukkit.entity.Ocelot
示例1
@Override
public void initiateEntityPet() {
super.initiateEntityPet();
getBukkitEntity().setTamed(true);
getBukkitEntity().setCatType(Ocelot.Type.BLACK_CAT);
getBukkitEntity().setOwner(getPlayerOwner());
}
示例2
@Override
protected void load(ConfigurationSection config) {
super.load(config);
String catTypeName = config.getString("catType");
try {
catType = Ocelot.Type.valueOf(catTypeName);
} catch (Exception e) {
}
}
示例3
private short getSubItemData(Ocelot.Type catType) {
switch (catType) {
case BLACK_CAT:
return DyeColor.BLACK.getWoolData();
case RED_CAT:
return DyeColor.RED.getWoolData();
case SIAMESE_CAT:
return DyeColor.SILVER.getWoolData();
case WILD_OCELOT:
default:
return DyeColor.ORANGE.getWoolData();
}
}
示例4
@Override
public BehaviourItem[] getDefaultTargetingBehaviours() {
return new BehaviourItem[]{
new BehaviourItem(1, new BehaviourFloat(this)),
new BehaviourItem(2, new BehaviourSwell(this)),
new BehaviourItem(3, new BehaviourAvoidEntity(this, Ocelot.class, 6.0F, 1.0D, 1.2D)),
new BehaviourItem(4, new BehaviourMeleeAttack(this, false, 1.0D)),
new BehaviourItem(5, new BehaviourRandomStroll(this, 0.8D)),
new BehaviourItem(6, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 8F)),
new BehaviourItem(7, new BehaviourLookAtRandom(this))
};
}
示例5
@Override
public boolean checkFood(Entity entity, ItemStack food) {
Material type = food.getType();
switch (entity.getType()) {
case COW:
case SHEEP:
case MUSHROOM_COW:
return type == Material.WHEAT;
case PIG:
return (type == Material.CARROT || type == Material.BEETROOT || type == Material.POTATO);
case CHICKEN:
return type == Material.WHEAT_SEEDS
|| type == Material.MELON_SEEDS
|| type == Material.BEETROOT_SEEDS
|| type == Material.PUMPKIN_SEEDS;
case HORSE:
return (type == Material.GOLDEN_APPLE || type == Material.GOLDEN_CARROT) && ((Horse)entity).isTamed();
case WOLF:
return (type == Material.BEEF
|| type == Material.CHICKEN
|| type == Material.COD
|| type == Material.MUTTON
|| type == Material.PORKCHOP
|| type == Material.RABBIT
|| type == Material.SALMON
|| type == Material.COOKED_BEEF
|| type == Material.COOKED_CHICKEN
|| type == Material.COOKED_COD
|| type == Material.COOKED_MUTTON
|| type == Material.COOKED_PORKCHOP
|| type == Material.COOKED_RABBIT
|| type == Material.COOKED_SALMON)
&& ((Wolf) entity).isTamed();
case OCELOT:
return (type == Material.SALMON
|| type == Material.COD
|| type == Material.PUFFERFISH
|| type == Material.TROPICAL_FISH)
&& ((Ocelot) entity).isTamed();
case RABBIT:
return type == Material.CARROT || type == Material.GOLDEN_CARROT || type == Material.DANDELION;
case LLAMA:
return type == Material.HAY_BLOCK;
case TURTLE:
return type == Material.SEAGRASS;
}
return false;
}
示例6
@Override
protected boolean init(final @Nullable Class<? extends Ocelot> c, final @Nullable Ocelot e) {
if (TAMEABLE)
tamed = e == null ? 0 : ((Tameable) e).isTamed() ? 1 : -1;
return true;
}
示例7
@Override
public void set(final Ocelot entity) {
if (TAMEABLE) {
((Tameable) entity).setTamed(tamed != 0);
}
}
示例8
@Override
protected boolean match(final Ocelot entity) {
return tamed == 0 || ((Tameable) entity).isTamed() == (tamed == 1);
}
示例9
@Override
public Class<? extends Ocelot> getType() {
return Ocelot.class;
}
示例10
@Override
public void setCatType(int type) {
getBukkitEntity().setCatType(Ocelot.Type.getType(type));
}
示例11
@Override
public Ocelot getBukkitEntity() {
return (Ocelot) super.getBukkitEntity();
}
示例12
@Override
public Entity toEntity(Location loc) {
World world = loc.getWorld();
GameWorld gameWorld = plugin.getGameWorld(world);
if (gameWorld == null) {
return null;
}
LivingEntity entity = (LivingEntity) world.spawnEntity(loc, type);
/* Set the Items */
entity.getEquipment().setItemInHand(itemHand);
entity.getEquipment().setHelmet(itemHelmet);
entity.getEquipment().setChestplate(itemChestplate);
entity.getEquipment().setLeggings(itemLeggings);
entity.getEquipment().setBoots(itemBoots);
/* Check mob specified stuff */
if (type == EntityType.SKELETON) {
if (witherSkeleton) {
((Skeleton) entity).setSkeletonType(SkeletonType.WITHER);
} else {
((Skeleton) entity).setSkeletonType(SkeletonType.NORMAL);
}
}
if (type == EntityType.OCELOT) {
Ocelot ocelot = (Ocelot) entity;
if (EnumUtil.isValidEnum(Ocelot.Type.class, ocelotType.toUpperCase())) {
ocelot.setCatType(Ocelot.Type.valueOf(ocelotType.toUpperCase()));
}
}
/* Set Health */
if (maxHealth > 0) {
entity.setMaxHealth(maxHealth);
entity.setHealth(maxHealth);
}
/* Disable Despawning */
entity.setRemoveWhenFarAway(false);
/* Spawn Mob */
new DMob(entity, gameWorld, this);
return entity;
}
示例13
/**
* Displays a hologram, and automatically delete it after a given delay.
*
* @param player
* @param owner
* @param tameable
*/
@SuppressWarnings("deprecation")
private void displayHologramAndMessage(Player player, AnimalTamer owner, Tameable tameable) {
if (hologramMessage) {
double offset = HORSE_OFFSET;
if (tameable instanceof Ocelot || version >= 14 && tameable instanceof Cat) {
if (!displayCat || !player.hasPermission("petmaster.showowner.cat")) {
return;
}
offset = CAT_OFFSET;
} else if (tameable instanceof Wolf) {
if (!displayDog || !player.hasPermission("petmaster.showowner.dog")) {
return;
}
offset = DOG_OFFSET;
} else if (version >= 11 && tameable instanceof Llama) {
if (!displayLlama || !player.hasPermission("petmaster.showowner.llama")) {
return;
}
offset = LLAMA_OFFSET;
} else if (version >= 12 && tameable instanceof Parrot) {
if (!displayParrot || !player.hasPermission("petmaster.showowner.parrot")) {
return;
}
offset = PARROT_OFFSET;
} else if (!displayHorse || !player.hasPermission("petmaster.showowner.horse")) {
return;
}
Location eventLocation = tameable.getLocation();
// Create location with offset.
Location hologramLocation = new Location(eventLocation.getWorld(), eventLocation.getX(),
eventLocation.getY() + offset, eventLocation.getZ());
final Hologram hologram = HologramsAPI.createHologram(plugin, hologramLocation);
hologram.appendTextLine(
ChatColor.GRAY + plugin.getPluginLang().getString("petmaster-hologram", "Pet owned by ")
+ ChatColor.GOLD + owner.getName());
// Runnable to delete hologram.
new BukkitRunnable() {
@Override
public void run() {
hologram.delete();
}
}.runTaskLater(plugin, hologramDuration);
}
String healthInfo = "";
if (showHealth) {
Animals animal = (Animals) tameable;
String currentHealth = String.format("%.1f", animal.getHealth());
String maxHealth = version < 9 ? String.format("%.1f", animal.getMaxHealth())
: String.format("%.1f", animal.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue());
healthInfo = ChatColor.GRAY + ". " + plugin.getPluginLang().getString("petmaster-health", "Health: ")
+ ChatColor.GOLD + currentHealth + "/" + maxHealth;
}
if (chatMessage) {
player.sendMessage(plugin.getChatHeader() + plugin.getPluginLang().getString("petmaster-chat", "Pet owned by ")
+ ChatColor.GOLD + owner.getName() + healthInfo);
}
if (actionBarMessage) {
try {
FancyMessageSender.sendActionBarMessage(player, "&o" + ChatColor.GRAY
+ plugin.getPluginLang().getString("petmaster-action-bar", "Pet owned by ") + ChatColor.GOLD
+ owner.getName() + healthInfo);
} catch (Exception e) {
plugin.getLogger().warning("Errors while trying to display action bar message for pet ownership.");
}
}
}
示例14
public Ocelot.Type getCatType();
示例15
public void setCatType(Ocelot.Type t);
示例16
public Ocelot.Type getCatType();
示例17
public void setCatType(Ocelot.Type t);