#!/bin/bash # shellcheck source=start-utils . "${SCRIPTS:-$(dirname "$0")}/start-utils" set -o pipefail set -e isDebugging && set -x requireVar VANILLA_VERSION : "${CRUCIBLE_RELEASE:=latest}" crucibleReleasesUrl=https://api.github.com/repos/CrucibleMC/Crucible/releases if [[ ${CRUCIBLE_RELEASE^^} = LATEST ]]; then crucibleReleaseUrl=${crucibleReleasesUrl}/latest else crucibleReleaseUrl=${crucibleReleasesUrl}/tags/${CRUCIBLE_RELEASE} fi if ! downloadUrl=$(get --json-path "$.assets[?(@.name =~ /Crucible-${VANILLA_VERSION}-.*\.jar/)].browser_download_url" \ --accept "application/vnd.github.v3+json" "$crucibleReleaseUrl"); then log "ERROR: failed to access ${CRUCIBLE_RELEASE} release of Crucible" exit 1 fi if [[ $downloadUrl = null ]]; then log "ERROR: failed to locate Crucible jar for $VANILLA_VERSION from ${CRUCIBLE_RELEASE}" exit 1 fi log "Downloading Crucible from $downloadUrl" if ! SERVER=$(get --skip-existing --output-filename -o /data "$downloadUrl"); then log "ERROR: failed to download Crucible jar from $downloadUrl" exit 1 fi librariesDir=/data/libraries if [ ! -d "$librariesDir" ]; then if ! librariesUrl=$(get --json-path "$.assets[?(@.name == 'libraries.zip')].browser_download_url" \ --accept "application/vnd.github.v3+json" "$crucibleReleaseUrl"); then log "ERROR: failed to access ${CRUCIBLE_RELEASE} release of Crucible for libraries" exit 1 fi log "Downloading Crucible libraries" if ! get -o /tmp/libraries.zip "$librariesUrl"; then log "ERROR: failed to download Crucible libraries from $librariesUrl" exit 1 fi if ! unzip /tmp/libraries.zip -d "$librariesDir"; then log "ERROR: failed to unzip Crucible libraries" exit 1 fi rm /tmp/libraries.zip fi export SERVER export FAMILY=HYBRID exec "${SCRIPTS:-$(dirname "$0")}/start-setupWorld" "$@"