diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java
index 14e8edb8d..489d77999 100644
--- a/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java
+++ b/HMCL/src/main/java/org/jackhuang/hmcl/Launcher.java
@@ -195,7 +195,7 @@ public final class Launcher extends Application {
|| configPath.contains("\\INetCache\\")
|| configPath.contains("\\$Recycle.Bin\\")
|| configPath.contains("\\recycler\\");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
return configPath.startsWith("/tmp/")
|| configPath.startsWith("/var/tmp/")
|| configPath.startsWith("/var/cache/")
@@ -290,7 +290,7 @@ public final class Launcher extends Application {
.findAny()
.map(bean -> bean.getUsage().getUsed() / 1024 / 1024 + "MB")
.orElse("Unknown"));
- if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX)
+ if (OperatingSystem.CURRENT_OS.isLinuxOrBSD())
LOG.info("XDG Session Type: " + System.getenv("XDG_SESSION_TYPE"));
if (System.getProperty("hmcl.update_source.override") != null) {
diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java b/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java
index b84ef0b36..0a599934f 100644
--- a/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java
+++ b/HMCL/src/main/java/org/jackhuang/hmcl/Metadata.java
@@ -55,7 +55,7 @@ public final class Metadata {
static {
String hmclHome = System.getProperty("hmcl.home");
if (hmclHome == null) {
- if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
String xdgData = System.getenv("XDG_DATA_HOME");
if (StringUtils.isNotBlank(xdgData)) {
HMCL_DIRECTORY = Paths.get(xdgData, "hmcl").toAbsolutePath();
diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java
index db475d464..84810e650 100644
--- a/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java
+++ b/HMCL/src/main/java/org/jackhuang/hmcl/ui/FXUtils.java
@@ -380,7 +380,7 @@ public final class FXUtils {
openCommand = "explorer.exe";
else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX)
openCommand = "/usr/bin/open";
- else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX && new File("/usr/bin/xdg-open").exists())
+ else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() && new File("/usr/bin/xdg-open").exists())
openCommand = "/usr/bin/xdg-open";
else
openCommand = null;
@@ -471,7 +471,7 @@ public final class FXUtils {
LOG.log(Level.WARNING, "An exception occurred while calling rundll32", e);
}
}
- if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
for (String browser : linuxBrowsers) {
try (final InputStream is = Runtime.getRuntime().exec(new String[]{"which", browser}).getInputStream()) {
if (is.read() != -1) {
diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/util/FractureiserDetector.java b/HMCL/src/main/java/org/jackhuang/hmcl/util/FractureiserDetector.java
index f5e5cfd70..01a437030 100644
--- a/HMCL/src/main/java/org/jackhuang/hmcl/util/FractureiserDetector.java
+++ b/HMCL/src/main/java/org/jackhuang/hmcl/util/FractureiserDetector.java
@@ -33,7 +33,7 @@ public final class FractureiserDetector {
check(falseEdgePath.resolve("run.bat"));
}
}
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
Path dataDir = Paths.get(System.getProperty("user.home"), ".config", ".data");
if (Files.exists(dataDir)) {
check(dataDir.resolve(".ref"));
diff --git a/HMCL/src/main/java/org/jackhuang/hmcl/util/NativePatcher.java b/HMCL/src/main/java/org/jackhuang/hmcl/util/NativePatcher.java
index d658aa68b..41c2e5bd6 100644
--- a/HMCL/src/main/java/org/jackhuang/hmcl/util/NativePatcher.java
+++ b/HMCL/src/main/java/org/jackhuang/hmcl/util/NativePatcher.java
@@ -65,8 +65,7 @@ public final class NativePatcher {
final boolean useNativeGLFW = settings.isUseNativeGLFW();
final boolean useNativeOpenAL = settings.isUseNativeOpenAL();
- if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX
- && (useNativeGLFW || useNativeOpenAL)
+ if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() && (useNativeGLFW || useNativeOpenAL)
&& VersionNumber.VERSION_COMPARATOR.compare(gameVersion, "1.19") >= 0) {
version = version.setLibraries(version.getLibraries().stream()
@@ -94,7 +93,7 @@ public final class NativePatcher {
if (settings.isNotPatchNatives())
return version;
- if (arch.isX86())
+ if ((os == OperatingSystem.WINDOWS || os == OperatingSystem.LINUX || os == OperatingSystem.OSX) && arch.isX86())
return version;
if ((os == OperatingSystem.OSX || os == OperatingSystem.WINDOWS) && arch == Architecture.ARM64
diff --git a/HMCL/src/main/resources/assets/HMCLauncher.sh b/HMCL/src/main/resources/assets/HMCLauncher.sh
index 1d2f7b106..41d54d508 100644
--- a/HMCL/src/main/resources/assets/HMCLauncher.sh
+++ b/HMCL/src/main/resources/assets/HMCLauncher.sh
@@ -15,6 +15,8 @@ case "$OSTYPE" in
_HMCL_OS="linux";;
darwin*)
_HMCL_OS="osx";;
+ freebsd*)
+ _HMCL_OS="freebsd";;
msys*|cygwin*)
_HMCL_OS="windows";;
*)
@@ -57,8 +59,7 @@ fi
# First, find Java in HMCL_JAVA_HOME
if [ -n "${HMCL_JAVA_HOME+x}" ]; then
if [ -x "$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$HMCL_JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
else
if [ "$_HMCL_USE_CHINESE" == true ]; then
echo "环境变量 HMCL_JAVA_HOME 的值无效,请设置为合法的 Java 路径。" 1>&2
@@ -75,117 +76,75 @@ fi
case "$_HMCL_ARCH" in
x86_64)
if [ -x "$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-x64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
if [ -x "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
x86)
if [ -x "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-x86/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
arm64)
if [ -x "$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-arm64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
arm32)
if [ -x "$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-arm32/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
loongarch64)
if [ -x "$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$_HMCL_DIR/jre-loongarch64/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
;;
esac
# Find Java in JAVA_HOME
if [ -f "$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" ]; then
- "$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec "$JAVA_HOME/bin/$_HMCL_JAVA_EXE_NAME" $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
# Find Java in PATH
if [ -x "$(command -v $_HMCL_JAVA_EXE_NAME)" ]; then
- $_HMCL_JAVA_EXE_NAME $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
- exit 0
+ exec $_HMCL_JAVA_EXE_NAME $_HMCL_VM_OPTIONS -jar "$_HMCL_PATH"
fi
# Java not found
-if [[ "$_HMCL_OS" == "unknown" || "$_HMCL_ARCH" == "unknown" ]]; then
- if [ "$_HMCL_USE_CHINESE" == true ]; then
- echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
- echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
- else
- echo "The Java runtime environment is required to run HMCL. " 1>&2
- echo "Please install Java and set the environment variables and try again." 1>&2
- echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
- fi
- exit 1
-fi
-
-if [[ "$_HMCL_ARCH" == "loongarch64" ]]; then
- if [ "$_HMCL_USE_CHINESE" == true ]; then
- echo "运行 HMCL 需要 Java 运行时环境,请安装龙芯 JDK (https://docs.hmcl.net/downloads/loongnix.html) 并设置环境变量后重试。" 1>&2
- echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
- else
- echo "The Java runtime environment is required to run HMCL." 1>&2
- echo "Please install Loongson JDK (https://docs.hmcl.net/downloads/loongnix.html) and set the environment variables, then try again." 1>&2
- echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
- fi
- exit 1
-fi
-
-
-case "$_HMCL_OS" in
- linux)
- _HMCL_DOWNLOAD_PAGE_OS="linux";;
- osx)
- _HMCL_DOWNLOAD_PAGE_OS="macos";;
- windows)
- _HMCL_DOWNLOAD_PAGE_OS="windows";;
- *)
- echo "Unknown os: $_HMCL_OS" 1>&2
- exit 1
- ;;
-esac
-
-case "$_HMCL_ARCH" in
- arm64)
- _HMCL_DOWNLOAD_PAGE_ARCH="arm64";;
- arm32)
- _HMCL_DOWNLOAD_PAGE_ARCH="arm32";;
- x86_64)
- _HMCL_DOWNLOAD_PAGE_ARCH="x86_64";;
- x86)
- _HMCL_DOWNLOAD_PAGE_ARCH="x86";;
- *)
- echo "Unknown architecture: $_HMCL_ARCH" 1>&2
- exit 1
- ;;
-esac
-
-_HMCL_DOWNLOAD_PAGE="https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_DOWNLOAD_PAGE_ARCH.html"
-
-if [ "$_HMCL_USE_CHINESE" == true ]; then
- echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
- echo "$_HMCL_DOWNLOAD_PAGE" 1>&2
- echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
+if [ "$_HMCL_OS" == "osx" ]; then
+ _HMCL_DOWNLOAD_PAGE_OS="macos"
else
- echo "The Java runtime environment is required to run HMCL. " 1>&2
- echo "Please install Java and set the environment variables and try again." 1>&2
- echo "$_HMCL_DOWNLOAD_PAGE" 1>&2
- echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
+ _HMCL_DOWNLOAD_PAGE_OS="$_HMCL_OS"
fi
+
+case "$_HMCL_DOWNLOAD_PAGE_OS-$_HMCL_ARCH" in
+ windows-x86|windows-x86_64|windows-arm64|linux-x86|linux-x86_64|linux-arm32|linux-arm64|linux-loongarch64|macos-x86_64|macos-arm64)
+ if [ "$_HMCL_USE_CHINESE" == true ]; then
+ echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
+ echo "https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_HMCL_ARCH.html" 1>&2
+ echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
+ else
+ echo "The Java runtime environment is required to run HMCL. " 1>&2
+ echo "Please install Java and set the environment variables and try again." 1>&2
+ echo "https://docs.hmcl.net/downloads/$_HMCL_DOWNLOAD_PAGE_OS/$_HMCL_HMCL_ARCH.html" 1>&2
+ echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
+ fi
+ ;;
+ *)
+ if [ "$_HMCL_USE_CHINESE" == true ]; then
+ echo "运行 HMCL 需要 Java 运行时环境,请安装 Java 并设置环境变量后重试。" 1>&2
+ echo "你可以访问 https://docs.hmcl.net/help.html 页面寻求帮助。" 1>&2
+ else
+ echo "The Java runtime environment is required to run HMCL. " 1>&2
+ echo "Please install Java and set the environment variables and try again." 1>&2
+ echo "You can visit the https://docs.hmcl.net/help.html page for help." 1>&2
+ fi
+ ;;
+esac
+
exit 1
diff --git a/HMCL/src/main/resources/assets/natives.json b/HMCL/src/main/resources/assets/natives.json
index cf51447ee..87059afa7 100644
--- a/HMCL/src/main/resources/assets/natives.json
+++ b/HMCL/src/main/resources/assets/natives.json
@@ -3166,5 +3166,628 @@
"com.mojang:text2speech:1.10.3:natives": null,
"com.mojang:text2speech:1.11.3:natives": null,
"com.mojang:text2speech:1.12.4:natives": null
+ },
+ "freebsd-x86_64": {
+ "org.lwjgl:lwjgl:3.1.6": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
+ "size": 792204
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
+ "size": 95872
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.1.6": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "sha1": "41256f2c098806304fd224613d3d01b02725470e",
+ "size": 46421
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
+ "size": 155867
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.1.6": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
+ "size": 113094
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
+ "size": 597512
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.1.6": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
+ "size": 931744
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
+ "size": 81034
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.1.6": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
+ "size": 146829
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
+ "size": 101847
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.1.6": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
+ "size": 143099
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
+ "size": 225735
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.1.6": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
+ "size": 15917
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.1.6:natives": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
+ "size": 39077
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.2.2": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
+ "size": 792204
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
+ "size": 95872
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.2.2": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "sha1": "41256f2c098806304fd224613d3d01b02725470e",
+ "size": 46421
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
+ "size": 155867
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.2.2": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
+ "size": 113094
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
+ "size": 597512
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.2.2": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
+ "size": 931744
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
+ "size": 81034
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.2.2": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
+ "size": 146829
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
+ "size": 101847
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.2.2": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
+ "size": 143099
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
+ "size": 225735
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.2.2": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
+ "size": 15917
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.2.2:natives": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
+ "size": 39077
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.3.1": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
+ "size": 792204
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
+ "size": 95872
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.3.1": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "sha1": "41256f2c098806304fd224613d3d01b02725470e",
+ "size": 46421
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
+ "size": 155867
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.3.1": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
+ "size": 113094
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
+ "size": 597512
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.3.1": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
+ "size": 931744
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
+ "size": 81034
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.3.1": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
+ "size": 146829
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
+ "size": 101847
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.3.1": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
+ "size": 143099
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
+ "size": 225735
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.3.1": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
+ "size": 15917
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.3.1:natives-linux": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
+ "size": 39077
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.3.2": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4.jar",
+ "sha1": "7202012cf0cadb9ffad4874494920fd8bbd93413",
+ "size": 792204
+ }
+ }
+ },
+ "org.lwjgl:lwjgl:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl/3.3.4-SNAPSHOT/lwjgl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "2d38355b453edfe2daee1a567bcdb82c0485edcf",
+ "size": 95872
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.3.2": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4.jar",
+ "sha1": "41256f2c098806304fd224613d3d01b02725470e",
+ "size": 46421
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-jemalloc:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-jemalloc:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-jemalloc/3.3.4-SNAPSHOT/lwjgl-jemalloc-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "bdba1662b621228679c7aed87945d1f28c590d5b",
+ "size": 155867
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.3.2": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4.jar",
+ "sha1": "89d8868c2d688b55e3e923345e4a146c6d034229",
+ "size": 113094
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-openal:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-openal:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-openal/3.3.4-SNAPSHOT/lwjgl-openal-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "0fc6495e6752727b629cf03a105c9d56087d4edd",
+ "size": 597512
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.3.2": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4.jar",
+ "sha1": "81d0a7fd96bf5eb6257fddf6b77e338d8918bf32",
+ "size": 931744
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-opengl:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-opengl:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-opengl/3.3.4-SNAPSHOT/lwjgl-opengl-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "d3e8ec997cef8bc66819c7e0ad7a54182f7aff2a",
+ "size": 81034
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.3.2": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4.jar",
+ "sha1": "e6dba9ab8532cb6aac273adf26496ce689999943",
+ "size": 146829
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-glfw:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-glfw:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-glfw/3.3.4-SNAPSHOT/lwjgl-glfw-3.3.4-20231218.151521-4-natives-freebsd.jar",
+ "sha1": "4881a965c7679b4984c0d8a5890f07ea85c653c4",
+ "size": 101847
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.3.2": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3.jar",
+ "sha1": "033fe42d1b37e35afd8b6e2653abc77deadb0730",
+ "size": 143099
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-stb:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-stb:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-stb/3.3.4-SNAPSHOT/lwjgl-stb-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "0aad82a857ebb9a3a212dc2c386761d57e11a8f2",
+ "size": 225735
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.3.2": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3.jar",
+ "sha1": "8b7c94a57f56a5b38b23c02c1cada77dccba9930",
+ "size": 15917
+ }
+ }
+ },
+ "org.lwjgl:lwjgl-tinyfd:3.3.2:natives-linux": {
+ "name": "org.lwjgl:lwjgl-tinyfd:3.3.4-SNAPSHOT:natives-freebsd",
+ "downloads": {
+ "artifact": {
+ "path": "org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "url": "https://oss.sonatype.org/content/repositories/snapshots/org/lwjgl/lwjgl-tinyfd/3.3.4-SNAPSHOT/lwjgl-tinyfd-3.3.4-20231218.151521-3-natives-freebsd.jar",
+ "sha1": "124d0e48ae1584f09e5701588ae8ad139be26003",
+ "size": 39077
+ }
+ }
+ },
+ "net.java.jinput:jinput-platform:2.0.5:natives": null,
+ "com.mojang:text2speech:1.10.3:natives": null,
+ "com.mojang:text2speech:1.11.3:natives": null,
+ "com.mojang:text2speech:1.12.4:natives": null,
+ "com.mojang:text2speech:1.13.9:natives-linux": null
}
}
\ No newline at end of file
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java
index 0601fa09c..e121960f1 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/download/java/JavaRepository.java
@@ -57,6 +57,7 @@ public final class JavaRepository {
Optional.ofNullable(System.getenv("ProgramFiles(x86)")).orElse("C:\\Program Files (x86)"),
"Minecraft Launcher\\runtime"));
case LINUX:
+ case FREEBSD:
return Stream.of(FileUtils.tryGetPath(System.getProperty("user.home", ".minecraft/runtime")));
case OSX:
return Stream.of(FileUtils.tryGetPath(System.getProperty("user.home"), "Library/Application Support/minecraft/runtime"));
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java
index 2df91cb54..f2a5ae399 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/game/OSRestriction.java
@@ -64,7 +64,8 @@ public final class OSRestriction {
}
public boolean allow() {
- if (name != OperatingSystem.UNKNOWN && name != OperatingSystem.CURRENT_OS)
+ if (name != OperatingSystem.UNKNOWN && name != OperatingSystem.CURRENT_OS
+ && !(name == OperatingSystem.LINUX && OperatingSystem.CURRENT_OS.isLinuxOrBSD()))
return false;
if (version != null)
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java
index 0a618b77a..50756a321 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/DefaultLauncher.java
@@ -70,14 +70,14 @@ public class DefaultLauncher extends Launcher {
case HIGH:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/high");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "-5");
}
break;
case ABOVE_NORMAL:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/abovenormal");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "-1");
}
break;
@@ -87,14 +87,14 @@ public class DefaultLauncher extends Launcher {
case BELOW_NORMAL:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/belownormal");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "1");
}
break;
case LOW:
if (OperatingSystem.CURRENT_OS == OperatingSystem.WINDOWS) {
// res.add("cmd", "/C", "start", "unused title", "/B", "/low");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.LINUX || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
+ } else if (OperatingSystem.CURRENT_OS.isLinuxOrBSD() || OperatingSystem.CURRENT_OS == OperatingSystem.OSX) {
res.add("nice", "-n", "5");
}
break;
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java
index 2d355c4c0..1c0bade68 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/launch/ExitWaiter.java
@@ -72,7 +72,7 @@ final class ExitWaiter implements Runnable {
} else if (exitCode != 0 || StringUtils.containsOne(errorLines, "Unable to launch")) {
EventBus.EVENT_BUS.fireEvent(new ProcessExitedAbnormallyEvent(this, process));
- if (exitCode == 137 && OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ if (exitCode == 137 && OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
exitType = ProcessListener.ExitType.SIGKILL;
} else {
exitType = ProcessListener.ExitType.APPLICATION_ERROR;
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java
index 503f491b5..eec4df7a3 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/JavaVersion.java
@@ -326,6 +326,7 @@ public final class JavaVersion {
break;
case LINUX:
+ case FREEBSD:
javaExecutables.add(listDirectory(Paths.get("/usr/java")).map(JavaVersion::getExecutable)); // Oracle RPMs
javaExecutables.add(listDirectory(Paths.get("/usr/lib/jvm")).map(JavaVersion::getExecutable)); // General locations
javaExecutables.add(listDirectory(Paths.get("/usr/lib32/jvm")).map(JavaVersion::getExecutable)); // General locations
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java
index 29dcb038f..d2a3fd537 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/ManagedProcess.java
@@ -100,7 +100,7 @@ public class ManagedProcess {
// However, this method is supplied since Java 9.
// So, there is no ways to get the pid.
throw new UnsupportedOperationException("Cannot get the pid of a Process on Java 8 on Windows.");
- } else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX || OperatingSystem.CURRENT_OS == OperatingSystem.LINUX) {
+ } else if (OperatingSystem.CURRENT_OS == OperatingSystem.OSX || OperatingSystem.CURRENT_OS.isLinuxOrBSD()) {
// On Linux or Mac, we can get field UnixProcess.pid field to get the pid.
// All the Java version is accepted.
// See https://github.com/openjdk/jdk/blob/jdk8-b120/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux
diff --git a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/OperatingSystem.java b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/OperatingSystem.java
index 8990840b1..271a0faf2 100644
--- a/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/OperatingSystem.java
+++ b/HMCLCore/src/main/java/org/jackhuang/hmcl/util/platform/OperatingSystem.java
@@ -51,6 +51,10 @@ public enum OperatingSystem {
* Mac OS X.
*/
OSX("osx"),
+ /**
+ * FreeBSD.
+ */
+ FREEBSD("freebsd"),
/**
* Unknown operating system.
*/
@@ -66,6 +70,10 @@ public enum OperatingSystem {
return checkedName;
}
+ public boolean isLinuxOrBSD() {
+ return this == LINUX || this == FREEBSD;
+ }
+
/**
* The current operating system.
*/
@@ -213,6 +221,8 @@ public enum OperatingSystem {
return OSX;
else if (name.contains("solaris") || name.contains("linux") || name.contains("unix") || name.contains("sunos"))
return LINUX;
+ else if (name.equals("freebsd"))
+ return FREEBSD;
else
return UNKNOWN;
}
@@ -273,6 +283,7 @@ public enum OperatingSystem {
String home = System.getProperty("user.home", ".");
switch (OperatingSystem.CURRENT_OS) {
case LINUX:
+ case FREEBSD:
return Paths.get(home, "." + folder).toAbsolutePath();
case WINDOWS:
String appdata = System.getenv("APPDATA");
diff --git a/PLATFORM.md b/PLATFORM.md
index 157035d87..c54f557c1 100644
--- a/PLATFORM.md
+++ b/PLATFORM.md
@@ -2,17 +2,17 @@
English | [简体中文](PLATFORM_cn.md)
-| | Windows | Linux | Mac OS | FreeBSD |
-|----------------------------|:----------------------------------------------|:--------------------------|:------------------------------------------------------------------------|:--------|
-| x86-64 | ✅️ | ✅️ | ✅️ | ❔ |
-| x86 | ✅️ | ✅️ | / | / |
-| ARM64 | 👌 (Minecraft 1.8+)
✅ (use x86 emulation) | 👌 | 👌 (Minecraft 1.6~1.18.2)
✅ (Minecraft 1.19+)
✅ (use Rosetta 2) | ❔ |
-| ARM32 | /️ | 👌 | / | / |
-| MIPS64el | / | 👌 | / | / |
-| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
-| LoongArch64 | / | 👌 (both old and new ABI) | / | / |
-| PowerPC-64 (Little-Endian) | / | ❔ | / | / |
-| S390x | / | ❔ | / | / |
+| | Windows | Linux | Mac OS | FreeBSD |
+|----------------------------|:----------------------------------------------|:--------------------------|:------------------------------------------------------------------------|:--------------------|
+| x86-64 | ✅️ | ✅️ | ✅️ | 👌(Minecraft 1.13+) |
+| x86 | ✅️ | ✅️ | / | / |
+| ARM64 | 👌 (Minecraft 1.8+)
✅ (use x86 emulation) | 👌 | 👌 (Minecraft 1.6~1.18.2)
✅ (Minecraft 1.19+)
✅ (use Rosetta 2) | ❔ |
+| ARM32 | /️ | 👌 | / | / |
+| MIPS64el | / | 👌 | / | / |
+| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
+| LoongArch64 | / | 👌 (both old and new ABI) | / | / |
+| PowerPC-64 (Little-Endian) | / | ❔ | / | / |
+| S390x | / | ❔ | / | / |
Legend:
diff --git a/PLATFORM_cn.md b/PLATFORM_cn.md
index ff0861f74..0385f0e25 100644
--- a/PLATFORM_cn.md
+++ b/PLATFORM_cn.md
@@ -2,17 +2,17 @@
[English](PLATFORM.md) | 简体中文
-| | Windows | Linux | Mac OS | FreeBSD |
-|------------------|:--------------------------------------|:---------------------|:-----------------------------------------------------------------------|:--------|
-| x86-64 | ✅️ | ✅️ | ✅️ | ❔ |
-| x86 | ✅️ | ✅️ | / | / |
-| ARM64 | 👌 (Minecraft 1.8+)
✅ (使用 x86 模拟) | 👌 | 👌 (Minecraft 1.6~1.18.2)
✅ (Minecraft 1.19+)
✅ (使用 Rosetta 2) | ❔ |
-| ARM32 | /️ | 👌 | / | / |
-| MIPS64el | / | 👌 | / | / |
-| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
-| LoongArch64 | / | 👌 (包括新旧 ABI) | / | / |
-| PowerPC-64 (小端序) | / | ❔ | / | / |
-| S390x | / | ❔ | / | / |
+| | Windows | Linux | Mac OS | FreeBSD |
+|------------------|:--------------------------------------|:---------------------|:-----------------------------------------------------------------------|:--------------------|
+| x86-64 | ✅️ | ✅️ | ✅️ | 👌(Minecraft 1.13+) |
+| x86 | ✅️ | ✅️ | / | / |
+| ARM64 | 👌 (Minecraft 1.8+)
✅ (使用 x86 模拟) | 👌 | 👌 (Minecraft 1.6~1.18.2)
✅ (Minecraft 1.19+)
✅ (使用 Rosetta 2) | ❔ |
+| ARM32 | /️ | 👌 | / | / |
+| MIPS64el | / | 👌 | / | / |
+| RISC-V 64 | / | 👌 (Minecraft 1.13+) | / | / |
+| LoongArch64 | / | 👌 (包括新旧 ABI) | / | / |
+| PowerPC-64 (小端序) | / | ❔ | / | / |
+| S390x | / | ❔ | / | / |
图例:
diff --git a/javafx.gradle.kts b/javafx.gradle.kts
index 64e748d9f..cf386562b 100644
--- a/javafx.gradle.kts
+++ b/javafx.gradle.kts
@@ -43,6 +43,7 @@ val jfxPlatforms = listOf(
Platform("linux-loongarch64", "linux", groupId = "org.glavo.hmcl.openjfx", version = "17.0.8-loongarch64"),
Platform("linux-loongarch64_ow", "linux", groupId = "org.glavo.hmcl.openjfx", version = "19-ea+10-loongson64", unsupportedModules = listOf("media", "web")),
Platform("linux-riscv64", "linux", groupId = "org.glavo.hmcl.openjfx", version = "19.0.2.1-riscv64", unsupportedModules = listOf("media", "web")),
+ Platform("freebsd-x86_64", "freebsd", groupId = "org.glavo.hmcl.openjfx", version = "14.0.2.1-freebsd", unsupportedModules = listOf("media", "web")),
)
val jfxInClasspath =
@@ -59,6 +60,7 @@ if (!jfxInClasspath && JavaVersion.current() >= JavaVersion.VERSION_11) {
osName.contains("win") -> "windows"
osName.contains("mac") -> "osx"
osName.contains("linux") || osName.contains("unix") -> "linux"
+ osName.contains("freebsd") -> "freebsd"
else -> null
}
}