EOD Progress Push
This commit is contained in:
parent
92fcaf4af5
commit
5a620749d3
@ -7,9 +7,4 @@
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="openjdk-17" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
<component name="SwUserDefinedSpecifications">
|
||||
<option name="specTypeByUrl">
|
||||
<map />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
@ -25,7 +25,7 @@ tasks.withType(JavaCompile) {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'me.carleslc.Simple-YAML:Simple-Yaml:1.7.3'
|
||||
implementation 'me.carleslc.Simple-YAML:Simple-Yaml:1.8'
|
||||
implementation 'com.google.code.gson:gson:2.9.0'
|
||||
implementation 'net.arikia.dev:drpc:1.0'
|
||||
implementation 'commons-io:commons-io:2.11.0'
|
||||
|
@ -63,7 +63,7 @@ public class Config {
|
||||
YML_FILE.setComment("launcher.verbose", "If true, will print out all the messages");
|
||||
YML_FILE.addDefault("launcher.version", JAML.VERSION);
|
||||
YML_FILE.set("launcher.version", JAML.VERSION);
|
||||
YML_FILE.setComment("launcher.version", "Jaml version, don't change it!");
|
||||
YML_FILE.setComment("launcher.version", "JAML version, don't change it!");
|
||||
|
||||
try {
|
||||
YML_FILE.save();
|
||||
|
@ -1,9 +1,14 @@
|
||||
package tech.nevets.jaml;
|
||||
|
||||
import tech.nevets.jaml.events.LaunchEvent;
|
||||
import tech.nevets.jaml.objects.Profile;
|
||||
import tech.nevets.jaml.objects.Version;
|
||||
import tech.nevets.jaml.util.CacheUtils;
|
||||
import tech.nevets.jaml.util.ProfileUtils;
|
||||
import tech.nevets.jaml.util.VersionUtils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.ArrayList;
|
||||
@ -13,6 +18,7 @@ public class Launcher {
|
||||
private int memoryAmount;
|
||||
private String garbageCollection;
|
||||
private boolean printConsole;
|
||||
private final Profile profile = ProfileUtils.getActiveProfile();
|
||||
//TODO add progressbar for launch progress
|
||||
//TODO add console output option
|
||||
|
||||
@ -53,7 +59,7 @@ public class Launcher {
|
||||
|
||||
public void launch() {
|
||||
try {
|
||||
ArrayList<String> commandArray = parseCommand(jdkVersion, memoryAmount, garbageCollection);
|
||||
ArrayList<String> commandArray = parseCommand(jdkVersion, memoryAmount, "1.19", garbageCollection);
|
||||
|
||||
StringBuilder sb = new StringBuilder();
|
||||
|
||||
@ -62,16 +68,16 @@ public class Launcher {
|
||||
sb.append(" ");
|
||||
}
|
||||
|
||||
String command = sb.toString();
|
||||
String command2 = sb.toString();
|
||||
|
||||
System.out.println(command);
|
||||
System.out.println(command2);
|
||||
|
||||
LaunchEvent e = new LaunchEvent();
|
||||
e.triggerEvent();
|
||||
|
||||
ProcessBuilder processBuilder = new ProcessBuilder();
|
||||
processBuilder.directory(ProfileUtils.activeProfile.getGamePath());
|
||||
processBuilder.command(command);
|
||||
processBuilder.command(command2);
|
||||
Process process = processBuilder.start();
|
||||
|
||||
if (printConsole) {
|
||||
@ -84,23 +90,51 @@ public class Launcher {
|
||||
}
|
||||
}
|
||||
|
||||
public static ArrayList<String> parseCommand(int jdkVersion, int memoryAmount, String garbageCollection) {
|
||||
public static ArrayList<String> parseCommand(int jdkVersion, int memoryAmount, String version, String garbageCollection) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if (new File(JAML.path + "/cache/" + version + ".json").exists()) {
|
||||
String[] libs = CacheUtils.getCache(version);
|
||||
for (String lib : libs) {
|
||||
if (lib.contains("linux") || lib.contains("unix") || lib.contains("mac")) {
|
||||
continue;
|
||||
}
|
||||
sb.append("libraries/");
|
||||
sb.append(lib);
|
||||
sb.append(";");
|
||||
}
|
||||
sb.setLength(sb.length() - 1);
|
||||
} else {
|
||||
VersionUtils.getLibs();
|
||||
String[] libs = CacheUtils.getCache(version);
|
||||
for (String lib : libs) {
|
||||
if (lib.contains("linux") || lib.contains("unix") || lib.contains("mac")) {
|
||||
continue;
|
||||
}
|
||||
sb.append("libraries/");
|
||||
sb.append(lib);
|
||||
sb.append(";");
|
||||
}
|
||||
sb.setLength(sb.length() - 1);
|
||||
}
|
||||
ArrayList<String> cmd = new ArrayList<>();
|
||||
if (jdkVersion == 8) {
|
||||
cmd.add((Config.getConfig().getString("java.jdk8") + "\\java.exe\""));
|
||||
cmd.add((Config.getConfig().getString("java.jdk8") + "/java.exe\""));
|
||||
} else if (jdkVersion == 16) {
|
||||
cmd.add((Config.getConfig().getString("java.jdk16") + "\\java.exe\""));
|
||||
cmd.add((Config.getConfig().getString("java.jdk16") + "/java.exe\""));
|
||||
} else if (jdkVersion == 17) {
|
||||
cmd.add((Config.getConfig().getString("java.jdk17") + "\\java.exe\""));
|
||||
cmd.add((Config.getConfig().getString("java.jdk17") + "/java.exe\""));
|
||||
}
|
||||
|
||||
cmd.add(("-Xmx" + memoryAmount + "M"));
|
||||
cmd.add(("-Xms" + memoryAmount + "M"));
|
||||
//cmd.add((garbageCollection));
|
||||
cmd.add("-Dlog4j2.formatMsgNoLookups=true -Dlog4j.configurationFile=assets\\log_configs\\client-1.12.xml");
|
||||
cmd.add("-Djava.library.path=versions\\1.18.1\\natives\" \"-cp\" \"libraries\\com\\mojang\\blocklist\\1.0.6\\blocklist-1.0.6.jar;libraries\\com\\mojang\\patchy\\2.1.6\\patchy-2.1.6.jar;libraries\\com\\github\\oshi\\oshi-core\\5.8.2\\oshi-core-5.8.2.jar;libraries\\net\\java\\dev\\jna\\jna\\5.9.0\\jna-5.9.0.jar;libraries\\net\\java\\dev\\jna\\jna-platform\\5.9.0\\jna-platform-5.9.0.jar;libraries\\org\\slf4j\\slf4j-api\\1.8.0-beta4\\slf4j-api-1.8.0-beta4.jar;libraries\\org\\apache\\logging\\log4j\\log4j-slf4j18-impl\\2.14.1\\log4j-slf4j18-impl-2.14.1.jar;libraries\\com\\ibm\\icu\\icu4j\\69.1\\icu4j-69.1.jar;libraries\\com\\mojang\\javabridge\\1.2.24\\javabridge-1.2.24.jar;libraries\\net\\sf\\jopt-simple\\jopt-simple\\5.0.4\\jopt-simple-5.0.4.jar;libraries\\io\\netty\\netty-all\\4.1.68.Final\\netty-all-4.1.68.Final.jar;libraries\\com\\google\\guava\\failureaccess\\1.0.1\\failureaccess-1.0.1.jar;libraries\\com\\google\\guava\\guava\\31.0.1-jre\\guava-31.0.1-jre.jar;libraries\\org\\apache\\commons\\commons-lang3\\3.12.0\\commons-lang3-3.12.0.jar;libraries\\commons-io\\commons-io\\2.11.0\\commons-io-2.11.0.jar;libraries\\commons-codec\\commons-codec\\1.15\\commons-codec-1.15.jar;libraries\\com\\mojang\\brigadier\\1.0.18\\brigadier-1.0.18.jar;libraries\\com\\mojang\\datafixerupper\\4.0.26\\datafixerupper-4.0.26.jar;libraries\\com\\google\\code\\gson\\gson\\2.8.8\\gson-2.8.8.jar;libraries\\com\\mojang\\authlib\\3.2.38\\authlib-3.2.38.jar;libraries\\org\\apache\\commons\\commons-compress\\1.21\\commons-compress-1.21.jar;libraries\\org\\apache\\httpcomponents\\httpclient\\4.5.13\\httpclient-4.5.13.jar;libraries\\commons-logging\\commons-logging\\1.2\\commons-logging-1.2.jar;libraries\\org\\apache\\httpcomponents\\httpcore\\4.4.14\\httpcore-4.4.14.jar;libraries\\it\\unimi\\dsi\\fastutil\\8.5.6\\fastutil-8.5.6.jar;libraries\\org\\apache\\logging\\log4j\\log4j-api\\2.14.1\\log4j-api-2.14.1.jar;libraries\\org\\apache\\logging\\log4j\\log4j-core\\2.14.1\\log4j-core-2.14.1.jar;libraries\\org\\lwjgl\\lwjgl\\3.2.2\\lwjgl-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-jemalloc\\3.2.2\\lwjgl-jemalloc-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-openal\\3.2.2\\lwjgl-openal-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-opengl\\3.2.2\\lwjgl-opengl-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-glfw\\3.2.2\\lwjgl-glfw-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-stb\\3.2.2\\lwjgl-stb-3.2.2.jar;libraries\\org\\lwjgl\\lwjgl-tinyfd\\3.2.2\\lwjgl-tinyfd-3.2.2.jar;libraries\\com\\mojang\\text2speech\\1.11.3\\text2speech-1.11.3.jar;versions\\1.18.1\\1.18.1.jar\"");
|
||||
cmd.add(garbageCollection);
|
||||
cmd.add("-Dlog4j2.formatMsgNoLookups=true");
|
||||
cmd.add("-Dlog4j.configurationFile=assets/log_configs/client-1.12.xml");
|
||||
cmd.add("-Djava.library.path=versions/" + version + "/natives");
|
||||
cmd.add("-cp");
|
||||
cmd.add(sb.toString());
|
||||
cmd.add("net.minecraft.client.main.Main");
|
||||
cmd.add("--username Name --version 1.18.1 --gameDir . --assetsDir assets --assetIndex 1.18 --uuid 0f28983a46ce33b1aed45cdc95bf44c3 --accessToken 00000000000000000000000000000000 --clientId 0000 --xuid 0000 --userType mojang --versionType release");
|
||||
cmd.add("--username " + "SteveO718" + " --version " + version + " --gameDir . --assetsDir assets --assetIndex 1.18 --uuid 0f28983a46ce33b1aed45cdc95bf44c3 --accessToken 00000000000000000000000000000000 --clientId 0000 --xuid 0000 --userType mojang --versionType release");
|
||||
|
||||
return cmd;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@ public class NewProfileGui extends JFrame {
|
||||
sl_contentPane.putConstraint(SpringLayout.SOUTH, versionLabel, 129, SpringLayout.NORTH, contentPane);
|
||||
sl_contentPane.putConstraint(SpringLayout.EAST, versionLabel, 94, SpringLayout.WEST, contentPane);
|
||||
contentPane.add(versionLabel);
|
||||
JComboBox versionField = new JComboBox(versions.toArray(new String[versions.size()]));
|
||||
JComboBox<String> versionField = new JComboBox<>(versions.toArray(new String[versions.size()]));
|
||||
sl_contentPane.putConstraint(SpringLayout.NORTH, versionField, 102, SpringLayout.NORTH, contentPane);
|
||||
sl_contentPane.putConstraint(SpringLayout.WEST, versionField, 94, SpringLayout.WEST, contentPane);
|
||||
sl_contentPane.putConstraint(SpringLayout.SOUTH, versionField, 125, SpringLayout.NORTH, contentPane);
|
||||
@ -102,7 +102,7 @@ public class NewProfileGui extends JFrame {
|
||||
sl_contentPane.putConstraint(SpringLayout.EAST, loaderLabel, 94, SpringLayout.WEST, contentPane);
|
||||
contentPane.add(loaderLabel);
|
||||
|
||||
JComboBox loaderDropdown = new JComboBox(LoaderUtils.getLoaders());
|
||||
JComboBox<String> loaderDropdown = new JComboBox<>(LoaderUtils.getLoaders());
|
||||
sl_contentPane.putConstraint(SpringLayout.NORTH, loaderDropdown, 144, SpringLayout.NORTH, contentPane);
|
||||
sl_contentPane.putConstraint(SpringLayout.WEST, loaderDropdown, 94, SpringLayout.WEST, contentPane);
|
||||
sl_contentPane.putConstraint(SpringLayout.SOUTH, loaderDropdown, 167, SpringLayout.NORTH, contentPane);
|
||||
|
@ -13,10 +13,10 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class CacheUtils {
|
||||
public static final String CACHE_PATH = JAML.path + "\\cache\\";
|
||||
public static final String CACHE_PATH = JAML.path + "/cache/";
|
||||
public static void generateCache(String cacheName) {
|
||||
try {
|
||||
File file = new File(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
File file = new File(CACHE_PATH + "/" + cacheName + ".json");
|
||||
if (!file.exists()) {
|
||||
file.createNewFile();
|
||||
}
|
||||
@ -27,7 +27,7 @@ public class CacheUtils {
|
||||
|
||||
public static void writeCache(String cacheName, String[] values) {
|
||||
try {
|
||||
Writer writer = new FileWriter(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
Writer writer = new FileWriter(CACHE_PATH + "/" + cacheName + ".json");
|
||||
|
||||
GsonBuilder builder = new GsonBuilder();
|
||||
builder.setPrettyPrinting();
|
||||
@ -44,7 +44,7 @@ public class CacheUtils {
|
||||
|
||||
public static void addToCache(String cacheName, String value) {
|
||||
try {
|
||||
File cacheFile = new File(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
File cacheFile = new File(CACHE_PATH + "/" + cacheName + ".json");
|
||||
|
||||
if (!cacheFile.exists()) {
|
||||
generateCache(cacheName);
|
||||
@ -71,7 +71,7 @@ public class CacheUtils {
|
||||
|
||||
public static void addToCache(String cacheName, String[] values) {
|
||||
try {
|
||||
File cacheFile = new File(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
File cacheFile = new File(CACHE_PATH + "/" + cacheName + ".json");
|
||||
|
||||
if (!cacheFile.exists()) {
|
||||
generateCache(cacheName);
|
||||
@ -100,7 +100,7 @@ public class CacheUtils {
|
||||
|
||||
public static void removeFromCache(String cacheName, String value) {
|
||||
try {
|
||||
File cacheFile = new File(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
File cacheFile = new File(CACHE_PATH + "/" + cacheName + ".json");
|
||||
String[] cacheArray = new Gson().fromJson(FileUtils.readFileToString(cacheFile, StandardCharsets.UTF_8), String[].class);
|
||||
ArrayList<String> cacheArrayList;
|
||||
|
||||
@ -120,7 +120,7 @@ public class CacheUtils {
|
||||
|
||||
public static String[] getCache(String cacheName) {
|
||||
try {
|
||||
File cacheFile = new File(CACHE_PATH + "\\" + cacheName + ".json");
|
||||
File cacheFile = new File(CACHE_PATH + "/" + cacheName + ".json");
|
||||
|
||||
if (!cacheFile.exists()) {
|
||||
generateCache(cacheName);
|
||||
|
@ -64,7 +64,7 @@ public class VersionUtils {
|
||||
public static void downloadList() {
|
||||
try {
|
||||
URL versionManifestUrl = new URL("https://launchermeta.mojang.com/mc/game/version_manifest.json");
|
||||
FileUtils.copyURLToFile(versionManifestUrl, new File(JAML.path + "\\data\\version.json"));
|
||||
FileUtils.copyURLToFile(versionManifestUrl, new File(JAML.path + "/data/version.json"));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
@ -72,7 +72,7 @@ public class VersionUtils {
|
||||
|
||||
public static JsonObject getList() {
|
||||
try {
|
||||
File versionManifestFile = new File(JAML.path + "\\data\\version.json");
|
||||
File versionManifestFile = new File(JAML.path + "/data/version.json");
|
||||
|
||||
return new Gson().fromJson(FileUtils.readFileToString(versionManifestFile, StandardCharsets.UTF_8), JsonObject.class);
|
||||
} catch (IOException e) {
|
||||
@ -81,13 +81,13 @@ public class VersionUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static void getLibs() {
|
||||
public static ArrayList<String> getLibs() {
|
||||
try {
|
||||
Version version = toVersion(ProfileUtils.getActiveProfile().getVersion());
|
||||
URL versionManifestUrl = version.getUrl();
|
||||
FileUtils.copyURLToFile(versionManifestUrl, new File(JAML.path + "\\data\\" + version.getId() + ".json"));
|
||||
FileUtils.copyURLToFile(versionManifestUrl, new File(JAML.path + "/data/" + version.getId() + ".json"));
|
||||
|
||||
File versionFile = new File(JAML.path + "\\data\\" + version.getId() + ".json");
|
||||
File versionFile = new File(JAML.path + "/data/" + version.getId() + ".json");
|
||||
JsonObject versionJson = new Gson().fromJson(FileUtils.readFileToString(versionFile, StandardCharsets.UTF_8), JsonObject.class);
|
||||
|
||||
JsonArray libsJson = versionJson.getAsJsonArray("libraries");
|
||||
@ -103,6 +103,9 @@ public class VersionUtils {
|
||||
//TODO Account for only native downloads
|
||||
//TODO Implement OS Check and set constants accordingly
|
||||
if (!cache.contains(version.getId())) {
|
||||
ArrayList<String> versionLibs = new ArrayList<>();
|
||||
CacheUtils.generateCache(ProfileUtils.getActiveProfile().getVersion());
|
||||
|
||||
for (int i = 0; i < libsJson.size(); i++) {
|
||||
JsonElement downloads = libsJson.get(i);
|
||||
JsonObject download = downloads.getAsJsonObject().getAsJsonObject("downloads");
|
||||
@ -118,22 +121,28 @@ public class VersionUtils {
|
||||
continue;
|
||||
} else {
|
||||
System.out.println("Something unexpected was in the libraries array...");
|
||||
return;
|
||||
return null;
|
||||
}
|
||||
|
||||
String path = pathJson.getAsString();
|
||||
|
||||
String url = artifact.getAsJsonObject().get("url").toString();
|
||||
|
||||
FileUtils.copyURLToFile(new URL(url.replace("\"", "")), new File((ProfileUtils.getActiveProfile().getGamePath()) + "\\libraries\\" + path));
|
||||
FileUtils.copyURLToFile(new URL(url.replace("\"", "")), new File((ProfileUtils.getActiveProfile().getGamePath()) + "/libraries/" + path));
|
||||
versionLibs.add(path);
|
||||
}
|
||||
|
||||
CacheUtils.addToCache("libs", version.getId());
|
||||
CacheUtils.addToCache(ProfileUtils.getActiveProfile().getVersion(), versionLibs.toArray(new String[versionLibs.size()]));
|
||||
|
||||
return versionLibs;
|
||||
}
|
||||
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user