From 977d082638347092261e834d7e5dd2f54db0f5f6 Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Fri, 7 Jan 2022 18:32:10 -0600 Subject: [PATCH] fix(limbo): convert MOTD to JSON chat format (#1259) --- README.md | 2 ++ scripts/start-setupServerProperties | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 948fb452..55e4310e 100644 --- a/README.md +++ b/README.md @@ -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-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