package gtPlusPlus.core.handler; import java.lang.reflect.Field; import cpw.mods.fml.common.eventhandler.EventPriority; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import gtPlusPlus.core.util.Utils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.stats.AchievementList; import net.minecraftforge.event.entity.player.AchievementEvent; public class StopAnnoyingFuckingAchievements { /** * Stops me getting fireworks every fucking time I open my inventory upon first loading a dev client. * @param event */ @SubscribeEvent(priority=EventPriority.HIGHEST) public void FUCK_OFF(AchievementEvent event) { if (Utils.isClient()) { doClientStuff(); } if (event.achievement.equals(AchievementList.openInventory)) { event.setCanceled(true); } } @SideOnly(Side.CLIENT) private final void doClientStuff() { Class aMC = ReflectionUtils.getClass("net.minecraft.client.Minecraft"); if (aMC != null) { Field aInstanceMC = ReflectionUtils.getField(aMC, "theMinecraft"); Object aMcObj = ReflectionUtils.getFieldValue(null, aInstanceMC); Class aClazz2 = aMcObj.getClass(); if (aClazz2 != null) { Field aGameSettings = ReflectionUtils.getField(aClazz2, "gameSettings"); Object aGameSettingsObj = ReflectionUtils.getFieldValue(aInstanceMC, aGameSettings); Class aClazz3 = aGameSettingsObj.getClass(); if (aClazz2 != null) { Field ainvHint = ReflectionUtils.getField(aClazz3, "showInventoryAchievementHint"); ReflectionUtils.setField(aGameSettingsObj, ainvHint, false); } } } } }