#!/bin/bash # shellcheck source=start-utils . "${SCRIPTS:-$(dirname "$0")}/start-utils" set -o pipefail set -e isDebugging && set -x resolveVersion : "${MOHIST_BUILD:=lastSuccessfulBuild}" # Docs at https://mohistmc.com/mohistmc-api mohistType="${TYPE,,}" mohistApiUrl="https://api.mohistmc.com/project/${mohistType}" mohistDownloadsPage="https://mohistmc.com/downloadSoftware?project=${mohistType}" if [[ "${MOHIST_BUILD}" != "lastSuccessfulBuild" ]] && [[ "${VERSION,,}" != latest ]] && [[ -f "/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar" ]]; then log "Skipping Mohist build lookup since server jar exists" SERVER="/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar" else if ! get --exists "${mohistApiUrl}/${VERSION}/builds"; then logError "${mohistType} builds do not exist for ${VERSION}" logError " check ${mohistDownloadsPage} for available versions" logError " and set VERSION accordingly" exit 1 fi if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then # Get the latest build number from the API if ! buildNumber=$( get --json-path '$[0].id' "${mohistApiUrl}/${VERSION}/builds" ); then logError "failed to list ${mohistType} builds for ${VERSION}" exit 1 fi MOHIST_BUILD="${buildNumber}" fi downloadUrl="${mohistApiUrl}/${VERSION}/builds/${MOHIST_BUILD}/download" if [[ -z "${downloadUrl}" ]]; then logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}" logError " check ${mohistDownloadsPage} for available versions" logError " and set VERSION accordingly" exit 1 fi SERVER="/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar" get --skip-existing -o "${SERVER}" "${downloadUrl}" fi if [[ "${mohistType}" == "mohist" ]]; then export HYBRIDTYPE=forge elif [[ "${mohistType}" == "youer" ]]; then export HYBRIDTYPE=neoforge elif [[ "${mohistType}" == "banner" ]]; then export HYBRIDTYPE=fabric else log "Unknown server type" fi export SERVER export FAMILY=HYBRID exec "$(dirname "$0")/start-spiget" "$@"