#!/bin/sh # Runtime for running Minecraft 1.17 and newer on FreeBSD # original work by # new edits by NAME=lwjgl3 PREFIX=/usr/local ROOT=${PREFIX}/share/java/classes/${NAME} # ORIGINAL: ROOT=/usr/local/share/minecraft16/lwjgl3/ LWJGL_JLP_OVRD="${PREFIX}/lib/${NAME}:/usr/local/lib:/usr/lib" # ORIGINAL: LWJGL_JLP_OVRD="${ROOT}/native-libs:${ROOT}/lwjgl3/bin/libs:/usr/local/lib:/usr/lib" # ${ROOT}/native-libs points to libglfw.so & libopenal.so # ${ROOT}/lwjgl3/bin/libs points to lwjgl*.so files LWJGL_OVRD="${ROOT}/lwjgl.jar" LWJGL_OGL_OVRD="${ROOT}/lwjgl-opengl.jar" LWJGL_OAL_OVRD="${ROOT}/lwjgl-openal.jar" LWJGL_GLFW_OVRD="${ROOT}/lwjgl-glfw.jar" LWJGL_STB_OVRD="${ROOT}/lwjgl-stb.jar" LWJGL_JEM_OVRD="${ROOT}/lwjgl-jemalloc.jar" #L2_OVRD="/usr/local/lib/lwjgl" #L2_2_OVRD="/usr/local/share/java/classes/lwjgl/lwjgl.jar" #L2_UTIL_OVRD="/usr/share/java/classes/lwjgl/lwjgl_util.jar" export JAVA_HOME=/usr/local/openjdk17 # openjdk16 is no longer present in FreeBSD # and 1.17+ uses jdk18+ # there may be issues with 1.13 -> 1.16 echo CMD IN: ${@} build_classpath() { echo build_classpath called with $@ local IFS=":" for p in ${1} do case "${p}" in *lwjgl-3.*.*.jar) echo set $p = ${LWJGL_OVRD} cp="${cp}:${LWJGL_OVRD}" ;; *lwjgl-opengl*) echo set $p = ${LWJGL_OGL_OVRD} cp="${cp}:${LWJGL_OGL_OVRD}" ;; *lwjgl-openal*) echo set $p = ${LWJGL_OAL_OVRD} cp="${cp}:${LWJGL_OAL_OVRD}" ;; *lwjgl-glfw*) echo set $p = ${LWJGL_GLFW_OVRD} cp="${cp}:${LWJGL_GLFW_OVRD}" ;; *lwjgl-stb*) echo set $p = ${LWJGL_STB_OVRD} cp="${cp}:${LWJGL_STB_OVRD}" ;; *lwjgl-jemalloc*) echo set $p = ${LWJGL_JEM_OVRD} cp="${cp}:${LWJGL_JEM_OVRD}" ;; *) cp="${cp}:${p}" ;; esac done cp=${cp#?} } for var in "${@}" do echo for var ${var} case "${var}" in -Djava.library*) echo set library path args="${args} -Djava.library.path=${LWJGL_JLP_OVRD}" ;; *lwjgl-opengl*) build_classpath "${var}" args="${args} ${cp}" ;; *) args="${args} ${var}" ;; esac done echo CMD OUT: ${args} ${JAVA_HOME}/bin/java ${args}