/** * Change the owner of a pet. * * @param event * @param oldOwner * @param newOwner */ private void changeOwner(PlayerInteractEntityEvent event, AnimalTamer oldOwner, Player newOwner) { if (chargePrice(event.getPlayer(), changeOwnerPrice)) { Tameable tameableAnimal = (Tameable) event.getRightClicked(); // Change owner. tameableAnimal.setOwner(newOwner); event.getPlayer().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", event.getPlayer().getName())); // Create new event to allow other plugins to be aware of the ownership change. PlayerChangeAnimalOwnershipEvent playerChangeAnimalOwnershipEvent = new PlayerChangeAnimalOwnershipEvent( oldOwner, newOwner, tameableAnimal); Bukkit.getServer().getPluginManager().callEvent(playerChangeAnimalOwnershipEvent); } }
/** * Frees a pet; it will no longer be tamed. * * @param event * @param oldOwner */ private void freePet(PlayerInteractEntityEvent event, AnimalTamer oldOwner) { if (chargePrice(event.getPlayer(), freePetPrice)) { Tameable tameableAnimal = (Tameable) event.getRightClicked(); // Free pet. tameableAnimal.setTamed(false); // Make freed pet stand up. if (version >= 12 && tameableAnimal instanceof Sittable) { ((Sittable) tameableAnimal).setSitting(false); } else if (tameableAnimal instanceof Wolf) { ((Wolf) tameableAnimal).setSitting(false); } else if (tameableAnimal instanceof Ocelot) { ((Ocelot) tameableAnimal).setSitting(false); } event.getPlayer().sendMessage(plugin.getChatHeader() + plugin.getPluginLang().getString("pet-freed", "Say goodbye: this pet returned to the wild!")); // Create new event to allow other plugins to be aware of the freeing. PlayerChangeAnimalOwnershipEvent playerChangeAnimalOwnershipEvent = new PlayerChangeAnimalOwnershipEvent( oldOwner, null, tameableAnimal); Bukkit.getServer().getPluginManager().callEvent(playerChangeAnimalOwnershipEvent); } }
public static void disownPets(String animalTamer) { for (TameableModel wrapper : findByTamer(animalTamer)) { if (wrapper.getEntity() == null) continue; ((Tameable) wrapper.getEntity()).setOwner(new AnimalTamer() { @Override public String getName() { return "Disowned"; } @Override public UUID getUniqueId() { return null; } }); } }
@EventHandler public void onEntityTame(EntityTameEvent event) { if (!plugin.getConfig().getBoolean("events.tamed")) { return; } AnimalTamer owner = event.getOwner(); if (!(owner instanceof Player)) { return; } Player player = (Player) owner; message.sendMessage(event.getEntity(), player, Message.EventType.tamed); }
@Override public void setOwner(AnimalTamer owner) { if (owner != null) { setTamed(true); getHandle().setPathToEntity(null); setOwnerUUID(owner.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
public AnimalTamer getOwner() { if (getOwnerUUID() == null) { return null; } AnimalTamer owner = getServer().getPlayer(getOwnerUUID()); if (owner == null) { owner = getServer().getOfflinePlayer(getOwnerUUID()); } return owner; }
public void setOwner(AnimalTamer tamer) { if (tamer != null) { setTamed(true); getHandle().setPathToEntity(null); setOwnerUUID(tamer.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
@Override public void alarm(Integer key) { // kill our summon Entity e = getEntity(); if (e == null) { QuestManagerPlugin.logger.warning("Unable to locate and remove " + "summon!"); } else { if (entity instanceof Tameable) { Tameable me = (Tameable) entity; AnimalTamer tamer = me.getOwner(); if (tamer instanceof Player) { QuestPlayer qp = QuestManagerPlugin.questManagerPlugin.getPlayerManager().getPlayer( (Player) tamer); if (qp.getOptions().getOption(PlayerOptions.Key.CHAT_PET_DISMISSAL)) { ((Player) tamer).sendMessage(DEATH_MESSAGE); } } } e.getLocation().getChunk().load(); e.remove(); playDeathEffect(e.getLocation()); } effect.stop(); QuestManagerPlugin.questManagerPlugin.getSummonManager().unregisterSummon(this); }
@EventHandler public void onEntityDeath(EntityDeathEvent e) { if (e.getEntity().getUniqueId().equals(entityID)) { //is summon entity effect.stop(); if (Alarm.getScheduler().unregister(this)) { QuestManagerPlugin.questManagerPlugin.getSummonManager().unregisterSummon(this); if (entity instanceof Tameable) { Tameable me = (Tameable) entity; AnimalTamer tamer = me.getOwner(); if (tamer instanceof Player) { QuestPlayer qp = QuestManagerPlugin.questManagerPlugin.getPlayerManager().getPlayer( (Player) tamer); if (qp.getOptions().getOption(PlayerOptions.Key.CHAT_PET_DISMISSAL)) { ((Player) tamer).sendMessage(DEATH_MESSAGE); } } } } return; } }
@Override public void setOwner(AnimalTamer owner) { if (owner != null) { setTamed(true); getHandle().setPathEntity(null); setOwnerUUID(owner.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
public void setOwner(AnimalTamer tamer) { if (tamer != null) { setTamed(true); getHandle().setPathEntity(null); setOwnerUUID(tamer.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
@Override public void setOwner(AnimalTamer owner) { if (owner != null) { setTamed(true); getHandle().setGoalTarget(null, null, false); setOwnerUUID(owner.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
public void setOwner(AnimalTamer tamer) { if (tamer != null) { setTamed(true); getHandle().setGoalTarget(null, null, false); setOwnerUUID(tamer.getUniqueId()); } else { setTamed(false); setOwnerUUID(null); } }
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event) { // On Minecraft versions from 1.9 onwards, this event is fired twice, one for each hand. Need additional check. if (version >= 9 && event.getHand() != EquipmentSlot.HAND) { return; } if (!(event.getRightClicked() instanceof Tameable) || ((Tameable) event.getRightClicked()).getOwner() == null || !plugin.getEnableDisableCommand().isEnabled()) { return; } AnimalTamer currentOwner = ((Tameable) event.getRightClicked()).getOwner(); // Has the player clicked on one of his own pets? boolean isOwner = event.getPlayer().getName().equals(currentOwner.getName()); // Retrieve new owner from the map and delete corresponding entry. Player newOwner = plugin.getSetOwnerCommand().collectPendingSetOwnershipRequest(event.getPlayer()); // Has the player requested to free one of his pets? boolean freePet = plugin.getFreeCommand().collectPendingFreeRequest(event.getPlayer()); // Cannot change ownership or free pet if not owner and no bypass permission. if ((newOwner != null || freePet) && !isOwner && !event.getPlayer().hasPermission("petmaster.admin")) { event.getPlayer().sendMessage(plugin.getChatHeader() + plugin.getPluginLang() .getString("not-owner", "You do not own this pet!").replace("PLAYER", event.getPlayer().getName())); return; } if (newOwner != null) { changeOwner(event, currentOwner, newOwner); } else if (freePet) { freePet(event, currentOwner); } else if ((displayToOwner || !isOwner) && event.getPlayer().hasPermission("petmaster.showowner")) { displayHologramAndMessage(event, currentOwner); } }
@Override public void setOwner(AnimalTamer owner) { if (owner != null && !"".equals(owner.getName())) { setTamed(true); getHandle().setPathEntity(null); setOwnerName(owner.getName()); } else { setTamed(false); setOwnerName(""); } }
public AnimalTamer getOwner() { if (("").equals(getOwnerName())) return null; AnimalTamer owner = getServer().getPlayerExact(getOwnerName()); if (owner == null) { owner = getServer().getOfflinePlayer(getOwnerName()); } return owner; }
public void setOwner(AnimalTamer tamer) { if (tamer != null) { setTamed(true); getHandle().setPathEntity(null); setOwnerName(tamer.getName()); } else { setTamed(false); setOwnerName(""); } }