mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 07:03:57 +00:00
66 lines
2.1 KiB
Bash
Executable File
66 lines
2.1 KiB
Bash
Executable File
#!/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" "$@"
|