Немного рефактора

This commit is contained in:
Sashegdev
2026-04-05 18:45:31 +00:00
parent e21fd922ab
commit 3d8313f7d2
3 changed files with 15 additions and 11 deletions
@@ -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); // ← сохраняем правильный индекс!
@@ -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();