78 lines
2.0 KiB
Bash
78 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
is_java_core() {
|
|
local core="$1"
|
|
case "$core" in
|
|
paper|purpur|velocity|powernukkitx) return 0 ;;
|
|
*) return 1 ;;
|
|
esac
|
|
}
|
|
|
|
install_java_21() {
|
|
if command -v java >/dev/null 2>&1; then
|
|
local version
|
|
version="$(java -version 2>&1 | sed -n 's/.*version "\(.*\)".*/\1/p' | head -n1 | sed 's/"//g' | sed 's/^\([0-9][0-9]*\).*/\1/')"
|
|
if [[ "$version" =~ ^[0-9]+$ ]] && (( version >= 21 )); then
|
|
info "$(t java_already_available "$version")"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
info "$(t installing_java_21)"
|
|
case "$PKG_MANAGER" in
|
|
apt)
|
|
emit_step "java_install" "apt"
|
|
run_cmd apt-get install -y openjdk-21-jre-headless
|
|
;;
|
|
dnf|yum)
|
|
emit_step "java_install" "$PKG_MANAGER"
|
|
run_cmd "$PKG_MANAGER" install -y java-21-openjdk-headless
|
|
;;
|
|
pacman)
|
|
emit_step "java_install" "pacman"
|
|
run_cmd pacman -Sy --noconfirm jre-openjdk-headless
|
|
;;
|
|
esac
|
|
}
|
|
|
|
create_java_start_script() {
|
|
local dir="$1"
|
|
local jar_file="$2"
|
|
local ram="$3"
|
|
local extra_opts="${4:-}"
|
|
|
|
local script="$dir/start.sh"
|
|
emit_step "render_start_script" "$jar_file"
|
|
run_cmd bash -c "cat > '$script' <<EOF
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
cd \"\$(dirname \"\$0\")\"
|
|
exec java -Xms${ram} -Xmx${ram} ${extra_opts} -jar ${jar_file} nogui
|
|
EOF"
|
|
run_cmd chmod +x "$script"
|
|
emit_step "chmod_start_script" "$script"
|
|
}
|
|
|
|
create_powernukkit_start_script() {
|
|
local dir="$1"
|
|
local ram="$2"
|
|
|
|
local script="$dir/start.sh"
|
|
emit_step "render_start_script" "powernukkitx.jar"
|
|
run_cmd bash -c "cat > '$script' <<EOF
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
cd \"\$(dirname \"\$0\")\"
|
|
exec java -Xms${ram} -Xmx${ram} \\
|
|
-Dfile.encoding=UTF-8 \\
|
|
-Djansi.passthrough=true \\
|
|
-Dterminal.ansi=true \\
|
|
--add-opens java.base/java.lang=ALL-UNNAMED \\
|
|
--add-opens java.base/java.io=ALL-UNNAMED \\
|
|
--add-opens java.base/java.net=ALL-UNNAMED \\
|
|
-jar powernukkitx.jar
|
|
EOF"
|
|
run_cmd chmod +x "$script"
|
|
emit_step "chmod_start_script" "$script"
|
|
}
|