public static boolean findClassInStackTrace(StackTraceElement[] stackTrace, String className) { return findClassInStackTrace(stackTrace, className, 0, stackTrace.length - 1, false); }
public String toPrettyString(String locale) { return Util.formatText(Translation.getString("Message.Skill.Ranged.RoundsPerMinute", locale), String.format("%1.2f", (1. / ((rateOfFire.getValue() * 50.) / 1000.)) * 60.)) + " -> " + ChatColor.GOLD + damage.getValue().doubleValue() + ChatColor.RESET + " " + Translation.getString("Name.Damage", locale); }
public void setSize(int size) { this.size = Util.clamp(size, 0, 64); for (int i = items.size(); i < this.size; i++) { items.add(i, null); } }
menu.setOption(4, new IconMenuItem() .setMaterial(EMERALD_BLOCK) .setTitle(Util.formatText(Translation.getString("Message.Skill.Beacon.Effect", myPet.getOwner()), GREEN + Translation.getString("Name.On", myPet.getOwner()))) .addLoreLine(RESET + Translation.getString("Message.Skill.Beacon.ClickOff", myPet.getOwner())) ); menu.setOption(4, new IconMenuItem() .setMaterial(REDSTONE_BLOCK) .setTitle(Util.formatText(Translation.getString("Message.Skill.Beacon.Effect", myPet.getOwner()), RED + Translation.getString("Name.Off", myPet.getOwner()))) .addLoreLine(RESET + Translation.getString("Message.Skill.Beacon.ClickOn", myPet.getOwner())) ); .setMaterial(LEATHER_BOOTS) .setAmount(getBuffLevel(Buff.Speed)) .setTitle(GOLD + Translation.getString("Name." + Buff.Speed.getName(), myPet.getOwner()) + GRAY + " " + Util.decimal2roman(getBuffLevel(Buff.Speed)))); .setMaterial(EnumSelector.find(Material.class, "GOLD_PICKAXE", "GOLDEN_PICKAXE")) .setAmount(getBuffLevel(Buff.Haste)) .setTitle(GOLD + Translation.getString("Name." + Buff.Haste.getName(), myPet.getOwner()) + GRAY + " " + Util.decimal2roman(getBuffLevel(Buff.Haste)))); .setMaterial(DIAMOND_SWORD) .setAmount(getBuffLevel(Buff.Strength)) .setTitle(GOLD + Translation.getString("Name." + Buff.Strength.getName(), myPet.getOwner()) + GRAY + " " + Util.decimal2roman(getBuffLevel(Buff.Strength)))); .setMaterial(EnumSelector.find(Material.class, "FIREWORK", "FIREWORK_ROCKET")) .setAmount(getBuffLevel(Buff.JumpBoost)) .setTitle(GOLD + Translation.getString("Name." + Buff.JumpBoost.getName(), myPet.getOwner()) + GRAY + " " + Util.decimal2roman(getBuffLevel(Buff.JumpBoost)))); .setMaterial(APPLE)
@SuppressWarnings("unchecked") public static <T extends Annotation> T getClassAnnotation(Class clazz, Class<T> annotation) { if (annotation != null && clazz != null) { if (clazz == Object.class) { return null; } T a = (T) clazz.getAnnotation(annotation); if (a != null) { return a; } a = getClassAnnotation(clazz.getSuperclass(), annotation); if (a != null) { return a; } for (Class c : clazz.getInterfaces()) { a = getClassAnnotation(c, annotation); if (a != null) { return a; } } } return null; } }
public static <T> void getClassParents(Class clazz, Class<T> type, Set<Class<? extends T>> result) { if (type != null && clazz != null && result != null && clazz != type) { if (clazz == Object.class) { return; } if (type.isAssignableFrom(clazz)) { //noinspection unchecked result.add(clazz); } getClassParents(clazz.getSuperclass(), type, result); for (Class c : clazz.getInterfaces()) { getClassParents(c, type, result); } } }
public static String getMimeType(String fileName) { String extension = Util.getFileExtension(fileName); if (MIME_TYPES.containsKey(extension)) { return MIME_TYPES.get(extension); } return "text/plain"; }
public static boolean findStringInThrowable(Throwable throwable, String string) { for (StackTraceElement el : throwable.getStackTrace()) { if (el.getClassName().contains(string)) { return true; } } return throwable.getCause() != null && findStringInThrowable(throwable.getCause(), string); }
public Skilltree getRandomSkilltree(MyPet pet, Player p) { TreeMap<Double, Skilltree> skilltreeMap = new TreeMap<>(); List<Skilltree> skilltrees = new ArrayList<>(MyPetApi.getSkilltreeManager().getSkilltrees()); double totalWeight = 0; for (Skilltree skilltree : skilltrees) { if (skilltree.getMobTypes().contains(pet.getPetType()) && skilltree.checkRequirements(pet) && skilltree.getWeight() > 0) { skilltreeMap.put(totalWeight, skilltree); totalWeight += skilltree.getWeight(); } } double num = (1 - Util.getRandom().nextDouble()) * totalWeight; num = skilltreeMap.floorKey(num); return skilltreeMap.get(num); }
public String toPrettyString(String locale) { String availableBuffs = ""; for (Buff buff : Buff.values()) { if (getBuffLevel(buff) > 0) { if (!availableBuffs.equalsIgnoreCase("")) { availableBuffs += ", "; } availableBuffs += GOLD + Translation.getString("Name." + buff.getName(), locale); availableBuffs += GRAY + " " + Util.decimal2roman(getBuffLevel(buff)); availableBuffs += ChatColor.RESET; } } return availableBuffs; }
public void updateNameTag() { try { if (getCustomNameVisible()) { String prefix = Configuration.Name.Tag.PREFIX; String suffix = Configuration.Name.Tag.SUFFIX; prefix = prefix.replace("<owner>", getOwner().getName()); prefix = prefix.replace("<level>", "" + getMyPet().getExperience().getLevel()); suffix = suffix.replace("<owner>", getOwner().getName()); suffix = suffix.replace("<level>", "" + getMyPet().getExperience().getLevel()); this.setCustomNameVisible(getCustomNameVisible()); super.setCustomName(Util.cutString(prefix + myPet.getPetName() + suffix, 64)); } } catch (Exception e) { e.printStackTrace(); } }
default String getName() { SkillName sn = Util.getClassAnnotation(this.getClass(), SkillName.class); if (sn != null) { return sn.value(); } return null; }
public Skills(MyPet myPet) { for (Class<? extends Skill> clazz : MyPetApi.getSkillManager().getRegisteredSkills()) { try { Skill skill = MyPetApi.getSkillManager().getNewSkillInstance(clazz, myPet); skills.put(skill.getName(), skill); Set<Class<? extends Skill>> result = new HashSet<>(); Util.getClassParents(clazz, Skill.class, result); for (Class<? extends Skill> c : result) { skillClasses.put(c, skill); } } catch (Exception e) { e.printStackTrace(); } } }
public String toPrettyString(String locale) { return Util.formatText(Translation.getString("Message.Skill.Shield.Format", locale), myPet.getPetName(), chance.getValue(), redirectedDamage.getValue().doubleValue()); }
public static boolean findClassInStackTrace(StackTraceElement[] stackTrace, String className, int element) { return findClassInStackTrace(stackTrace, className, element, element, false); }
/** * Returns the name of the service * * @return name of the service */ default String getServiceName() { ServiceName sn = Util.getClassAnnotation(this.getClass(), ServiceName.class); if (sn != null) { return sn.value(); } return getClass().getName(); } }
double jumpHeight = Util.clamp(1 + rideSkill.getJumpHeight().getValue().doubleValue(), 0, 10);
@Override public String[] getUpgradeMessage() { return new String[]{ Util.formatText(Translation.getString("Message.Skill.Pickup.Upgrade", myPet.getOwner().getLanguage()), myPet.getPetName(), String.format("%1.2f", getRange().getValue().doubleValue())) }; }
public ItemStack getEquipment(int i) { if (Util.findClassInStackTrace(Thread.currentThread().getStackTrace(), "net.minecraft.server." + MyPetApi.getCompatUtil().getInternalVersion() + ".EntityTrackerEntry", 2)) { EquipmentSlot slot = EquipmentSlot.getSlotById(i); if (getMyPet().getEquipment(slot) != null) { return CraftItemStack.asNMSCopy(getMyPet().getEquipment(slot)); } } return super.getEquipment(i); } }
default String getName(String locale) { SkillName sn = Util.getClassAnnotation(this.getClass(), SkillName.class); if (sn != null) { if (sn.translationNode().equalsIgnoreCase("")) { return sn.value(); } else { String translatedName = Translation.getString(sn.translationNode(), locale); if (translatedName.equals(sn.translationNode())) { return sn.value(); } else { return translatedName; } } } return null; }