feat: add bds core, locale updates and safety fixes

This commit is contained in:
2026-05-31 14:01:34 +03:00
parent d1686355e8
commit c769140913
34 changed files with 1535 additions and 12 deletions

77
lib/java.sh Normal file
View 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"
}