@Override public String[] getUpgradeMessage() { return new String[]{ Util.formatText(Translation.getString("Message.Skill.Behavior.Upgrade", myPet.getOwner().getLanguage()), myPet.getPetName()), " " + toPrettyString(myPet.getOwner().getLanguage()) }; }
public void schedule() { if (myPet.getStatus() == PetState.Here) { if (heal.getValue().doubleValue() > 0) { if (timeCounter-- <= 0) { if (myPet.getHealth() < myPet.getMaxHealth()) { if (!particles) { particles = true; myPet.getEntity().get().getHandle().showPotionParticles(Color.LIME); } myPet.getEntity().get().setHealth(myPet.getHealth() + heal.getValue().doubleValue()); } timeCounter = timer.getValue(); } else { particles = false; } } if (particles) { particles = false; myPet.getEntity().get().getHandle().hidePotionParticles(); } } else if (particles) { particles = false; } }
public void schedule() { if (selectedBehavior == Aggressive && random.nextBoolean() && myPet.getStatus() == MyPet.PetState.Here) { MyPetApi.getPlatformHelper().playParticleEffect(myPet.getLocation().get().add(0, myPet.getEntity().get().getEyeHeight(), 0), ParticleCompat.VILLAGER_ANGRY.get(), 0.2F, 0.2F, 0.2F, 0.5F, 1, 20); } }
@Override public String[] getUpgradeMessage() { return new String[]{ Util.formatText(Translation.getString("Message.Skill.Hp.Upgrade", myPet.getOwner().getLanguage()), myPet.getPetName(), myPet.getMaxHealth()) }; }
public double getExpByLevel(int level) { double exp; try { exp = cache.getExp(myPet.getWorldGroup(), myPet.getPetType(), level); } catch (ExperienceCache.LevelNotCalculatedException e) { exp = expCalculator.getExpByLevel(this.getMyPet(), level); cache.insertExp(myPet.getWorldGroup(), myPet.getPetType(), level, exp); } return exp; }
if (isMyPet() && myPet.getOwner().equals(entityhuman)) { if (Configuration.Skilltree.Skill.Ride.RIDE_ITEM.compare(itemStack)) { if (myPet.getSkills().isActive(RideImpl.class) && canMove()) { if (Permissions.hasExtended(owner, "MyPet.extended.ride")) { ((CraftPlayer) owner).getHandle().mount(this); return true; } else { getOwner().sendMessage(Translation.getString("Message.No.CanUse", myPet.getOwner())); if (myPet.getSkills().isActive(ControlImpl.class)) { return true; if (Permissions.has(getOwner(), "MyPet.command.name") && Permissions.hasExtended(getOwner(), "MyPet.extended.nametag")) { final String name = itemStack.getName(); getMyPet().setPetName(name); EntityMyPet.super.setCustomName("-"); myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Command.Name.New", myPet.getOwner()), name)); if (!entityhuman.abilities.canInstantlyBuild) { --itemStack.count; double saturation = Configuration.HungerSystem.HUNGER_SYSTEM_SATURATION_PER_FEED; if (saturation > 0) { if (myPet.getSaturation() < 100) { MyPetFeedEvent feedEvent = new MyPetFeedEvent(getMyPet(), CraftItemStack.asCraftMirror(itemStack), saturation, MyPetFeedEvent.Result.Eat); Bukkit.getPluginManager().callEvent(feedEvent); if (!feedEvent.isCancelled()) { saturation = feedEvent.getSaturation(); double missingSaturation = 100 - myPet.getSaturation(); myPet.setSaturation(myPet.getSaturation() + saturation);
@Override public boolean shouldStart() { Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (!behaviorSkill.isActive() || behaviorSkill.getBehavior() != BehaviorMode.Farm) { return false; } if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false; } if (!petEntity.canMove()) { return false; } if (petEntity.hasTarget()) { return false; } for (Object entityObj : this.petEntity.world.a(EntityMonster.class, this.petOwnerEntity.boundingBox.grow((double) range, (double) range, (double) range))) { EntityMonster entityMonster = (EntityMonster) entityObj; if (!entityMonster.isAlive() || petEntity.f(entityMonster) > 91) { continue; } if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), entityMonster.getBukkitEntity())) { continue; } this.target = entityMonster; return true; } return false; }
public void apply(EntityDamageEvent event) { double redirectedDamage = calculateRedirectedDamage(event.getFinalDamage()); if (myPet.getStatus() == PetState.Here && myPet.getHealth() - redirectedDamage > 0) { myPet.getEntity().get().damage(redirectedDamage); event.setDamage(event.getDamage() - redirectedDamage); myPet.getEntity().get().getHandle().makeSound(SoundCompat.ENDERMAN_TELEPORT.get(), 0.2F, 1.0F); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getOwner().getPlayer().getLocation().add(0, 1, 0), ParticleCompat.CRIT_MAGIC.get(), 0.5F, 0.5F, 0.5F, 0.1F, 20, 20); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getLocation().get().add(0, 1, 0), ParticleCompat.CRIT.get(), 0.5F, 0.5F, 0.5F, 0.1F, 10, 20); } }
public MyPetPlayer getOwner() { return myPet.getOwner(); }
public void schedule() { MyPetInventoryActionEvent event = new MyPetInventoryActionEvent(myPet, MyPetInventoryActionEvent.Action.Use); Bukkit.getServer().getPluginManager().callEvent(event); if (pickup && (event.isCancelled() || !Permissions.hasExtended(myPet.getOwner().getPlayer(), "MyPet.extended.pickup"))) { pickup = false; myPet.getOwner().sendMessage(Util.formatText(Translation.getString(("Message.Skill.Pickup.StartStop"), myPet.getOwner().getPlayer()), myPet.getPetName(), Translation.getString("Name.Disabled", myPet.getOwner()))); return; if (pickup && myPet.getOwner().getPlayer().getGameMode() == GameMode.CREATIVE && !Configuration.Skilltree.Skill.Inventory.OPEN_IN_CREATIVE && !Permissions.has(myPet.getOwner().getPlayer(), "MyPet.admin", false)) { myPet.getOwner().sendMessage(Translation.getString("Message.Skill.Pickup.Creative", myPet.getOwner())); pickup = false; return; if (isActive() && pickup && myPet.getStatus() == PetState.Here && myPet.getSkills().isActive(BackpackImpl.class)) { double range = this.range.getValue().doubleValue(); for (Entity entity : myPet.getEntity().get().getNearbyEntities(range, range, range)) { if (!entity.isDead()) { if (entity instanceof Item) { PlayerPickupItemEvent playerPickupEvent = new PlayerPickupItemEvent(myPet.getOwner().getPlayer(), itemEntity, 0); Bukkit.getServer().getPluginManager().callEvent(playerPickupEvent); CustomInventory inv = myPet.getSkills().get(BackpackImpl.class).getInventory(); int itemAmount = inv.addItem(itemStack); if (itemAmount == 0) { MyPetApi.getPlatformHelper().doPickupAnimation(myPet.getEntity().get(), itemEntity); myPet.getEntity().get().getHandle().makeSound(SoundCompat.ITEM_PICKUP.get(), 0.2F, 1.0F); itemStack.setAmount(0); itemEntity.remove();
public void schedule() { if (myPet.getStatus() == MyPet.PetState.Here && isActive() && active && selectedBuffs.size() != 0 && --beaconTimer <= 0) { beaconTimer = 2; range *= (Math.log10(myPet.getSaturation()) / 2); MyPetApi.getPlatformHelper().playParticleEffect(myPet.getLocation().get().add(0, 1, 0), ParticleCompat.SPELL_WITCH.get(), 0.2F, 0.2F, 0.2F, 0.1F, 5, 20); members = MyPetApi.getHookHelper().getPartyMembers(getMyPet().getOwner().getPlayer()); Location myPetLocation = this.myPet.getLocation().get(); targetLoop: for (Player player : myPetLocation.getWorld().getPlayers()) { if (!myPet.getOwner().equals(player)) { continue targetLoop; } else { myPet.decreaseSaturation(1); hungerDecreaseTimer = Configuration.Skilltree.Skill.Beacon.HUNGER_DECREASE_TIME;
public boolean activate() { if (isActive()) { if (myPet.getSkills().isActive(BackpackImpl.class)) { if (pickup) { pickup = false; } else { MyPetInventoryActionEvent event = new MyPetInventoryActionEvent(myPet, MyPetInventoryActionEvent.Action.Pickup); Bukkit.getServer().getPluginManager().callEvent(event); if (!event.isCancelled()) { pickup = true; } } String mode = pickup ? Translation.getString("Name.Enabled", myPet.getOwner()) : Translation.getString("Name.Disabled", myPet.getOwner()); myPet.getOwner().sendMessage(Util.formatText(Translation.getString(("Message.Skill.Pickup.StartStop"), myPet.getOwner()), myPet.getPetName(), mode)); return true; } else { myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skill.Pickup.NoInventory", myPet.getOwner()), myPet.getPetName())); return false; } } else { myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.No.Skill", myPet.getOwner()), myPet.getPetName(), this.getName(myPet.getOwner().getLanguage()))); return false; } }
public boolean activate() { if (rows.getValue().intValue() > 0) { if (myPet.getOwner().getPlayer().isSleeping()) { myPet.getOwner().sendMessage(Translation.getString("Message.No.CanUse", myPet.getOwner())); return false; } if (myPet.getOwner().getPlayer().getGameMode() == GameMode.CREATIVE && !Configuration.Skilltree.Skill.Inventory.OPEN_IN_CREATIVE && !Permissions.has(myPet.getOwner().getPlayer(), "MyPet.admin", false)) { myPet.getOwner().sendMessage(Translation.getString("Message.Skill.Inventory.Creative", myPet.getOwner())); return false; } MyPetInventoryActionEvent event = new MyPetInventoryActionEvent(myPet, MyPetInventoryActionEvent.Action.Open); Bukkit.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) { myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.No.AllowedHere", myPet.getOwner()), myPet.getPetName())); return false; } if (!myPet.getLocation().get().getBlock().isLiquid()) { openInventory(myPet.getOwner().getPlayer()); return true; } else { myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skill.Inventory.Swimming", myPet.getOwner()), myPet.getPetName())); return false; } } else { myPet.getOwner().sendMessage(Util.formatText(Translation.getString("Message.Skill.Inventory.NotAvailable", myPet.getOwner()), myPet.getPetName())); return false; } }
@Override public boolean shouldFinish() { if (!this.myPet.getEntity().get().canMove()) { return true; } ControlImpl controlSkill = myPet.getSkills().get(ControlImpl.class); if (!controlSkill.getActive().getValue()) { return true; } if (moveTo == null) { return true; } if (MyPetApi.getPlatformHelper().distance(myPet.getLocation().get(), moveTo) < 1) { return true; } if (timeToMove <= 0) { return true; } if (this.stopControl) { return true; } return false; }
@Override public boolean shouldStart() { Behavior behaviorSkill = myPet.getSkills().get(Behavior.class); if (!behaviorSkill.isActive() || behaviorSkill.getBehavior() != BehaviorMode.Duel) { return false; if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false; if (!targetMyPet.getSkills().isActive(BehaviorImpl.class) || !targetMyPet.getEntity().get().canMove()) { continue; BehaviorImpl targetbehavior = targetMyPet.getSkills().get(BehaviorImpl.class); if (targetbehavior.getBehavior() != BehaviorMode.Duel) { continue; if (targetMyPet.getDamage() == 0) { continue;
public void apply(LivingEntity target) { Player owner = myPet.getOwner().getPlayer(); isStriking = true; Location loc = target.getLocation(); MyPetApi.getPlatformHelper().strikeLightning(loc, 32); for (Entity entity : myPet.getEntity().get().getNearbyEntities(1.5, 1.5, 1.5)) { if (entity instanceof LivingEntity && entity != owner) { ((LivingEntity) entity).damage(damage.getValue().doubleValue(), myPet.getEntity().get()); } } isStriking = false; }
Ride rideSkill = myPet.getSkills().get(RideImpl.class); if (rideSkill == null || !rideSkill.getActive().getValue()) { this.passenger.mount(null); double factor = Math.log10(myPet.getSaturation()) / 2; speed *= factor; jumpHeight *= factor; if (dX != 0 || dY != 0 || dZ != 0) { double distance = Math.sqrt(dX * dX + dY * dY + dZ * dZ); myPet.decreaseSaturation(Configuration.Skilltree.Skill.Ride.HUNGER_PER_METER * distance);
public EntityMyPet(World world, MyPet myPet) { super(world); try { setSize(); this.myPet = myPet; this.petPathfinderSelector = new AIGoalSelector(); this.petTargetSelector = new AIGoalSelector(); this.walkSpeed = MyPetApi.getMyPetInfo().getSpeed(myPet.getPetType()); this.getAttributeInstance(GenericAttributes.d).setValue(walkSpeed); this.getAttributeInstance(GenericAttributes.b).setValue(32.0f); this.petNavigation = new VanillaNavigation(this); this.sitPathfinder = new Sit(this); this.getAttributeInstance(GenericAttributes.maxHealth).setValue(myPet.getMaxHealth()); this.setHealth((float) myPet.getHealth()); this.updateNameTag(); this.setPathfinder(); this.updateVisuals(); this.isMyPet = true; } catch (Exception e) { e.printStackTrace(); } }
/** * Is called when a MyPet attemps to do damge to another entity */ public boolean attack(Entity entity) { boolean damageEntity = false; try { double damage = isMyPet() ? myPet.getDamage() : 0; if (entity instanceof EntityPlayer) { Player victim = (Player) entity.getBukkitEntity(); if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), victim, true)) { if (myPet.hasTarget()) { setGoalTarget(null); } return false; } } damageEntity = entity.damageEntity(DamageSource.mobAttack(this), (float) damage); } catch (Exception e) { e.printStackTrace(); } return damageEntity; }
@Override public boolean shouldStart() { if (myPet.getDamage() <= 0 && myPet.getRangedDamage() <= 0) { return false; Player targetPlayer = (Player) target.getBukkitEntity(); if (targetPlayer == myPet.getOwner().getPlayer()) { return false; } else if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), targetPlayer, true)) { return false; if (!MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), targetMyPet.getOwner().getPlayer(), true)) { return false; if (tameable.isTamed() && tameable.getOwner() != null) { Player tameableOwner = (Player) tameable.getOwner().getBukkitEntity(); if (myPet.getOwner().equals(tameableOwner)) { return false; return MyPetApi.getHookHelper().canHurt(myPet.getOwner().getPlayer(), target.getBukkitEntity());