#!/bin/bash # shellcheck source=start-utils . "$(dirname "$0")/start-utils" isDebugging && set -x set -eo pipefail spigotBuildLog="/data/spigot_build.log" function handleFailedSpigotBuild { logError "Failed to build Spigot" cat ${spigotBuildLog} exit 1 } function buildSpigotFromSource { local tempDir="/data/temp" if [[ ${TYPE^^} = *BUKKIT ]] && ! versionLessThan "1.14"; then logError "Craftbukkit build is only supported for versions less than 1.14" exit 1 fi log "Building Spigot $VANILLA_VERSION from source, might take a while, get some coffee" rm -rf ${tempDir} mkdir ${tempDir} cd ${tempDir} jvmOpts="" if isPercentage "${INIT_MEMORY:-$MEMORY}"; then jvmOpts+="-XX:InitialRAMPercentage=$(getPercentageValue "${INIT_MEMORY:-$MEMORY}") " else jvmOpts+="-Xms${INIT_MEMORY:-$MEMORY} " fi if isPercentage "${MAX_MEMORY:-$MEMORY}"; then jvmOpts+="-XX:MaxRAMPercentage=$(getPercentageValue "${MAX_MEMORY:-$MEMORY}")" else jvmOpts+="-Xmx${MAX_MEMORY:-$MEMORY}" fi logn '' curl -sSL -o ${tempDir}/BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar && \ java $jvmOpts -jar ${tempDir}/BuildTools.jar --rev "$VERSION" 2>&1 |tee ${spigotBuildLog}| while read l; do echo -n .; done; log "done" case ${TYPE^^} in SPIGOT) if ! mv spigot-*.jar "/data/${SERVER}"; then handleFailedSpigotBuild fi ;; *BUKKIT) if ! mv craftbukkit-*.jar "/data/${SERVER}"; then handleFailedSpigotBuild fi ;; esac log "Cleaning up" rm -rf ${tempDir} cd /data } function downloadSpigot { local match local getBukkitBaseUrl="https://getbukkit.org/download/" local getBukkitSpigotUrl="${getBukkitBaseUrl}spigot" case "$TYPE" in *BUKKIT|*bukkit) match="CraftBukkit" downloadUrl=${BUKKIT_DOWNLOAD_URL} getbukkitFlavor=craftbukkit ;; *) match="Spigot" downloadUrl=${SPIGOT_DOWNLOAD_URL} getbukkitFlavor=spigot ;; esac if [[ ${VERSION^^} = LATEST ]]; then if ! downloadUrl=$(restify "${getBukkitBaseUrl}/${getbukkitFlavor}" --id='downloadr' | jq -r '.[0] | .href '); then logError "Failed to retrieve latest version from ${getBukkitSpigotUrl} -- site might be down" exit 1 fi fi if [[ -z $downloadUrl ]]; then downloadUrl="https://cdn.getbukkit.org/${getbukkitFlavor}/${getbukkitFlavor}-${VERSION}.jar" fi log "Downloading $match from $downloadUrl if missing ..." if ! SERVER=$(get -o /data --skip-existing --output-filename "$downloadUrl"); then cat <