/** * Copyright (c) Lambda Innovation, 2013-2016 * This file is part of the AcademyCraft mod. * https://github.com/LambdaInnovation/AcademyCraft * Licensed under GPLv3, see project root for more information. */ package cn.academy.misc.achievements; import cn.academy.core.AcademyCraft; import cn.academy.misc.achievements.aches.ACAchievement; import cn.academy.misc.achievements.pages.*; import cn.lambdalib.annoreg.core.Registrant; import cn.lambdalib.annoreg.mc.RegInitCallback; import cn.lambdalib.annoreg.mc.RegItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.common.AchievementPage; /** * @author EAirPeter */ @Registrant public final class ModuleAchievements { private static PageDefault pageDefault; private static PageCtElectromaster pageCtElectromaster; private static PageCtMeltdowner pageCtMeltdowner; private static PageCtTeleporter pageCtTeleporter; private static PageCtVecmanip pageCtVecmanip; @RegItem @RegItem.HasRender public static ItemAchievement DUMMY_ITEM; @RegInitCallback private static void init() { DispatcherAch.init(); AchievementPage.registerAchievementPage(pageDefault = new PageDefault()); AchievementPage.registerAchievementPage(pageCtElectromaster = new PageCtElectromaster()); AchievementPage.registerAchievementPage(pageCtMeltdowner = new PageCtMeltdowner()); AchievementPage.registerAchievementPage(pageCtTeleporter = new PageCtTeleporter()); AchievementPage.registerAchievementPage(pageCtVecmanip = new PageCtVecmanip()); } /** * Trigger an achievement * @param player The player * @param achid The id of the achievement * @return true if succeeded */ public static boolean trigger(EntityPlayer player, String achid) { ACAchievement ach = ACAchievement.getById(achid); if (ach == null) { AcademyCraft.log.warn("AC Achievement '" + achid + "' does not exist"); return false; } player.triggerAchievement(ach); return true; } }