package sk.tomsik68.mclauncher.impl.versions.mcassets; import net.minidev.json.JSONObject; import net.minidev.json.JSONStyle; import sk.tomsik68.mclauncher.api.common.ILaunchSettings; import sk.tomsik68.mclauncher.api.common.MCLauncherAPI; import sk.tomsik68.mclauncher.api.common.mc.MinecraftInstance; import sk.tomsik68.mclauncher.api.login.ISession; import sk.tomsik68.mclauncher.api.mods.IModdingProfile; import sk.tomsik68.mclauncher.api.servers.ServerInfo; import sk.tomsik68.mclauncher.api.versions.IVersion; import sk.tomsik68.mclauncher.api.versions.IVersionLauncher; import java.io.File; import java.util.ArrayList; import java.util.List; @Deprecated public final class MCAssetsVersionLauncher implements IVersionLauncher { @Override public List<String> getLaunchCommand(ISession session, MinecraftInstance mc, ServerInfo server, IVersion version, ILaunchSettings settings, IModdingProfile mods) throws Exception { MCAJarManager jarManager = new MCAJarManager(mc); // get path to this jar, so that we can relaunch String pathToJar = Relauncher.class.getProtectionDomain().getCodeSource().getLocation().getFile(); List<String> command = new ArrayList<String>(); // add command prefix from settings if (settings.getCommandPrefix() != null && !settings.getCommandPrefix().isEmpty()) command.addAll(settings.getCommandPrefix()); // setup java location if present if (settings.getJavaLocation() == null) command.add("java"); else command.add(settings.getJavaLocation().getAbsolutePath()); // add java arguments if (settings.getJavaArguments() != null && !settings.getJavaArguments().isEmpty()) command.addAll(settings.getJavaArguments()); // set memory for java command.add("-Xms".concat(settings.getInitHeap())); command.add("-Xmx".concat(settings.getHeap())); // setup classpath command.add("-cp"); //// this jar command.add(pathToJar); command.add(Relauncher.class.getName()); // parameters for relauncher: //// username command.add("-un"); command.add(session.getUsername()); //// session id command.add("-sid"); command.add(session.getSessionID()); //// game directory command.add("-dir"); command.add(mc.getLocation().toString()); //// game jar command.add("-jar"); command.add(jarManager.getVersionFile(version).getPath()); //// natives File[] files = MCAssetsVersionInstaller.getDefaultLWJGLJars(mc.getLocation()); command.add("-lib"); StringBuilder sb = new StringBuilder(); for (File file : files) { sb = sb.append(file.getPath()).append(';'); } if (sb.length() > 0) sb = sb.deleteCharAt(sb.length() - 1); command.add(sb.toString()); //// custom parameters for relauncher if (settings.getCustomParameters() != null && settings.getCustomParameters().size() > 0) { JSONObject params = new JSONObject(settings.getCustomParameters()); command.add("-args"); command.add(params.toJSONString(JSONStyle.NO_COMPRESS)); } //// multiplayer server if (server != null) { command.add("-mp"); command.add(server.getIP() + ":" + server.getPort()); } //// modify applet options if (settings.isModifyAppletOptions()) { command.add("-ap"); command.add("true"); } //// native library path command.add("-lwjgl"); command.add(jarManager.getNativesDirectory().getAbsolutePath()); command.add("-jlibpath"); command.add(jarManager.getNativesDirectory().getAbsolutePath()); // warn dev if they want to use mods on this if(mods != null){ MCLauncherAPI.log.warning("You're trying to use mods with MCAssets version. MCAssets versions are deprecated, so mods won't load correctly."); } return command; } }