mirror of
https://github.com/itzg/docker-minecraft-server
synced 2024-12-12 21:32:28 +00:00
76 lines
2.3 KiB
Bash
76 lines
2.3 KiB
Bash
#!/bin/bash
|
|
set -eu
|
|
|
|
. ${SCRIPTS:-/}start-utils
|
|
|
|
export TYPE=FABRIC
|
|
|
|
FABRIC_INSTALLER=${FABRIC_INSTALLER:-}
|
|
FABRIC_INSTALLER_URL=${FABRIC_INSTALLER_URL:-}
|
|
FABRIC_INSTALLER_VERSION=${FABRIC_INSTALLER_VERSION:-${FABRICVERSION:-LATEST}}
|
|
if [[ -z $FABRIC_INSTALLER && -z $FABRIC_INSTALLER_URL ]]; then
|
|
log "Checking Fabric version information."
|
|
case $FABRIC_INSTALLER_VERSION in
|
|
LATEST)
|
|
FABRIC_INSTALLER_VERSION=$(maven-metadata-release https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml)
|
|
;;
|
|
esac
|
|
|
|
FABRIC_INSTALLER="/tmp/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
|
|
markerVersion=$FABRIC_INSTALLER_VERSION
|
|
|
|
elif [[ -z $FABRIC_INSTALLER ]]; then
|
|
FABRIC_INSTALLER="/tmp/fabric-installer.jar"
|
|
markerVersion=custom
|
|
elif [[ ! -e $FABRIC_INSTALLER ]]; then
|
|
log "ERROR: the given Fabric installer doesn't exist : $FABRIC_INSTALLER"
|
|
exit 2
|
|
fi
|
|
|
|
installMarker="/data/.fabric-installed-${VANILLA_VERSION}-${markerVersion}"
|
|
|
|
debug Checking for installMarker ${installMarker}
|
|
if [[ ! -e $installMarker ]]; then
|
|
if [[ ! -e $FABRIC_INSTALLER ]]; then
|
|
if [[ -z $FABRIC_INSTALLER_URL ]]; then
|
|
log "Downloading installer version $FABRIC_INSTALLER_VERSION"
|
|
downloadUrl="https://maven.fabricmc.net/net/fabricmc/fabric-installer/${FABRIC_INSTALLER_VERSION}/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
|
|
log "...trying $downloadUrl"
|
|
curl -o $FABRIC_INSTALLER -fsSL $downloadUrl
|
|
else
|
|
log "Downloading $FABRIC_INSTALLER_URL ..."
|
|
if ! curl -o $FABRIC_INSTALLER -fsSL $FABRIC_INSTALLER_URL; then
|
|
log "Failed to download from given location $FABRIC_INSTALLER_URL"
|
|
exit 2
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if isDebugging; then
|
|
debug "Installing Fabric ${VANILLA_VERSION} using $FABRIC_INSTALLER"
|
|
else
|
|
log "Installing Fabric using $FABRIC_INSTALLER"
|
|
fi
|
|
tries=3
|
|
set +e
|
|
while ((--tries >= 0)); do
|
|
java -jar $FABRIC_INSTALLER server -mcversion $VANILLA_VERSION -downloadMinecraft
|
|
if [[ $? == 0 ]]; then
|
|
break
|
|
fi
|
|
done
|
|
set -e
|
|
if (($tries < 0)); then
|
|
log "Fabric failed to install after several tries." >&2
|
|
exit 10
|
|
fi
|
|
export SERVER=fabric-server-launch.jar
|
|
log "Using server $SERVER"
|
|
echo $SERVER > $installMarker
|
|
|
|
else
|
|
export SERVER=$(< $installMarker)
|
|
fi
|
|
|
|
# Contineut to Final Setup
|
|
exec ${SCRIPTS:-/}start-finalSetupWorld $@
|