类org.bukkit.entity.AnimalTamer源码实例Demo

下面列出了怎么用org.bukkit.entity.AnimalTamer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: PetMaster   文件: PlayerInteractListener.java
/**
 * Change the owner of a pet.
 * 
 * @param player
 * @param oldOwner
 * @param newOwner
 * @param tameable
 */
private void changeOwner(Player player, AnimalTamer oldOwner, Player newOwner, Tameable tameable) {
	if (chargePrice(player, changeOwnerPrice)) {
		// Change owner.
		tameable.setOwner(newOwner);
		player.sendMessage(plugin.getChatHeader()
				+ plugin.getPluginLang().getString("owner-changed", "This pet was given to a new owner!"));
		newOwner.sendMessage(plugin.getChatHeader()
				+ plugin.getPluginLang().getString("new-owner", "Player PLAYER gave you ownership of a pet!")
						.replace("PLAYER", player.getName()));

		// Create new event to allow other plugins to be aware of the ownership change.
		PlayerChangeAnimalOwnershipEvent playerChangeAnimalOwnershipEvent = new PlayerChangeAnimalOwnershipEvent(
				oldOwner, newOwner, tameable);
		Bukkit.getServer().getPluginManager().callEvent(playerChangeAnimalOwnershipEvent);
	}
}
 
源代码2 项目: Kettle   文件: CraftTameableAnimal.java
public AnimalTamer getOwner() {
    if (getOwnerUUID() == null) {
        return null;
    }

    AnimalTamer owner = getServer().getPlayer(getOwnerUUID());
    if (owner == null) {
        owner = getServer().getOfflinePlayer(getOwnerUUID());
    }

    return owner;
}
 
源代码3 项目: Kettle   文件: CraftTameableAnimal.java
public void setOwner(AnimalTamer tamer) {
    if (tamer != null) {
        setTamed(true);
        getHandle().setAttackTarget(null, null, false);
        setOwnerUUID(tamer.getUniqueId());
    } else {
        setTamed(false);
        setOwnerUUID(null);
    }
}
 
源代码4 项目: Kettle   文件: CraftAbstractHorse.java
@Override
public void setOwner(AnimalTamer owner) {
    if (owner != null) {
        setTamed(true);
        getHandle().setAttackTarget(null, null, false);
        setOwnerUUID(owner.getUniqueId());
    } else {
        setTamed(false);
        setOwnerUUID(null);
    }
}
 
源代码5 项目: Thermos   文件: CraftHorse.java
@Override
public void setOwner(AnimalTamer owner) {
    if (owner != null) {
        setTamed(true);
        getHandle().setPathToEntity(null);
        setOwnerUUID(owner.getUniqueId());
    } else {
        setTamed(false);
        setOwnerUUID(null);
    }
}
 
源代码6 项目: Thermos   文件: CraftTameableAnimal.java
public AnimalTamer getOwner() {
    if (getOwnerUUID() == null) {
        return null;
    }

    AnimalTamer owner = getServer().getPlayer(getOwnerUUID());
    if (owner == null) {
        owner = getServer().getOfflinePlayer(getOwnerUUID());
    }

    return owner;
}
 
源代码7 项目: Thermos   文件: CraftTameableAnimal.java
public void setOwner(AnimalTamer tamer) {
    if (tamer != null) {
        setTamed(true);
        getHandle().setPathToEntity(null);
        setOwnerUUID(tamer.getUniqueId());
    } else {
        setTamed(false);
        setOwnerUUID(null);
}
}
 
源代码8 项目: PetMaster   文件: PlayerInteractListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) {
	if (shouldHandleEvent(event)) {
		Tameable tameable = (Tameable) event.getRightClicked();
		AnimalTamer currentOwner = tameable.getOwner();
		if (currentOwner == null || currentOwner.getName() == null) {
			return;
		}
		// Has the player clicked on one of his own pets?
		Player player = event.getPlayer();
		boolean isOwner = player.getUniqueId().equals(currentOwner.getUniqueId());
		// Retrieve new owner from the map and delete corresponding entry.
		Player newOwner = plugin.getSetOwnerCommand().collectPendingSetOwnershipRequest(player);
		// Has the player requested to free one of his pets?
		boolean freePet = plugin.getFreeCommand().collectPendingFreeRequest(player);

		// Cannot change ownership or free pet if not owner and no bypass permission.
		if ((newOwner != null || freePet) && !isOwner && !player.hasPermission("petmaster.admin")) {
			player.sendMessage(plugin.getChatHeader() + plugin.getPluginLang()
					.getString("not-owner", "You do not own this pet!").replace("PLAYER", player.getName()));
			return;
		}

		if (newOwner != null) {
			changeOwner(player, currentOwner, newOwner, tameable);
		} else if (freePet) {
			freePet(player, currentOwner, tameable);
		} else if ((displayToOwner || !isOwner) && player.hasPermission("petmaster.showowner")) {
			displayHologramAndMessage(player, currentOwner, tameable);
		}
	}
}
 
源代码9 项目: Kettle   文件: EntityTameEvent.java
public EntityTameEvent(final LivingEntity entity, final AnimalTamer owner) {
    super(entity);
    this.owner = owner;
}
 
源代码10 项目: Kettle   文件: CraftAbstractHorse.java
@Override
public AnimalTamer getOwner() {
    if (getOwnerUUID() == null) return null;
    return getServer().getOfflinePlayer(getOwnerUUID());
}
 
源代码11 项目: Thermos   文件: CraftHorse.java
@Override
public AnimalTamer getOwner() {
    if (getOwnerUUID() == null) return null;
    return getServer().getOfflinePlayer(getOwnerUUID());
}
 
源代码12 项目: PetMaster   文件: PlayerInteractListener.java
/**
 * 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.");
		}
	}
}
 
源代码13 项目: Kettle   文件: EntityTameEvent.java
/**
 * Gets the owning AnimalTamer
 *
 * @return the owning AnimalTamer
 */
public AnimalTamer getOwner() {
    return owner;
}
 
 类所在包
 类方法
 同包方法