diff --git a/docs/configuration/server-properties.md b/docs/configuration/server-properties.md index a7f85247..30d43192 100644 --- a/docs/configuration/server-properties.md +++ b/docs/configuration/server-properties.md @@ -26,7 +26,7 @@ renders !!! note "Escape unicode" - Some Minecraft versions and server types do not support unicode characters, such as §, in `server.properties`. In those cases, an extra "\u00C2" will appear in the file and the client will render those as  characters. Unicode characters can be written as escaped codes by setting the environment variable `SERVER_PROPERTIES_ESCAPE_UNICODE` to "true". + For Minecraft versions less than 1.20, unicode characters in `server.properties` will be escaped as `\uXXXX`, by default. That behavior can be altered by setting `SERVER_PROPERTIES_ESCAPE_UNICODE` to "true" or "false". To produce a multi-line MOTD, embed a newline character as `\n` in the string, such as diff --git a/scripts/start-setupServerProperties b/scripts/start-setupServerProperties index a5e71a0c..f81f8e54 100755 --- a/scripts/start-setupServerProperties +++ b/scripts/start-setupServerProperties @@ -25,6 +25,7 @@ function customizeServerProps { # normalize MOTD if [[ ${TYPE^^} = LIMBO ]]; then if [[ $MOTD ]] && ! [[ $MOTD =~ ^{ ]]; then + # shellcheck disable=SC2089 MOTD="{\"text\":\"${MOTD}\"}" fi fi @@ -110,11 +111,17 @@ function customizeServerProps { setPropertiesArgs=( --definitions "/image/property-definitions.json" - --escape-unicode="${SERVER_PROPERTIES_ESCAPE_UNICODE:-false}" ) if [[ -v CUSTOM_SERVER_PROPERTIES ]]; then setPropertiesArgs+=(--custom-properties "$CUSTOM_SERVER_PROPERTIES") fi + if [[ -v SERVER_PROPERTIES_ESCAPE_UNICODE ]]; then + if isTrue "$SERVER_PROPERTIES_ESCAPE_UNICODE"; then + setPropertiesArgs+=(--escape-unicode) + fi + elif versionLessThan '1.20'; then + setPropertiesArgs+=(--escape-unicode) + fi handleDebugMode if ! mc-image-helper set-properties "${setPropertiesArgs[@]}" "$SERVER_PROPERTIES"; then