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()); } }
@SubscribeEvent public void onAchievement(AdvancementEvent event) { final @Nonnull Advancement advancement = NullHelper.notnullF(event.getAdvancement(), "AdvancementEvent.getAdvancement()"); DisplayInfo display = advancement.getDisplay(); if (ConfigHandler.betterAchievements && !event.getEntity().world.isRemote && display != null && display.shouldAnnounceToChat()) { event.getEntityPlayer().getEntityData().setInteger("fireworksLeft", 9); event.getEntityPlayer().getEntityData().setBoolean("fireworkDelay", false); } }
public static void init() { MANAPOOL = new Advancement( new ResourceLocation(Wizardry.MODID, "advancement.manapool"), null, new DisplayInfo( new ItemStack(ModItems.ORB), new TextComponentTranslation("wizardry.advancement.begin.name"), new TextComponentTranslation("wizardry.advancement.begin.desc"), null, FrameType.GOAL, true, true, false), AdvancementRewards.EMPTY, new HashMap<>(), new String[0][0]); // ModAdvancement("manapool", 1, -2, ModItems.ORB, null); // BOOK = new ModAdvancement("book", 3, 0, ModItems.BOOK, MANAPOOL); // DEVILDUST = new ModAdvancement("devildust", -1, 0, ModItems.DEVIL_DUST, null); // CRUNCH = new ModAdvancement("crunch", 1, 2, Blocks.BEDROCK, null); // // PAGE = new AchievementPage(Wizardry.MODNAME, ModAdvancement.achievements.toArray(new Achievement[ModAdvancement.achievements.size()])); // AchievementPage.registerAchievementPage(PAGE); // } }
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(""); }
@SubscribeEvent public static void onAdvancement(AdvancementEvent event) { if(event.getEntityPlayer() instanceof EntityPlayerMP) { EntityPlayerMP player = (EntityPlayerMP) event.getEntityPlayer(); buildSyncSet(player); if(syncedAdvancements.contains(event.getAdvancement().getId())) syncPlayer(player, true); } }
public GuiAdvancementsExt(ClientAdvancementManager manager, GuiScreen parent, String tab) { super(manager); this.parent = parent; Advancement start = manager.getAdvancementList().getAdvancement(new ResourceLocation(tab, "root")); if(start != null && ClientAdvancements.hasDone(start.getId().toString())) manager.setSelectedTab(start, false); }