feat: add bds core, locale updates and safety fixes
This commit is contained in:
77
lib/java.sh
Normal file
77
lib/java.sh
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/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"
|
||||
}
|
||||
Reference in New Issue
Block a user