/** * Awards advancements created by Advanced Achievements. This method can be seen as a synchronisation to give * advancements which were generated after the corresponding achievement was received for a given player. * * @param player */ private void awardAdvancements(Player player) { Advancement advancement = Bukkit.getServer() .getAdvancement(new NamespacedKey(plugin, AdvancementManager.ADVANCED_ACHIEVEMENTS_PARENT)); // If no parent, user has not used /aach generate, do not do anything. if (advancement != null) { AdvancementProgress advancementProgress = player.getAdvancementProgress(advancement); if (!advancementProgress.isDone()) { advancementProgress.awardCriteria(AchievementAdvancement.CRITERIA_NAME); } for (String achName : plugin.getDatabaseManager().getPlayerAchievementNamesList(player.getUniqueId())) { advancement = Bukkit.getServer() .getAdvancement(new NamespacedKey(plugin, AdvancementManager.getKey(achName))); // Matching advancement might not exist if user has not called /aach generate. if (advancement != null) { advancementProgress = player.getAdvancementProgress(advancement); if (!advancementProgress.isDone()) { advancementProgress.awardCriteria(AchievementAdvancement.CRITERIA_NAME); } } } } }
@Override public AdvancementProgress getAdvancementProgress(Advancement advancement) { return implementation.getAdvancementProgress(advancement); }
@Override public AdvancementProgress getAdvancementProgress(Advancement advancement) { // TODO Auto-generated method stub throw new UnimplementedOperationException(); }
/** * Return the number of advancements the player has completed. * @param player * @return count */ private static int getAdvancements(Player player) { List<Advancement> advancements = new ArrayList<>(); Bukkit.advancementIterator().forEachRemaining(advancements::add); return (int) advancements.stream().map(player::getAdvancementProgress).filter(AdvancementProgress::isDone).count(); }
@Override public AdvancementProgress getAdvancementProgress( Advancement advancement ) { return null; }
@Override public AdvancementProgress getAdvancementProgress(Advancement advancement) { return player.getAdvancementProgress(advancement); }
@Override public AdvancementProgress getAdvancementProgress(Advancement advancement) { return null; }
@Override public AdvancementProgress getAdvancementProgress(Advancement arg0) { return null; }
@Override public AdvancementProgress getAdvancementProgress(Advancement advancement) { throw Pokkit.unsupported(); }
@Override public AdvancementProgress getAdvancementProgress(Advancement arg0) { throw new UnsupportedOperationException(); }