/******************************************************************************************************************* * Authors: SanAndreasP * Copyright: SanAndreasP * License: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International * http://creativecommons.org/licenses/by-nc-sa/4.0/ *******************************************************************************************************************/ package de.sanandrew.core.manpack.init; import cpw.mods.fml.relauncher.IFMLLoadingPlugin; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.DependsOn; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.MCVersion; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.SortingIndex; import cpw.mods.fml.relauncher.IFMLLoadingPlugin.TransformerExclusions; import de.sanandrew.core.manpack.mod.ModCntManPack; import de.sanandrew.core.manpack.transformer.*; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import java.io.File; import java.net.URISyntaxException; import java.util.Map; @SortingIndex( 1001 ) @MCVersion( ManPackLoadingPlugin.MC_VERSION ) @DependsOn( "forge" ) @TransformerExclusions( { "de.sanandrew.core.manpack.transformer", "de.sanandrew.core.manpack.init" } ) public class ManPackLoadingPlugin implements IFMLLoadingPlugin { public static final String MC_VERSION = "1.7.10"; public static final String MOD_ID = "sapmanpack"; public static final Logger MOD_LOG = LogManager.getLogger(MOD_ID); public static final String MOD_VERSION = "2.6.0"; public static File source; @Override public String getAccessTransformerClass() { return null; } @Override public String[] getASMTransformerClass() { return new String[] { TransformEntityThrowable.class.getName(), TransformPlayerDismountCtrl.class.getName(), TransformHorseArmor.class.getName(), TransformEnderman.class.getName(), TransformEntityCollision.class.getName(), AnnotationChecker.class.getName() // KEEP THIS AS LAST }; } @Override public String getModContainerClass() { return ModCntManPack.class.getName(); } @Override public String getSetupClass() { return null; } /** * Code from diesieben07 in here. * Thanks ~SanAndreasP */ @Override public void injectData(Map<String, Object> data) { ASMHelper.isMCP = !(Boolean) data.get("runtimeDeobfuscationEnabled"); source = (File) data.get("coremodLocation"); if( source == null ) { // this is usually in a dev env try { source = new File(getClass().getProtectionDomain().getCodeSource().getLocation().toURI()); if( !(new File(source, "assets")).exists() ) { // fix for IntelliJ source = new File(source.getParentFile().getParentFile(), "resources/main"); } } catch( URISyntaxException e ) { throw new RuntimeException("Failed to acquire source location for SAPManPack!", e); } } } }