public void trigger(WorldServer world, BlockPos pos, ItemStack wand) { List<ICriterionTrigger.Listener<Instance>> list = new ArrayList<>(); for(ICriterionTrigger.Listener<AlfPortalTrigger.Instance> listener : this.listeners) { if(listener.getCriterionInstance().test(world, pos, wand)) { list.add(listener); } } for(ICriterionTrigger.Listener<AlfPortalTrigger.Instance> listener : list) { listener.grantCriterion(this.playerAdvancements); } } }
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 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 @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(); } }
private static <T extends ICriterionInstance> ICriterionTrigger<T> registerAdvancementTrigger(ICriterionTrigger<T> trigger) { CriteriaTriggers.register(trigger); return trigger; } }
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 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); }
@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 boolean isValidAdvancement(String advancement) { return ADVANCEMENT_LIST.getAdvancement(new ResourceLocation(advancement)) != null; }
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); // } }
@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 void trigger(EntityPlayerMP player, EntityDoppleganger guardian, DamageSource src) { List<Listener<Instance>> list = new ArrayList<>(); for(Listener<DopplegangerNoArmorTrigger.Instance> listener : this.listeners) { if(listener.getCriterionInstance().test(player, guardian, src)) { list.add(listener); } } for(Listener<DopplegangerNoArmorTrigger.Instance> listener : list) { listener.grantCriterion(this.playerAdvancements); } } }
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); }
private static <T extends ICriterionTrigger> T register(T trigger) { return CriteriaTriggers.register(trigger); }
this.mc.displayGuiScreen(gui); ResourceLocation tab = new ResourceLocation(LibMisc.MOD_ID, "main/root"); gui.setSelectedTab(mc.player.connection.getAdvancementManager().getAdvancementList().getAdvancement(tab));
public void trigger(EntityPlayerMP player, ItemStack stack, WorldServer world, double x, double y, double z) { List<Listener<Instance>> list = new ArrayList<>(); for(Listener<UseItemSuccessTrigger.Instance> listener : this.listeners) { if(listener.getCriterionInstance().test(stack, world, x, y, z)) { list.add(listener); } } for(Listener<UseItemSuccessTrigger.Instance> listener : list) { listener.grantCriterion(this.playerAdvancements); } } }
@EventHandler public void preInit(FMLPreInitializationEvent event) { gardenOfGlassLoaded = Loader.isModLoaded("gardenofglass"); thaumcraftLoaded = Loader.isModLoaded("thaumcraft"); bcApiLoaded = Loader.isModLoaded("buildcraftlib"); bloodMagicLoaded = Loader.isModLoaded("bloodmagic"); // Psh, noob coloredLightsLoaded = Loader.isModLoaded("easycoloredlights"); etFuturumLoaded = Loader.isModLoaded("etfuturum"); BotaniaAPI.internalHandler = new InternalMethodHandler(); ConfigHandler.loadConfig(event.getSuggestedConfigurationFile()); PacketHandler.init(); ModEntities.init(); ModBrews.init(); ModMultiblocks.init(); if(Botania.gardenOfGlassLoaded) new WorldTypeSkyblock(); CriteriaTriggers.register(AlfPortalTrigger.INSTANCE); CriteriaTriggers.register(CorporeaRequestTrigger.INSTANCE); CriteriaTriggers.register(DopplegangerNoArmorTrigger.INSTANCE); CriteriaTriggers.register(RelicBindTrigger.INSTANCE); CriteriaTriggers.register(UseItemSuccessTrigger.INSTANCE); proxy.preInit(event); }
public void trigger(WorldServer world, BlockPos pos, int count) { List<Listener<Instance>> list = new ArrayList<>(); for(Listener<CorporeaRequestTrigger.Instance> listener : this.listeners) { if(listener.getCriterionInstance().test(world, pos, count)) { list.add(listener); } } for(Listener<CorporeaRequestTrigger.Instance> listener : list) { listener.grantCriterion(this.playerAdvancements); } } }
public void trigger(ItemStack stack) { List<Listener<Instance>> list = new ArrayList<>(); for(Listener<RelicBindTrigger.Instance> listener : this.listeners) { if(listener.getCriterionInstance().test(stack)) { list.add(listener); } } for(Listener<RelicBindTrigger.Instance> listener : list) { listener.grantCriterion(this.playerAdvancements); } } }
public void trigger( EntityPlayerMP player ) { List<ICriterionTrigger.Listener<AppEngAdvancementTrigger.Instance>> list = null; for( ICriterionTrigger.Listener<AppEngAdvancementTrigger.Instance> listener : this.listeners ) { if( listener.getCriterionInstance().test() ) { if( list == null ) { list = new ArrayList<>(); } list.add( listener ); } } if( list != null ) { for( ICriterionTrigger.Listener<AppEngAdvancementTrigger.Instance> l : list ) { l.grantCriterion( this.playerAdvancements ); } } } }