#!/bin/bash # shellcheck source=start-utils . "${SCRIPTS:-/}start-utils" set -o pipefail handleDebugMode : "${PAPER_PROJECT:=paper}" : "${PAPERBUILD:=}" : "${PAPER_DOWNLOAD_URL:=}" : "${PAPER_CUSTOM_JAR:=}" : "${PAPER_CONFIG_DEFAULTS_REPO:=https://raw.githubusercontent.com/dayyeeet/minecraft-default-configs/main}" resultsFile=/data/.paper.env if [[ $PAPER_CUSTOM_JAR ]]; then export SERVER="$PAPER_CUSTOM_JAR" elif [[ $PAPER_DOWNLOAD_URL ]]; then if ! mc-image-helper install-paper \ --output-directory=/data \ --results-file="$resultsFile" \ --url="$PAPER_DOWNLOAD_URL"; then log "ERROR: failed to download from custom PaperMC URL" exit 1 fi # grab SERVER and export it set -a # shellcheck disable=SC1090 source "${resultsFile}" set +a else args=( --output-directory=/data --results-file="$resultsFile" --project="$PAPER_PROJECT" --version="$VERSION" ) if [[ $PAPERBUILD ]]; then args+=(--build="$PAPERBUILD") fi if ! mc-image-helper install-paper "${args[@]}"; then log "ERROR: failed to download $PAPER_PROJECT" exit 1 fi # grab SERVER and export it set -a # shellcheck disable=SC1090 source "${resultsFile}" set +a fi # Download default configs to allow for consistent patching configs=(paper-global.yml paper-world-defaults.yml spigot.yml) mkdir -p config if ! get --skip-existing --log-progress-each -o config "${configs[@]/#/${PAPER_CONFIG_DEFAULTS_REPO}/${VERSION}/}" 2> /dev/null; then log "WARN: one or more default PaperMC config files were not available from ${PAPER_CONFIG_DEFAULTS_REPO}" fi # Normalize on Spigot for downstream operations export FAMILY=SPIGOT exec "${SCRIPTS:-/}start-spiget" "$@"