diff --git a/README.md b/README.md index 78056ac1..7edfa3e6 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ By default, the container will download the latest version of the "vanilla" [Min * [Running on RaspberryPi](#running-on-raspberrypi) * [Contributing](#contributing) - + @@ -587,6 +587,8 @@ Configuration options with defaults: - `LIMBO_SCHEMA_FILENAME`=default.schem - `LEVEL`="Default;${LIMBO_SCHEMA_FILENAME}" +> NOTE: instead of using format codes in the MOTD, Limbo requires [JSON chat content](https://minecraft.fandom.com/wiki/Raw_JSON_text_format#Java_Edition). If a plain string is provided, which is the default, then it gets converted into the required JSON structure. + ### Running a Crucible server A [Crucible](https://github.com/CrucibleMC/Crucible) server can be run by setting `TYPE` to `CRUCIBLE`. diff --git a/scripts/start-finalExec b/scripts/start-finalExec index f0d6b5fb..d7325a04 100755 --- a/scripts/start-finalExec +++ b/scripts/start-finalExec @@ -323,10 +323,10 @@ EOF else exec mc-server-runner "${mcServerRunnerArgs[@]}" "${finalArgs[@]}" fi -elif [[ -x run.sh ]]; then +elif [[ $SERVER =~ run.sh ]]; then log "Using Forge supplied run.sh script..." echo $JVM_XX_OPTS $JVM_OPTS $expandedDOpts > user_jvm_args.txt - exec mc-server-runner "${mcServerRunnerArgs[@]}" --shell bash run.sh + exec mc-server-runner "${mcServerRunnerArgs[@]}" --shell bash "${SERVER}" else # If we have a bootstrap.txt file... feed that in to the server stdin if [ -f /data/bootstrap.txt ]; then diff --git a/scripts/start-setupServerProperties b/scripts/start-setupServerProperties index 0febd096..c700702e 100755 --- a/scripts/start-setupServerProperties +++ b/scripts/start-setupServerProperties @@ -48,7 +48,7 @@ function customizeServerProps { # If not provided, generate a reasonable default message-of-the-day, # which shows up in the server listing in the client - if [ -z "$MOTD" ]; then + if ! [ -v "$MOTD" ]; then # snapshot is the odd case where we have to look at version to identify that label if [[ ${ORIGINAL_TYPE} == "VANILLA" && ${VERSION} == "SNAPSHOT" ]]; then label=SNAPSHOT @@ -62,6 +62,13 @@ function customizeServerProps { MOTD="A ${label} Minecraft Server powered by Docker" fi + # normalize MOTD + if [[ ${TYPE^^} = LIMBO ]]; then + if [[ $MOTD ]] && ! [[ $MOTD =~ ^{ ]]; then + MOTD="{\"text\":\"${MOTD}\"}" + fi + fi + setServerProp "server-name" SERVER_NAME setServerProp "server-ip" SERVER_IP setServerProp "server-port" SERVER_PORT