fix: detect installed server and boot it; add RCON env var support; fix JVM_OPTS loop
This commit is contained in:
parent
aab239bf0b
commit
8d26895b08
1 changed files with 46 additions and 17 deletions
63
launch.sh
63
launch.sh
|
|
@ -36,22 +36,7 @@ fi
|
|||
|
||||
if [[ -n "$JVM_OPTS" ]]; then
|
||||
sed -i '/-Xm[s,x]/d' user_jvm_args.txt
|
||||
for j in ; do echo "" >> user_jvm_args.txt; done
|
||||
fi
|
||||
if [[ -n "$MOTD" ]]; then
|
||||
sed -i "s/^motd=.*/motd=$MOTD/" /data/server.properties
|
||||
fi
|
||||
if [[ -n "$ENABLE_WHITELIST" ]]; then
|
||||
sed -i "s/white-list=.*/white-list=$ENABLE_WHITELIST/" /data/server.properties
|
||||
fi
|
||||
if [[ -n "$ALLOW_FLIGHT" ]]; then
|
||||
sed -i "s/allow-flight=.*/allow-flight=$ALLOW_FLIGHT/" /data/server.properties
|
||||
fi
|
||||
if [[ -n "$MAX_PLAYERS" ]]; then
|
||||
sed -i "s/max-players=.*/max-players=$MAX_PLAYERS/" /data/server.properties
|
||||
fi
|
||||
if [[ -n "$ONLINE_MODE" ]]; then
|
||||
sed -i "s/online-mode=.*/online-mode=$ONLINE_MODE/" /data/server.properties
|
||||
for j in ${JVM_OPTS}; do echo "$j" >> user_jvm_args.txt; done
|
||||
fi
|
||||
|
||||
# Initialize whitelist.json if not present
|
||||
|
|
@ -108,6 +93,50 @@ for raw_username in "${OPS[@]}"; do
|
|||
fi
|
||||
done
|
||||
|
||||
# Run installer if server hasn't been installed yet
|
||||
if [[ ! -f "server.jar" ]] || [[ ! -f "run.sh" ]]; then
|
||||
echo "Running NeoForge installer..."
|
||||
java -jar neoforge-${NEOFORGE_VERSION}-installer.jar nogui || exit 1
|
||||
fi
|
||||
|
||||
# Apply server.properties overrides (create defaults if missing)
|
||||
if [[ ! -f server.properties ]]; then
|
||||
cat > server.properties << 'EOF'
|
||||
server-port=25565
|
||||
online-mode=true
|
||||
white-list=false
|
||||
broadcast-rcon-to-ops=true
|
||||
enable-rcon=false
|
||||
rcon.port=25575
|
||||
rcon.password=
|
||||
max-players=20
|
||||
allow-flight=false
|
||||
motd=A Minecraft Server
|
||||
EOF
|
||||
fi
|
||||
|
||||
sed -i 's/server-port.*/server-port=25565/g' server.properties
|
||||
|
||||
java -jar neoforge-${NEOFORGE_VERSION}-installer.jar nogui
|
||||
if [[ -n "$MOTD" ]]; then
|
||||
sed -i "s/^motd=.*/motd=$MOTD/" server.properties
|
||||
fi
|
||||
if [[ -n "$ENABLE_WHITELIST" ]]; then
|
||||
sed -i "s/white-list=.*/white-list=$ENABLE_WHITELIST/" server.properties
|
||||
fi
|
||||
if [[ -n "$ALLOW_FLIGHT" ]]; then
|
||||
sed -i "s/allow-flight=.*/allow-flight=$ALLOW_FLIGHT/" server.properties
|
||||
fi
|
||||
if [[ -n "$MAX_PLAYERS" ]]; then
|
||||
sed -i "s/max-players=.*/max-players=$MAX_PLAYERS/" server.properties
|
||||
fi
|
||||
if [[ -n "$ONLINE_MODE" ]]; then
|
||||
sed -i "s/online-mode=.*/online-mode=$ONLINE_MODE/" server.properties
|
||||
fi
|
||||
if [[ -n "$RCON_PASSWORD" ]]; then
|
||||
sed -i "s/enable-rcon=.*/enable-rcon=true/" server.properties
|
||||
sed -i "s/rcon.password=.*/rcon.password=$RCON_PASSWORD/" server.properties
|
||||
sed -i "s/rcon.port=.*/rcon.port=${RCON_PORT:-25575}/" server.properties
|
||||
fi
|
||||
|
||||
echo "Starting server..."
|
||||
exec ./run.sh nogui
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue