mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-18 15:36:22 +00:00
Compare commits
10 Commits
2021.10.0-
...
2021.11.0-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb8c7756c7 | ||
|
|
3261fbd7e9 | ||
|
|
7164d2b885 | ||
|
|
0c860ade12 | ||
|
|
cfb2739cd9 | ||
|
|
b1bb3f38f3 | ||
|
|
a99f7a494b | ||
|
|
65b3997e72 | ||
|
|
3e9308d315 | ||
|
|
5f48a4e5e5 |
@@ -60,8 +60,8 @@ if ! isTrue ${USE_MODPACK_START_SCRIPT:-true}; then
|
|||||||
mkdir -p ${FTB_BASE_DIR}
|
mkdir -p ${FTB_BASE_DIR}
|
||||||
unzip -o "${FTB_SERVER_MOD}" -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
|
unzip -o "${FTB_SERVER_MOD}" -d ${FTB_BASE_DIR} | awk '{printf "."} END {print ""}'
|
||||||
|
|
||||||
serverJar=$(find ${FTB_BASE_DIR} -path "*/libraries/*" -prune -type f -o -not -name "forge*installer.jar" -name "forge*.jar")
|
SERVER=$(find ${FTB_BASE_DIR} -type f -not -name "forge*installer.jar" -name "forge*.jar")
|
||||||
if [[ -z "$serverJar" ]]; then
|
if [[ -z "$SERVER" ]]; then
|
||||||
|
|
||||||
if [ -f "${FTB_BASE_DIR}/settings.cfg" ]; then
|
if [ -f "${FTB_BASE_DIR}/settings.cfg" ]; then
|
||||||
loadForgeVars "${FTB_BASE_DIR}/settings.cfg"
|
loadForgeVars "${FTB_BASE_DIR}/settings.cfg"
|
||||||
@@ -89,14 +89,15 @@ if ! isTrue ${USE_MODPACK_START_SCRIPT:-true}; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${FTB_SERVER_MOD}" > $installMarker
|
echo "${FTB_SERVER_MOD}" > $installMarker
|
||||||
|
SERVER=$(find ${FTB_BASE_DIR} -type f -not -name "forge*installer.jar" -name "forge*.jar")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
export SERVER=$(find ${FTB_BASE_DIR} -path "*/libraries/*" -prune -type f -o -not -name "forge*installer.jar" -name "forge*.jar")
|
|
||||||
if [[ -z "${SERVER}" || ! -f "${SERVER}" ]]; then
|
if [[ -z "${SERVER}" || ! -f "${SERVER}" ]]; then
|
||||||
log "ERROR unable to locate installed forge server jar"
|
log "ERROR unable to locate installed forge server jar"
|
||||||
isDebugging && find ${FTB_BASE_DIR} -name "forge*.jar"
|
isDebugging && find ${FTB_BASE_DIR} -name "forge*.jar"
|
||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
|
export SERVER
|
||||||
|
|
||||||
export FTB_DIR=$(dirname "${SERVER}")
|
export FTB_DIR=$(dirname "${SERVER}")
|
||||||
|
|
||||||
|
|||||||
@@ -11,21 +11,9 @@ fi
|
|||||||
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
CURSE_URL_BASE=${CURSE_URL_BASE:-https://minecraft.curseforge.com/projects}
|
||||||
|
|
||||||
# Remove old mods/plugins
|
# Remove old mods/plugins
|
||||||
if isTrue ${REMOVE_OLD_MODS}; then
|
if isTrue ${REMOVE_OLD_MODS:-false}; then
|
||||||
remove_mods_dest="/data/mods"
|
removeOldMods /data/mods
|
||||||
case ${TYPE} in
|
removeOldMods /data/plugins
|
||||||
SPIGOT|BUKKIT|PAPER)
|
|
||||||
remove_mods_dest="/data/plugins"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
# only try to remove existing mods dir
|
|
||||||
if [ -d "$remove_mods_dest" ]; then
|
|
||||||
log "Removing old mods in $remove_mods_dest..."
|
|
||||||
find $remove_mods_dest -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE}" -delete
|
|
||||||
else
|
|
||||||
log "Directory $remove_mods_dest does not exist; removing nothing."
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# If supplied with a URL for a modpack (simple zip of jars), download it and unpack
|
# If supplied with a URL for a modpack (simple zip of jars), download it and unpack
|
||||||
@@ -37,12 +25,12 @@ if [[ "$MODPACK" ]]; then
|
|||||||
downloadUrl=$(curl -Ls -o /dev/null -w %{effective_url} $MODPACK)
|
downloadUrl=$(curl -Ls -o /dev/null -w %{effective_url} $MODPACK)
|
||||||
if ! [[ $downloadUrl == *.zip ]]; then
|
if ! [[ $downloadUrl == *.zip ]]; then
|
||||||
log "ERROR Invalid URL given for MODPACK: $downloadUrl resolved from $MODPACK"
|
log "ERROR Invalid URL given for MODPACK: $downloadUrl resolved from $MODPACK"
|
||||||
log " Must be HTTP or HTTPS and a ZIP file"
|
log " Must be HTTP, HTTPS or FTP and a ZIP file"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
log "Downloading mod/plugin pack via HTTP"
|
log "Downloading mod/plugin pack"
|
||||||
log " from $downloadUrl ..."
|
log " from $downloadUrl ..."
|
||||||
if ! curl -sSL -o /tmp/modpack.zip "$downloadUrl"; then
|
if ! curl -sSL -o /tmp/modpack.zip "$downloadUrl"; then
|
||||||
log "ERROR: failed to download from $downloadUrl"
|
log "ERROR: failed to download from $downloadUrl"
|
||||||
|
|||||||
@@ -181,8 +181,8 @@ function customizeServerProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Deploy server.properties file
|
# Deploy server.properties file
|
||||||
if [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
|
if [[ ${TYPE} == "CURSEFORGE" ]]; then
|
||||||
export SERVER_PROPERTIES=${FTB_DIR}/server.properties
|
export SERVER_PROPERTIES="${FTB_DIR}/server.properties"
|
||||||
log "detected FTB, changing properties path to ${SERVER_PROPERTIES}"
|
log "detected FTB, changing properties path to ${SERVER_PROPERTIES}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -214,7 +214,7 @@ fi
|
|||||||
|
|
||||||
if isDebugging; then
|
if isDebugging; then
|
||||||
log "DEBUG Dumping server.properties"
|
log "DEBUG Dumping server.properties"
|
||||||
cat /data/server.properties
|
cat "${SERVER_PROPERTIES}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec ${SCRIPTS:-/}start-finalSetupEnvVariables $@
|
exec ${SCRIPTS:-/}start-finalSetupEnvVariables $@
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ isDebugging && set -x
|
|||||||
: ${LEVEL:=world}
|
: ${LEVEL:=world}
|
||||||
export LEVEL
|
export LEVEL
|
||||||
|
|
||||||
if [ $TYPE = "FEED-THE-BEAST" ]; then
|
if [ $TYPE = "CURSEFORGE" ]; then
|
||||||
worldDest=$FTB_DIR/$LEVEL
|
worldDest=$FTB_DIR/$LEVEL
|
||||||
else
|
else
|
||||||
worldDest=/data/$LEVEL
|
worldDest=/data/$LEVEL
|
||||||
|
|||||||
12
start-spiget
12
start-spiget
@@ -16,7 +16,7 @@ containsJars() {
|
|||||||
if [[ $line =~ $pat ]]; then
|
if [[ $line =~ $pat ]]; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
done <<< $(unzip -l "$file")
|
done <<<$(unzip -l "$file")
|
||||||
|
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@@ -46,10 +46,14 @@ getResourceFromSpiget() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if [[ ${SPIGET_RESOURCES} ]]; then
|
if [[ ${SPIGET_RESOURCES} ]]; then
|
||||||
|
if isTrue ${REMOVE_OLD_MODS:-false}; then
|
||||||
|
removeOldMods /data/plugins
|
||||||
|
REMOVE_OLD_MODS=false
|
||||||
|
fi
|
||||||
|
|
||||||
log "Getting plugins via Spiget"
|
log "Getting plugins via Spiget"
|
||||||
IFS=',' read -r -a resources <<< "${SPIGET_RESOURCES}"
|
IFS=',' read -r -a resources <<<"${SPIGET_RESOURCES}"
|
||||||
for resource in "${resources[@]}"
|
for resource in "${resources[@]}"; do
|
||||||
do
|
|
||||||
getResourceFromSpiget "${resource}"
|
getResourceFromSpiget "${resource}"
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ function join_by() {
|
|||||||
function isURL() {
|
function isURL() {
|
||||||
local value=$1
|
local value=$1
|
||||||
|
|
||||||
if [[ ${value:0:8} == "https://" || ${value:0:7} == "http://" ]]; then
|
if [[ ${value:0:8} == "https://" || ${value:0:7} == "http://" || ${value:0:6} == "ftp://" ]]; then
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
@@ -174,3 +174,9 @@ eula=${EULA,,}
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function removeOldMods {
|
||||||
|
if [ -d "$1" ]; then
|
||||||
|
find "$1" -mindepth 1 -maxdepth ${REMOVE_OLD_MODS_DEPTH:-16} -wholename "${REMOVE_OLD_MODS_INCLUDE:-*}" -not -wholename "${REMOVE_OLD_MODS_EXCLUDE}" -delete
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user