public static void grantCriterion(EntityPlayerMP player, ResourceLocation advancementId, String criterion) { PlayerAdvancements advancements = player.getAdvancements(); AdvancementManager manager = player.getServerWorld().getAdvancementManager(); Advancement advancement = manager.getAdvancement(advancementId); if(advancement != null) { advancements.grantCriterion(advancement, criterion); } }
private static void buildSyncSet(EntityPlayerMP player) { if(syncedAdvancements == null) { AdvancementManager manager = player.getServer().getAdvancementManager(); Iterable<Advancement> allAdvancements = manager.getAdvancements(); syncedAdvancements = new ArrayList<>(); for(Advancement a : allAdvancements) if(trackedNamespaces.contains(a.getId().getResourceDomain())) syncedAdvancements.add(a.getId()); } }
public GuiEditMenuAdvancement (GuiQuestBook gui, QuestTaskAdvancement task, final QuestTaskAdvancement.AdvancementTask advancement, int id, EntityPlayer player) { super(gui, player, false, 180, 70, 180, 150); this.task = task; this.advancement = advancement; this.id = id; scrollBar = new ScrollBar(160, 18, 186, 171, 69, START_X) { @Override public boolean isVisible(GuiBase gui) { return advancementNames.size() > VISIBLE_MOBS; } }; textBoxes.add(new TextBoxGroup.TextBox(gui, "", 250, 18, false) { @Override public void textChanged(GuiBase gui) { super.textChanged(gui); updateAdvancements(getText()); } }); rawAdvancemenNames = new ArrayList<>(); advancementNames = new ArrayList<>(); // Just using this to gain access to the advancement manager WorldServer world = DimensionManager.getWorld(0); for (Advancement a: world.getAdvancementManager().getAdvancements()) { String adv = a.getId().toString(); rawAdvancemenNames.add(adv); advancementNames.add(adv); } Collections.sort(advancementNames); updateAdvancements(""); }
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; }
@Override public Advancement getAdvancementOnPickup(ItemStack stack, EntityPlayer player, EntityItem item) { MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance(); return server.getAdvancementManager().getAdvancement(new ResourceLocation(Wizardry.MODID, "advancements/advancement_devildust.json")); }
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); }
Advancement advAdvancement = manager.getAdvancement(advResource);
Advancement advancement = server.getAdvancementManager().getAdvancement(new ResourceLocation(Wizardry.MODID, "advancements/advancement_crunch.json")); if (advancement == null) return; AdvancementProgress progress = ((EntityPlayerMP) entity).getAdvancements().getProgress(advancement);