Немного рефактора
This commit is contained in:
@@ -6,6 +6,9 @@ import java.io.IOException;
|
|||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ЭТОТ КЛАСС РАБОТАЕТ НЕ ТРОГАТЬ ТОТ КТО БУДЕТ ЧИТАТЬ
|
||||||
public class Instance {
|
public class Instance {
|
||||||
private final String name;
|
private final String name;
|
||||||
private final Path path;
|
private final Path path;
|
||||||
@@ -13,7 +16,7 @@ public class Instance {
|
|||||||
private String minecraftVersion;
|
private String minecraftVersion;
|
||||||
private String loaderType; // vanilla, fabric, forge
|
private String loaderType; // vanilla, fabric, forge
|
||||||
private String loaderVersion;
|
private String loaderVersion;
|
||||||
private String assetIndex; // ← ЭТО САМОЕ ВАЖНОЕ
|
private String assetIndex;
|
||||||
|
|
||||||
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
|
private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
|
||||||
|
|
||||||
|
|||||||
@@ -21,15 +21,12 @@ public class MinecraftLib {
|
|||||||
this.instance = instance;
|
this.instance = instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Очистка
|
|
||||||
|
|
||||||
|
|
||||||
//Установка
|
//Установка
|
||||||
public boolean installMinecraft(String versionId) throws Exception {
|
public boolean installMinecraft(String versionId) throws Exception {
|
||||||
VersionInstaller installer = new VersionInstaller(instance.getPath());
|
VersionInstaller installer = new VersionInstaller(instance.getPath());
|
||||||
|
|
||||||
String assetIndex = installer.install(versionId); // ← теперь возвращается String
|
String assetIndex = installer.install(versionId); // ← теперь возвращается String
|
||||||
|
|
||||||
if (assetIndex != null && !assetIndex.isEmpty()) {
|
if (assetIndex != null && !assetIndex.isEmpty()) {
|
||||||
instance.setMinecraftVersion(versionId);
|
instance.setMinecraftVersion(versionId);
|
||||||
instance.setAssetIndex(assetIndex); // ← сохраняем правильный индекс!
|
instance.setAssetIndex(assetIndex); // ← сохраняем правильный индекс!
|
||||||
|
|||||||
+9
-5
@@ -132,15 +132,15 @@ public class LaunchCommandBuilder {
|
|||||||
|
|
||||||
private String buildClasspath() throws Exception {
|
private String buildClasspath() throws Exception {
|
||||||
List<String> paths = new ArrayList<>();
|
List<String> paths = new ArrayList<>();
|
||||||
|
|
||||||
String versionId = getVersionId(); // ← используем getVersionId()
|
String versionId = getVersionId(); // ← используем getVersionId()
|
||||||
|
|
||||||
// Добавляем основной jar
|
// Добавляем основной jar
|
||||||
Path versionJar = instance.getPath()
|
Path versionJar = instance.getPath()
|
||||||
.resolve("versions")
|
.resolve("versions")
|
||||||
.resolve(versionId)
|
.resolve(versionId)
|
||||||
.resolve(versionId + ".jar");
|
.resolve(versionId + ".jar");
|
||||||
|
|
||||||
if (Files.exists(versionJar)) {
|
if (Files.exists(versionJar)) {
|
||||||
paths.add(versionJar.toAbsolutePath().toString());
|
paths.add(versionJar.toAbsolutePath().toString());
|
||||||
} else {
|
} else {
|
||||||
@@ -154,7 +154,7 @@ public class LaunchCommandBuilder {
|
|||||||
paths.add(fallbackJar.toAbsolutePath().toString());
|
paths.add(fallbackJar.toAbsolutePath().toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Все библиотеки
|
// Все библиотеки
|
||||||
Path librariesDir = instance.getPath().resolve("libraries");
|
Path librariesDir = instance.getPath().resolve("libraries");
|
||||||
if (Files.exists(librariesDir)) {
|
if (Files.exists(librariesDir)) {
|
||||||
@@ -164,11 +164,13 @@ public class LaunchCommandBuilder {
|
|||||||
.forEach(paths::add);
|
.forEach(paths::add);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String separator = System.getProperty("os.name").toLowerCase().contains("win") ? ";" : ":";
|
String separator = System.getProperty("os.name").toLowerCase().contains("win") ? ";" : ":";
|
||||||
return String.join(separator, paths);
|
return String.join(separator, paths);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: бля ктонить помогите с этим говном, я рот шатал, форджу не нравится то как я его запускаю
|
||||||
private String buildForgeClasspath() throws Exception {
|
private String buildForgeClasspath() throws Exception {
|
||||||
List<String> paths = new ArrayList<>();
|
List<String> paths = new ArrayList<>();
|
||||||
|
|
||||||
@@ -300,6 +302,7 @@ public class LaunchCommandBuilder {
|
|||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO: сделать это говно удобнее
|
||||||
private List<String> getForgeArguments(LaunchOptions options) {
|
private List<String> getForgeArguments(LaunchOptions options) {
|
||||||
List<String> args = new ArrayList<>();
|
List<String> args = new ArrayList<>();
|
||||||
|
|
||||||
@@ -350,6 +353,7 @@ public class LaunchCommandBuilder {
|
|||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//не трогать, оно работает
|
||||||
private String getVersionId() {
|
private String getVersionId() {
|
||||||
String loaderType = instance.getLoaderType().toLowerCase();
|
String loaderType = instance.getLoaderType().toLowerCase();
|
||||||
String mcVersion = instance.getMinecraftVersion();
|
String mcVersion = instance.getMinecraftVersion();
|
||||||
|
|||||||
Reference in New Issue
Block a user