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