@Override @SideOnly(Side.CLIENT) public boolean isVisible() { EntityPlayerSP player = Minecraft.getMinecraft().player; if(advancement == null || player.capabilities.isCreativeMode) { return true; } else { Advancement adv = player.connection.getAdvancementManager().getAdvancementList().getAdvancement(advancement); AdvancementProgress progress = player.connection.getAdvancementManager().advancementToProgress.get(adv); return progress != null && progress.isDone(); } }
if (advancement == null) return; AdvancementProgress progress = ((EntityPlayerMP) entity).getAdvancements().getProgress(advancement); for (String s : progress.getRemaningCriteria()) { ((EntityPlayerMP) entity).getAdvancements().grantCriterion(advancement, s);
private boolean hasRelicAlready(EntityPlayer player, int relic) { if(relic < 0 || relic > relicStacks.length || !(player instanceof EntityPlayerMP)) return true; EntityPlayerMP mpPlayer = (EntityPlayerMP) player; Item item = relicStacks[relic].getItem(); ResourceLocation advId = ((IRelic) item).getAdvancement(); if(advId != null) { Advancement adv = mpPlayer.getServerWorld().getAdvancementManager().getAdvancement(advId); return adv != null && mpPlayer.getAdvancements().getProgress(adv).isDone(); } return false; }
public static void syncPlayer(EntityPlayerMP player, boolean showToast) { PlayerAdvancements advancements = player.getAdvancements(); if(advancements == null) return; AdvancementManager manager = player.getServer().getAdvancementManager(); List<String> completed = new LinkedList<>(); for(ResourceLocation res : syncedAdvancements) { Advancement adv = manager.getAdvancement(res); AdvancementProgress p = advancements.getProgress(adv); if(p.isDone()) completed.add(res.toString()); } String[] completedArr = completed.toArray(new String[0]); NetworkHandler.INSTANCE.sendTo(new MessageSyncAdvancements(completedArr, showToast), player); }
AdvancementProgress progress = playerAdvancements.getProgress(advAdvancement); if (progress.isDone()) { advanced[i] = true; } else {