Skip to content

Commit

Permalink
Merge pull request #142 from 3arthqu4ke/1.9.5
Browse files Browse the repository at this point in the history
[1.9.5] Fabric command, fallback to java 8 for installer
  • Loading branch information
3arthqu4ke authored Apr 7, 2024
2 parents 79b4be1 + de87b83 commit fa23dab
Show file tree
Hide file tree
Showing 13 changed files with 37 additions and 10 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
project_version=1.9.4
project_version=1.9.5
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
@Getter
@RequiredArgsConstructor
public class Launcher implements HeadlessMc {
public static final String VERSION = "1.9.4";
public static final String VERSION = "1.9.5";

@Delegate
private final HeadlessMc headlessMc;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,6 @@ public interface LauncherProperties extends HmcProperties {
Property<Boolean> ASSETS_CHECK_FILE_HASH = bool("hmc.assets.check.file.hash");
Property<Boolean> ASSETS_BACKOFF = bool("hmc.assets.backoff");

Property<Boolean> SET_LIBRARY_DIR = bool("hmc.set.library.dir");

}
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ private void install(Version version, File jarFile, String... args)
bestVersion = ParseUtil.parseI(javaVersion);
}

val java = ctx.getJavaService().findBestVersion(bestVersion);
Java java = ctx.getJavaService().findBestVersion(bestVersion);
if (java == null) {
java = ctx.getJavaService().findBestVersion(8);
}

val jvmArgs = CommandUtil.getOption("--jvm", args);
List<String> jvm = Collections.emptyList();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

public interface ForgeRepoFormat {
// E.g. https://maven.neoforged.net/releases/net/neoforged/neoforge/20.4.195/neoforge-20.4.195-installer.jar
String NEO_FORGE_URL = " https://maven.neoforged.net/releases/net/neoforged/neoforge/";
String NEO_FORGE_URL = "https://maven.neoforged.net/releases/net/neoforged/neoforge/";
// Exception for 1.20.1: https://maven.neoforged.net/releases/net/neoforged/forge/1.20.1-47.1.104/forge-1.20.1-47.1.104-installer.jar
String NEO_FORGE_ALTERNATIVE_URL = "https://maven.neoforged.net/releases/net/neoforged/forge/";
// E.g. https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.2-48.1.0/forge-1.20.2-48.1.0-installer.jar
String LEX_FORGE_URL = "https://maven.minecraftforge.net/net/minecraftforge/forge/";

Expand All @@ -28,11 +30,21 @@ static ForgeRepoFormat neoForge() {
return new ForgeRepoFormat() {
@Override
public String getFileName(ForgeVersion version) {
// Exception for 1.20.1: https://maven.neoforged.net/releases/net/neoforged/forge/1.20.1-47.1.104/forge-1.20.1-47.1.104-installer.jar
if ("1.20.1".equals(version.getVersion())) {
return "forge-" + version.getFullName() + "-installer.jar";
}

return "neoforge-" + version.getName() + "-installer.jar";
}

@Override
public String getUrl(String baseUrl, ForgeVersion version) {
// Exception for 1.20.1: https://maven.neoforged.net/releases/net/neoforged/forge/1.20.1-47.1.104/forge-1.20.1-47.1.104-installer.jar
if ("1.20.1".equals(version.getVersion()) && baseUrl.equals(NEO_FORGE_URL)) {
return NEO_FORGE_ALTERNATIVE_URL + version.getFullName() + "/" + getFileName(version);
}

return baseUrl + version.getName() + "/" + getFileName(version);
}
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ public Java findBestVersion(Integer version) {
return java;
}

// uhhhhhhhhhhhhhhhhhhhh what?!?!?!
if (java.getVersion() > version && (best == null
|| best.getVersion() - version > java.getVersion() - version)) {
best = java;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,12 @@ public List<String> build() throws LaunchException, AuthException {

val result = new ArrayList<String>();
result.add(java.getExecutable());
result.addAll(Arrays.asList(config.get(LauncherProperties.JVM_ARGS,
new String[0])));
result.addAll(Arrays.asList(config.get(LauncherProperties.JVM_ARGS, new String[0])));
if (config.get(LauncherProperties.SET_LIBRARY_DIR, true)) {
System.out.println(launcher.getMcFiles().getDir("libraries").getAbsolutePath());
result.add("-DlibraryDirectory=" + launcher.getMcFiles().getDir("libraries").getAbsolutePath());
}

result.addAll(jvmArgs);

if (runtime
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public LaunchOptionsBuilder parseFlags(
// if offline only allow launching with the lwjgl flag!
if (!lwjgl && launcher.getAccountManager().getOfflineChecker().isOffline()) {
log.warning("You are offline, game will start in headless mode!");
//lwjgl = true;
lwjgl = true;
}

return this
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import lombok.SneakyThrows;
import lombok.val;
import me.earth.headlessmc.launcher.LauncherMock;
import me.earth.headlessmc.launcher.LauncherProperties;
import me.earth.headlessmc.launcher.UsesResources;
import me.earth.headlessmc.launcher.java.Java;
import me.earth.headlessmc.launcher.os.OS;
Expand All @@ -25,6 +26,7 @@ public void testCommand() {
LauncherMock.INSTANCE.getJavaService().add(new Java("dummy", 8));
Assertions.assertThrows(LaunchException.class, command::build);
LauncherMock.INSTANCE.getJavaService().add(new Java("java-17", 17));
System.setProperty(LauncherProperties.SET_LIBRARY_DIR.getName(), "false");
val expected = Arrays.asList(
"java-17", "-Dhmc.deencapsulate=true",
"-Djava.library.path=natives_path", "-cp",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import lombok.var;
import me.earth.headlessmc.launcher.Launcher;
import me.earth.headlessmc.launcher.LauncherMock;
import me.earth.headlessmc.launcher.LauncherProperties;
import me.earth.headlessmc.launcher.command.LaunchContext;
import me.earth.headlessmc.launcher.java.Java;
import me.earth.headlessmc.launcher.util.IOUtil;
Expand All @@ -23,6 +24,7 @@ public class LaunchTest {
@Test
@SneakyThrows
public void testLaunch() {
System.setProperty(LauncherProperties.SET_LIBRARY_DIR.getName(), "false");
setupLauncher();
var builder = ((MockProcessFactory) launcher.getProcessFactory())
.getBuilder();
Expand Down Expand Up @@ -50,6 +52,7 @@ public void testLaunch() {

@Test
public void testWithVmArgs() {
System.setProperty(LauncherProperties.SET_LIBRARY_DIR.getName(), "false");
setupLauncher();
launcher.getCommandContext().execute(
// TODO: all this escaping is kinda ehh
Expand Down
2 changes: 1 addition & 1 deletion headlessmc-scripts/hmc
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
#!/usr/bin/env sh
java -jar headlessmc-launcher-1.9.4.jar --command $@
java -jar headlessmc-launcher-1.9.5.jar --command $@
2 changes: 1 addition & 1 deletion headlessmc-scripts/hmc.bat
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
@echo off
"%JAVA_HOME%\bin\java" -jar headlessmc-launcher-1.9.4.jar --command %*
"%JAVA_HOME%\bin\java" -jar headlessmc-launcher-1.9.5.jar --command %*
2 changes: 1 addition & 1 deletion headlessmc-scripts/hmw
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#!/bin/bash
# when running in docker on windows bash seems to be at /bin/bash TODO: can we make this one script?
java -jar headlessmc-launcher-1.9.4.jar --command $@
java -jar headlessmc-launcher-1.9.5.jar --command $@

0 comments on commit fa23dab

Please sign in to comment.