package sk.tomsik68.mclauncher.api.mods; import java.io.File; import java.util.List; /** * Describes current set of mods that will be injected into JAR file */ public interface IModdingProfile { /** * Returns <code>separator</code>-separated list of absolute paths to JAR files that will be injected before libraries * @param separator - String used to separate files * @return Null for none. */ public File[] injectBeforeLibs(String separator); /** * Returns <code>separator</code>-separated list of absolute paths to JAR files that will be injected after libraries * @param separator - String used to separate files * @return Null for none. */ public File[] injectAfterLibs(String separator); /** * Checks if this library should be loaded with our mods. * @param libraryName - Name of library to test * @return True if specified library may be injected along with all vanilla libraries */ public boolean isLibraryAllowed(String libraryName); /** * * @return Custom game JAR file to use. If you don't want to change it, return null */ public File getCustomGameJar(); /** * * @return Name of main class to use while launching Minecraft. */ public String getMainClass(); /** * Minecraft arguments are arguments that will be available in minecraft's main method. * These contain mostly user information, but also assets path, saves path etc, which might be useful... * @param minecraftArguments Array of minecraft arguments created by launcher * @return Array of string which is formatted in the same way as the input array. If you don't want to make any changes, return null or <code>minecraftArguments</code> */ public String[] changeMinecraftArguments(String[] minecraftArguments); /** * * @return List of parameters that will be appended after all parameters to launch the JAR. These most likely won't influence the launching process, but you may find it useful... */ public List<String> getLastParameters(); }