docker-minecraft-server/scripts/start-deployFabric

74 lines
2.2 KiB
Text
Raw Normal View History

2019-07-10 03:19:59 +00:00
#!/bin/bash
2019-09-15 14:54:13 +00:00
set -eu
# shellcheck source=start-utils
. ${SCRIPTS:-/}start-utils
2019-07-10 03:19:59 +00:00
requireVar VANILLA_VERSION
2019-07-10 03:19:59 +00:00
export TYPE=FABRIC
export SERVER=fabric-server-${VANILLA_VERSION}.jar
2019-07-10 03:19:59 +00:00
isDebugging && set -x
2019-07-10 03:19:59 +00:00
if [[ ! -e ${SERVER} ]]; then
2019-07-10 03:19:59 +00:00
: ${FABRIC_INSTALLER:=}
: ${FABRIC_INSTALLER_URL:=}
: ${FABRIC_LOADER_VERSION:=LATEST}
: ${FABRIC_INSTALLER_VERSION:=${FABRICVERSION:-LATEST}}
if [[ -z $FABRIC_INSTALLER && -z $FABRIC_INSTALLER_URL ]]; then
log "Checking Fabric version information."
if [[ ${FABRIC_INSTALLER_VERSION^^} = LATEST ]]; then
FABRIC_INSTALLER_VERSION=$(maven-metadata-release https://maven.fabricmc.net/net/fabricmc/fabric-installer/maven-metadata.xml)
fi
2019-07-10 03:19:59 +00:00
FABRIC_INSTALLER="fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
FABRIC_INSTALLER_URL="https://maven.fabricmc.net/net/fabricmc/fabric-installer/${FABRIC_INSTALLER_VERSION}/fabric-installer-${FABRIC_INSTALLER_VERSION}.jar"
elif [[ -z $FABRIC_INSTALLER ]]; then
FABRIC_INSTALLER="fabric-installer.jar"
elif [[ ! -e $FABRIC_INSTALLER ]]; then
log "ERROR: the given Fabric installer doesn't exist : $FABRIC_INSTALLER"
exit 2
fi
2019-07-10 03:19:59 +00:00
if [[ -z $FABRIC_LOADER_VERSION || ${FABRIC_LOADER_VERSION^^} = LATEST ]]; then
log "Checking Fabric Loader version information."
FABRIC_LOADER_VERSION=$(maven-metadata-release https://maven.fabricmc.net/net/fabricmc/fabric-loader/maven-metadata.xml)
fi
2019-07-10 03:19:59 +00:00
if [[ ! -e $FABRIC_INSTALLER ]]; then
log "Downloading $FABRIC_INSTALLER_URL ..."
if ! get -o "$FABRIC_INSTALLER" "$FABRIC_INSTALLER_URL"; then
log "Failed to download from given location $FABRIC_INSTALLER_URL"
exit 2
2019-07-10 03:19:59 +00:00
fi
fi
log "Installing Fabric ${VANILLA_VERSION} using $FABRIC_INSTALLER with loader version $FABRIC_LOADER_VERSION"
2019-07-10 03:19:59 +00:00
tries=3
set +e
while ((--tries >= 0)); do
java -jar $FABRIC_INSTALLER server \
-mcversion $VANILLA_VERSION \
-loader $FABRIC_LOADER_VERSION \
-downloadMinecraft \
-dir /data
2019-07-10 03:19:59 +00:00
if [[ $? == 0 ]]; then
break
fi
done
set -e
if (($tries < 0)); then
2020-03-06 15:52:17 +00:00
log "Fabric failed to install after several tries." >&2
2019-07-10 03:19:59 +00:00
exit 10
fi
mv fabric-server-launch.jar "${SERVER}"
2019-07-10 03:19:59 +00:00
fi
export FAMILY=FABRIC
exec ${SCRIPTS:-/}start-setupWorld "$@"