mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-09-04 05:05:03 +00:00
@@ -307,6 +307,13 @@ Now you can add a `-e FTB_SERVER_MOD=name_of_modpack.zip` to your command-line.
|
|||||||
-e FTB_SERVER_MOD=FTBPresentsSkyfactory3Server_3.0.6.zip \
|
-e FTB_SERVER_MOD=FTBPresentsSkyfactory3Server_3.0.6.zip \
|
||||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||||
|
|
||||||
|
Instead of explicitly downloading a modpack from the Feed the Beast site, you
|
||||||
|
can you set `FTB_SERVER_MOD` to the **server** URL of a modpack, such as
|
||||||
|
|
||||||
|
$ docker run ... \
|
||||||
|
-e TYPE=FTB \
|
||||||
|
-e FTB_SERVER_MOD=https://www.feed-the-beast.com/projects/ftb-infinity-lite-1-10/files/2402889
|
||||||
|
|
||||||
### Using the /data volume
|
### Using the /data volume
|
||||||
|
|
||||||
You must use a persistent `/data` mount for this type of server.
|
You must use a persistent `/data` mount for this type of server.
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ if [ ! -e /data/eula.txt ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
SERVER_PROPERTIES=/data/server.properties
|
||||||
|
FTB_DIR=/data/FeedTheBeast
|
||||||
VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json
|
VERSIONS_JSON=https://launchermeta.mojang.com/mc/game/version_manifest.json
|
||||||
|
|
||||||
echo "Checking version information."
|
echo "Checking version information."
|
||||||
@@ -173,6 +175,16 @@ function installForge {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isURL {
|
||||||
|
local value=$1
|
||||||
|
|
||||||
|
if [[ ${value:0:8} == "https://" || ${value:0:7} = "http://" ]]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function installFTB {
|
function installFTB {
|
||||||
TYPE=FEED-THE-BEAST
|
TYPE=FEED-THE-BEAST
|
||||||
|
|
||||||
@@ -184,6 +196,20 @@ function installFTB {
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
local srv_modpack=${FTB_SERVER_MOD}
|
local srv_modpack=${FTB_SERVER_MOD}
|
||||||
|
if isURL ${srv_modpack}; then
|
||||||
|
case $srv_modpack in
|
||||||
|
*/download)
|
||||||
|
break;;
|
||||||
|
*)
|
||||||
|
srv_modpack=${srv_modpack}/download;;
|
||||||
|
esac
|
||||||
|
local file=$(basename $(dirname $srv_modpack))
|
||||||
|
local downloaded=/data/${file}.zip
|
||||||
|
echo "Downloading FTB modpack...
|
||||||
|
$srv_modpack -> $downloaded"
|
||||||
|
curl -sSL -o $downloaded $srv_modpack
|
||||||
|
srv_modpack=$downloaded
|
||||||
|
fi
|
||||||
if [[ ${srv_modpack:0:5} == "data/" ]]; then
|
if [[ ${srv_modpack:0:5} == "data/" ]]; then
|
||||||
# Prepend with "/"
|
# Prepend with "/"
|
||||||
srv_modpack=/${srv_modpack}
|
srv_modpack=/${srv_modpack}
|
||||||
@@ -203,12 +229,10 @@ function installFTB {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Unpacking FTB server modpack ${srv_modpack} ..."
|
echo "Unpacking FTB server modpack ${srv_modpack} ..."
|
||||||
local ftb_dir=/data/FeedTheBeast
|
mkdir -p ${FTB_DIR}
|
||||||
mkdir -p ${ftb_dir}
|
unzip -o ${srv_modpack} -d ${FTB_DIR}
|
||||||
unzip -o ${srv_modpack} -d ${ftb_dir}
|
cp -f /data/eula.txt ${FTB_DIR}/eula.txt
|
||||||
cp -f /data/eula.txt ${ftb_dir}/eula.txt
|
FTB_SERVER_START=${FTB_DIR}/ServerStart.sh
|
||||||
cd ${ftb_dir}
|
|
||||||
FTB_SERVER_START=ServerStart.sh
|
|
||||||
chmod a+x ${FTB_SERVER_START}
|
chmod a+x ${FTB_SERVER_START}
|
||||||
sed -i "s/-jar/-Dfml.queryResult=confirm -jar/" ${FTB_SERVER_START}
|
sed -i "s/-jar/-Dfml.queryResult=confirm -jar/" ${FTB_SERVER_START}
|
||||||
}
|
}
|
||||||
@@ -442,7 +466,7 @@ if [ ! -e server.properties ]; then
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
sed -i "/gamemode\s*=/ c gamemode=$MODE" /data/server.properties
|
sed -i "/gamemode\s*=/ c gamemode=$MODE" $SERVER_PROPERTIES
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -520,6 +544,9 @@ JVM_OPTS="-Xms${INIT_MEMORY:-${MEMORY}} -Xmx${MAX_MEMORY:-${MEMORY}} ${JVM_OPTS}
|
|||||||
|
|
||||||
set -x
|
set -x
|
||||||
if [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
|
if [[ ${TYPE} == "FEED-THE-BEAST" ]]; then
|
||||||
|
cp -f $SERVER_PROPERTIES ${FTB_DIR}/server.properties
|
||||||
|
cp -f /data/{eula,ops,white-list}.txt ${FTB_DIR}/
|
||||||
|
cd ${FTB_DIR}
|
||||||
echo "Running FTB server modpack start ..."
|
echo "Running FTB server modpack start ..."
|
||||||
exec sh ${FTB_SERVER_START}
|
exec sh ${FTB_SERVER_START}
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user