mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 23:16:24 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46a09ed331 | ||
|
|
0d9bfa6478 | ||
|
|
885a921b08 | ||
|
|
5e2553274f | ||
|
|
1769f28015 | ||
|
|
17cf058aa4 | ||
|
|
ad912fe7bf | ||
|
|
c46890f9b1 | ||
|
|
c4015f4ccb | ||
|
|
c1d8dc9bb0 | ||
|
|
2e69966a6a | ||
|
|
ec06e3bfeb | ||
|
|
1c9e31c630 | ||
|
|
8f5cc315d9 | ||
|
|
61592d5c3e | ||
|
|
57dc84e204 |
13
.github/release.yml
vendored
13
.github/release.yml
vendored
@@ -2,3 +2,16 @@ changelog:
|
||||
exclude:
|
||||
authors:
|
||||
- dependabot
|
||||
categories:
|
||||
- title: Enhancements
|
||||
labels:
|
||||
- enhancement
|
||||
- title: Bug Fixes
|
||||
labels:
|
||||
- bug
|
||||
- title: Documentation
|
||||
labels:
|
||||
- documentation
|
||||
- title: Other Changes
|
||||
labels:
|
||||
- "*"
|
||||
|
||||
6
.github/workflows/build-multiarch.yml
vendored
6
.github/workflows/build-multiarch.yml
vendored
@@ -119,10 +119,10 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2.0.0
|
||||
uses: docker/setup-qemu-action@v2.1.0
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
uses: docker/build-push-action@v3.2.0
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
@@ -152,7 +152,7 @@ jobs:
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
uses: docker/build-push-action@v3.2.0
|
||||
if: github.actor == github.repository_owner
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
|
||||
2
.github/workflows/verify-pr.yml
vendored
2
.github/workflows/verify-pr.yml
vendored
@@ -46,7 +46,7 @@ jobs:
|
||||
uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v3.1.1
|
||||
uses: docker/build-push-action@v3.2.0
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
|
||||
52
README.md
52
README.md
@@ -142,6 +142,16 @@ Now you can recreate the container with any environment variable changes, etc by
|
||||
docker run -d -it --name mc-new -v mc:/data -p 25565:25565 -e EULA=TRUE -e MEMORY=2G itzg/minecraft-server
|
||||
```
|
||||
|
||||
### Locating filesystem path of anonymous volume
|
||||
|
||||
The `Source` field from the output of this command will show where the anonymous volume is mounted from:
|
||||
|
||||
```shell
|
||||
docker inspect -f "{{json .Mounts}}" CONTAINER_NAME_OR_ID
|
||||
```
|
||||
|
||||
> **NOTE** On Windows with WSL the volumes path is `\\wsl$\docker-desktop-data\data\docker\volumes`
|
||||
|
||||
## Versions
|
||||
|
||||
To use a different Minecraft version, pass the `VERSION` environment variable (case sensitive), which can have the value
|
||||
@@ -165,6 +175,8 @@ the server jar remain in the `/data` directory. It is safe to remove those._
|
||||
|
||||
## Running Minecraft server on different Java version
|
||||
|
||||
> **For Forge versions less than 1.18, you _must_ use the `java8-multiarch` (or other java8) image tag.**
|
||||
|
||||
When using the image `itzg/minecraft-server` without a tag, the `latest` image tag is implied from the table below. To use a different version of Java, please use an alternate tag to run your Minecraft server container.
|
||||
|
||||
| Tag name | Java version | Linux | JVM Type | Architecture |
|
||||
@@ -324,11 +336,11 @@ To troubleshoot any issues with memory allocation reported by the JVM, set the e
|
||||
|
||||
Enable [Forge server](http://www.minecraftforge.net/) mode by adding a `-e TYPE=FORGE` to your command-line.
|
||||
|
||||
The overall version is specified by `VERSION`, [as described in the section above](#versions) and will run the recommended Forge version by default. You can also choose to run a specific Forge version with `FORGEVERSION`, such as `-e FORGEVERSION=14.23.5.2854`.
|
||||
The overall version is specified by `VERSION`, [as described in the section above](#versions) and will run the recommended Forge version by default. You can also choose to run a specific Forge version with `FORGE_VERSION`, such as `-e FORGE_VERSION=14.23.5.2854`.
|
||||
|
||||
docker run -d -v /path/on/host:/data \
|
||||
-e TYPE=FORGE \
|
||||
-e VERSION=1.12.2 -e FORGEVERSION=14.23.5.2854 \
|
||||
-e VERSION=1.12.2 -e FORGE_VERSION=14.23.5.2854 \
|
||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||
|
||||
To use a pre-downloaded Forge installer, place it in the attached `/data` directory and
|
||||
@@ -345,6 +357,8 @@ the URL with `FORGE_INSTALLER_URL`, such as:
|
||||
|
||||
In both of the cases above, there is no need for the `VERSION` or `FORGEVERSION` variables.
|
||||
|
||||
> If an error occurred while installing Forge, it might be possible to resolve by temporarily setting `FORGE_FORCE_REINSTALL` to "true". Be sure to remove that variable after successfully starting the server.
|
||||
|
||||
### Running a Fabric Server
|
||||
|
||||
Enable [Fabric server](https://fabricmc.net/) mode by adding a `-e TYPE=FABRIC` to your command-line.
|
||||
@@ -801,7 +815,9 @@ GENERIC_PACKS_SUFFIX=.zip
|
||||
|
||||
would expand to `https://cdn.example.org/configs-v9.0.1.zip,https://cdn.example.org/mods-v4.3.6.zip`.
|
||||
|
||||
If applying large generic packs, the update check can be time-consuming since a SHA1 checksum is compared. To skip the update check set `SKIP_GENERIC_PACK_UPDATE_CHECK` to "true". Conversely, the generic pack(s) can be forced to be applied without comparing the checksum by setting `FORCE_GENERIC_PACK_UPDATE` to "true".
|
||||
If applying large generic packs, the update can be time-consuming. To skip the update set `SKIP_GENERIC_PACK_UPDATE_CHECK` to "true". Conversely, the generic pack(s) can be forced to be applied by setting `FORCE_GENERIC_PACK_UPDATE` to "true".
|
||||
|
||||
The most time consuming portion of the generic pack update is generating and comparing the SHA1 checksum. To skip the checksum generation, set `SKIP_GENERIC_PACK_CHECKSUM` to "true.
|
||||
|
||||
### Mod/Plugin URL Listing File
|
||||
|
||||
@@ -876,12 +892,14 @@ docker run -d -e EXTRA_ARGS='--world-dir ./worlds/'
|
||||
|
||||
### Datapacks
|
||||
Datapacks can be installed in a similar manner to mods/plugins. There are many environment variables which function in the same way they do for [mods](#working-with-mods-and-plugins):
|
||||
* `DATAPACKS`
|
||||
* `DATAPACKS_FILE`
|
||||
* `REMOVE_OLD_DATAPACKS`
|
||||
* `REMOVE_OLD_DATAPACKS_DEPTH`
|
||||
* `REMOVE_OLD_DATAPACKS_INCLUDE`
|
||||
* `REMOVE_OLD_DATAPACKS_EXCLUDE`
|
||||
|
||||
* `DATAPACKS`: comma-separated list of zip file URL, zip file in container, or directory in container
|
||||
* `DATAPACKS_FILE`: a text file within the container where each line is a zip file URL, zip file in container, or directory in container
|
||||
* `REMOVE_OLD_DATAPACKS`: if "true" the datapacks directory is removed of everything matching `REMOVE_OLD_DATAPACKS_INCLUDE`, but excluding `REMOVE_OLD_DATAPACKS_EXCLUDE` no deeper than `REMOVE_OLD_DATAPACKS_DEPTH`
|
||||
* `REMOVE_OLD_DATAPACKS_DEPTH`: default is 16
|
||||
* `REMOVE_OLD_DATAPACKS_INCLUDE`: default is `*.zip`
|
||||
* `REMOVE_OLD_DATAPACKS_EXCLUDE`: default is empty
|
||||
|
||||
Datapacks will be placed in `/data/$LEVEL/datapacks`
|
||||
|
||||
### VanillaTweaks
|
||||
@@ -960,13 +978,7 @@ CraftingTweaks Json:
|
||||
|
||||
By default, the server configuration will be created and set based on the following environment variables, but only the first time the server is started. If the `server.properties` file already exists, the values in them will not be changed.
|
||||
|
||||
If you would like to override the server configuration each time the container starts up, you can set the `OVERRIDE_SERVER_PROPERTIES` environment variable like:
|
||||
|
||||
docker run -d -e OVERRIDE_SERVER_PROPERTIES=true ...
|
||||
|
||||
This will reset any manual configuration of the `server.properties` file, so if you want to make any persistent configuration changes you will need to make sure you have properly set the proper environment variables in your container configuration.
|
||||
|
||||
In the opposite case, you can skip the startup script's creation of `server.properties`, by setting `SKIP_SERVER_PROPERTIES` to "true".
|
||||
If you prefer to manually manage the `server.properties` file, set `OVERRIDE_SERVER_PROPERTIES` to "false". Similarly, you can entirely skip the startup script's creation of `server.properties` by setting `SKIP_SERVER_PROPERTIES` to "true".
|
||||
|
||||
> NOTE: to clear a server property, set the variable to an empty string, such as `-e RESOURCE_PACK=""`. A variables that maps to a server property that is unset, is ignored and the existing `server.property` is left unchanged.
|
||||
|
||||
@@ -1034,6 +1046,14 @@ If ops configuration already exists, `OPS_FILE` will not be retrieved and any us
|
||||
|
||||
> Similar to whitelists, you can provide both `OPS_FILE` and `OPS`, and Minecraft 1.7.5 or earlier will use `ops.txt` rather than `ops.json`.
|
||||
|
||||
### Enable/disable initial selection of datapacks
|
||||
|
||||
New to [22W42A](https://www.minecraft.net/en-us/article/minecraft-snapshot-22w42a), datapacks with feature flags can be controlled before initial world creation by setting these to a comma separated list of packs:
|
||||
|
||||
- `INITIAL_ENABLED_PACKS`
|
||||
such as "update_1_20,bundle"
|
||||
- `INITIAL_DISABLED_PACKS`
|
||||
|
||||
### Server icon
|
||||
|
||||
A server icon can be configured using the `ICON` variable. The image will be automatically
|
||||
|
||||
@@ -132,7 +132,6 @@ services:
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "easy"
|
||||
MAX_TICK_TIME: "-1"
|
||||
VIEW_DISTANCE: "6"
|
||||
ALLOW_FLIGHT: "true"
|
||||
OPS: ""
|
||||
VIEW_DISTANCE: 10
|
||||
|
||||
@@ -98,7 +98,7 @@ services:
|
||||
# #
|
||||
# VERSION: Defines the version of MC the modpack is based on. #
|
||||
# #
|
||||
# FORGEVERSION: Defines the version of FORGE the modpack uses. #
|
||||
# FORGE_VERSION: Defines the version of FORGE the modpack uses. #
|
||||
# This can usually be found in the modpack.zip as #
|
||||
# installer.jar #
|
||||
# #
|
||||
@@ -109,7 +109,7 @@ services:
|
||||
####################################################################
|
||||
TYPE: FORGE
|
||||
VERSION: 1.16.5
|
||||
FORGEVERSION: 36.2.39
|
||||
FORGE_VERSION: 36.2.39
|
||||
GENERIC_PACK: /modpacks/Better+MC+Server+Pack+PLUS+1.16.5+v40+HF.zip
|
||||
|
||||
####################################################################
|
||||
|
||||
@@ -97,7 +97,7 @@ services:
|
||||
# #
|
||||
# VERSION: Defines the version of MC the modpack is based on. #
|
||||
# #
|
||||
# FORGEVERSION: Defines the version of FORGE the modpack uses. #
|
||||
# FORGE_VERSION: Defines the version of FORGE the modpack uses. #
|
||||
# This can usually be found in the modpack.zip as #
|
||||
# installer.jar #
|
||||
# #
|
||||
@@ -108,7 +108,7 @@ services:
|
||||
####################################################################
|
||||
TYPE: FORGE
|
||||
VERSION: 1.18.2
|
||||
FORGEVERSION: 40.1.73
|
||||
FORGE_VERSION: 40.1.73
|
||||
GENERIC_PACK: /modpacks/tnp5.zip
|
||||
|
||||
####################################################################
|
||||
@@ -144,7 +144,6 @@ services:
|
||||
VIEW_DISTANCE: "6"
|
||||
ALLOW_FLIGHT: "true"
|
||||
OPS: ""
|
||||
VIEW_DISTANCE: 10
|
||||
MAX_PLAYERS: 10
|
||||
PVP: "false"
|
||||
LEVEL_TYPE: "biomesoplenty"
|
||||
|
||||
@@ -11,7 +11,7 @@ services:
|
||||
TYPE: FORGE
|
||||
DEBUG: "${DEBUG:-false}"
|
||||
VERSION: ${VERSION:-1.17.1}
|
||||
FORGEVERSION: ${FORGEVERSION:-37.0.90}
|
||||
FORGE_VERSION: ${FORGE_VERSION:-37.0.90}
|
||||
GENERIC_PACK: /modpacks/${MODPACK:-Server-Files-0.0.21.zip}
|
||||
REMOVE_OLD_MODS: "${REMOVE_OLD_MODS:-false}"
|
||||
ports:
|
||||
|
||||
@@ -10,7 +10,7 @@ services:
|
||||
EULA: "true"
|
||||
TYPE: "FORGE"
|
||||
VERSION: "1.12.2"
|
||||
FORGEVERSION: "14.23.5.2860"
|
||||
FORGE_VERSION: "14.23.5.2860"
|
||||
OVERRIDE_SERVER_PROPERTIES: "true"
|
||||
DIFFICULTY: "hard"
|
||||
MAX_TICK_TIME: "-1"
|
||||
|
||||
@@ -14,8 +14,8 @@ services:
|
||||
EULA: "TRUE"
|
||||
#VERSION: "1.12.2" (Ensure this is compatbile with the version of SpongeForge you are using!)
|
||||
TYPE: "FORGE"
|
||||
FORGEVERSION: "RECOMMENDED"
|
||||
#FORGEVERSION: "14.23.5.2807"
|
||||
FORGE_VERSION: "RECOMMENDED"
|
||||
#FORGE_VERSION: "14.23.5.2807"
|
||||
CONSOLE: "false"
|
||||
ENABLE_RCON: "true"
|
||||
RCON_PASSWORD: "testing"
|
||||
|
||||
22
kustomize/README.md
Normal file
22
kustomize/README.md
Normal file
@@ -0,0 +1,22 @@
|
||||
This directory provides a base to use with [kubectl kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/).
|
||||
|
||||
## Example overlay content
|
||||
|
||||
### kustomization.yml
|
||||
```yaml
|
||||
nameSuffix: "-forge"
|
||||
commonLabels:
|
||||
server: forge
|
||||
bases:
|
||||
- https://github.com/itzg/docker-minecraft-server.git/kustomize/base
|
||||
configMapGenerator:
|
||||
- name: mc
|
||||
envs:
|
||||
- mc.env
|
||||
```
|
||||
|
||||
### mc.env
|
||||
```
|
||||
EULA=true
|
||||
TYPE=FORGE
|
||||
```
|
||||
3
kustomize/base/kustomization.yml
Normal file
3
kustomize/base/kustomization.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
resources:
|
||||
- statefulset.yml
|
||||
- service.yml
|
||||
17
kustomize/base/service.yml
Normal file
17
kustomize/base/service.yml
Normal file
@@ -0,0 +1,17 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
service: mc
|
||||
annotations: {}
|
||||
# Such as
|
||||
# mc-router.itzg.me/externalServerName: $(EXTERNAL_SERVICE_NAME)
|
||||
name: mc
|
||||
spec:
|
||||
ports:
|
||||
- name: minecraft
|
||||
port: 25565
|
||||
targetPort: 25565
|
||||
type: NodePort
|
||||
selector:
|
||||
server: mc
|
||||
51
kustomize/base/statefulset.yml
Normal file
51
kustomize/base/statefulset.yml
Normal file
@@ -0,0 +1,51 @@
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: mc
|
||||
spec:
|
||||
replicas: 1
|
||||
serviceName: mc
|
||||
selector:
|
||||
matchLabels:
|
||||
server: mc
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
server: mc
|
||||
spec:
|
||||
containers:
|
||||
- name: mc
|
||||
envFrom:
|
||||
- configMapRef:
|
||||
name: mc
|
||||
optional: true
|
||||
env: []
|
||||
image: itzg/minecraft-server
|
||||
stdin: true
|
||||
tty: true
|
||||
volumeMounts:
|
||||
- mountPath: /data
|
||||
name: data
|
||||
resources:
|
||||
requests:
|
||||
cpu: 150m
|
||||
livenessProbe:
|
||||
exec:
|
||||
command: ["mc-health"]
|
||||
initialDelaySeconds: 120
|
||||
periodSeconds: 60
|
||||
readinessProbe:
|
||||
exec:
|
||||
command: ["mc-health"]
|
||||
initialDelaySeconds: 20
|
||||
periodSeconds: 10
|
||||
failureThreshold: 12
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: data
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 500Mi
|
||||
@@ -16,9 +16,15 @@ IFS=$'\n\t'
|
||||
: "${RCON_CMDS_LAST_DISCONNECT:=}"
|
||||
: "${RCON_CMDS_PERIOD:=10}"
|
||||
: "${RCON_PASSWORD_FILE:=}"
|
||||
: "${ENABLE_RCON:=true}"
|
||||
: "${RCON_PASSWORD:=minecraft}"
|
||||
: "${RCON_PORT:=25575}"
|
||||
export RCON_PASSWORD RCON_PORT
|
||||
export ENABLE_RCON RCON_PASSWORD RCON_PORT
|
||||
|
||||
: "${MEMORY=1G}"
|
||||
: "${INIT_MEMORY=${MEMORY}}"
|
||||
: "${MAX_MEMORY=${MEMORY}}"
|
||||
export MEMORY INIT_MEMORY MAX_MEMORY
|
||||
|
||||
shopt -s nullglob
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
: "${FORGEVERSION:=RECOMMENDED}"
|
||||
: "${FORGE_VERSION:=${FORGEVERSION:-RECOMMENDED}}"
|
||||
: "${FORGE_FORCE_REINSTALL:=false}}"
|
||||
|
||||
# shellcheck source=start-utils
|
||||
. "${SCRIPTS:-$(dirname "$0")}/start-utils"
|
||||
@@ -10,8 +11,8 @@ if ! mc-image-helper install-forge \
|
||||
--output-directory=/data \
|
||||
--results-file=/data/.run-forge.env \
|
||||
--minecraft-version="${VANILLA_VERSION}" \
|
||||
--forge-version="${FORGEVERSION}" \
|
||||
--force-reinstall="${FORCE_REINSTALL:-false}"; then
|
||||
--forge-version="${FORGE_VERSION}" \
|
||||
--force-reinstall="${FORGE_FORCE_REINSTALL}"; then
|
||||
log "ERROR failed to install forge"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -113,10 +113,6 @@ if [[ ${GUI,,} = false ]]; then
|
||||
EXTRA_ARGS+=" nogui"
|
||||
fi
|
||||
|
||||
: "${MEMORY=1G}"
|
||||
: "${INIT_MEMORY=${MEMORY}}"
|
||||
: "${MAX_MEMORY=${MEMORY}}"
|
||||
|
||||
expandedDOpts=
|
||||
if [ -n "$JVM_DD_OPTS" ]; then
|
||||
for dopt in $JVM_DD_OPTS
|
||||
|
||||
@@ -224,6 +224,9 @@ function genericPacks() {
|
||||
extract "${pack}" "${base_dir}"
|
||||
done
|
||||
|
||||
# Remove any eula file since container manages it
|
||||
rm -f "${base_dir}/eula.txt"
|
||||
|
||||
# recalculate the actual base directory of content
|
||||
if ! base_dir=$(mc-image-helper find \
|
||||
--max-depth=3 --type=directory --name=mods,plugins,config \
|
||||
@@ -251,10 +254,14 @@ function genericPacks() {
|
||||
cp -R -f "${base_dir}"/* /data
|
||||
rm -rf $original_base_dir
|
||||
|
||||
log "Saving generic pack(s) checksum"
|
||||
sha1sum "${packFiles[@]}" > "${sum_file}"
|
||||
if isDebugging; then
|
||||
cat "$sum_file"
|
||||
if isTrue "${SKIP_GENERIC_PACK_CHECKSUM:-false}"; then
|
||||
log "Skipping generic pack(s) checksum"
|
||||
else
|
||||
log "Saving generic pack(s) checksum"
|
||||
sha1sum "${packFiles[@]}" > "${sum_file}"
|
||||
if isDebugging; then
|
||||
cat "$sum_file"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -4,7 +4,9 @@
|
||||
. "${SCRIPTS:-/}start-utils"
|
||||
|
||||
: "${SERVER_PROPERTIES:=/data/server.properties}"
|
||||
: "${ENABLE_RCON:=true}"
|
||||
: "${OVERRIDE_SERVER_PROPERTIES:=true}"
|
||||
: "${SKIP_SERVER_PROPERTIES:=false}"
|
||||
: "${ENABLE_WHITELIST:=}"
|
||||
|
||||
# FUNCTIONS
|
||||
function setServerPropValue {
|
||||
@@ -39,33 +41,18 @@ function setServerProp {
|
||||
}
|
||||
|
||||
function customizeServerProps {
|
||||
local firstSetup=$1
|
||||
# Whitelist processing
|
||||
if [ -n "$WHITELIST" ] || [ -n "$WHITELIST_FILE" ] || isTrue "${ENABLE_WHITELIST:-false}"; then
|
||||
if [ -n "$WHITELIST" ] || [ -n "$WHITELIST_FILE" ] || isTrue "${ENABLE_WHITELIST}"; then
|
||||
log "Enabling whitelist functionality"
|
||||
setServerPropValue "white-list" "true"
|
||||
setServerPropValue "enforce-whitelist" "true"
|
||||
else
|
||||
elif isTrue "$firstSetup" || isFalse "${ENABLE_WHITELIST}"; then
|
||||
log "Disabling whitelist functionality"
|
||||
setServerPropValue "white-list" "false"
|
||||
setServerProp "enforce-whitelist" ENFORCE_WHITELIST
|
||||
fi
|
||||
|
||||
# If not provided, generate a reasonable default message-of-the-day,
|
||||
# which shows up in the server listing in the client
|
||||
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
|
||||
else
|
||||
label=${ORIGINAL_TYPE}
|
||||
fi
|
||||
|
||||
# Convert label to title-case
|
||||
label=${label,,}
|
||||
label=${label^}
|
||||
MOTD="A ${label} Minecraft Server powered by Docker"
|
||||
fi
|
||||
|
||||
# normalize MOTD
|
||||
if [[ ${TYPE^^} = LIMBO ]]; then
|
||||
if [[ $MOTD ]] && ! [[ $MOTD =~ ^{ ]]; then
|
||||
@@ -121,7 +108,11 @@ function customizeServerProps {
|
||||
setServerProp "simulation-distance" SIMULATION_DISTANCE
|
||||
setServerProp "previews-chat" PREVIEWS_CHAT
|
||||
setServerProp "enforce-secure-profile" ENFORCE_SECURE_PROFILE
|
||||
setServerPropValue "motd" "$(echo "$MOTD" | mc-image-helper asciify)"
|
||||
setServerProp "initial-enabled-packs" INITIAL_ENABLED_PACKS
|
||||
setServerProp "initial-disabled-packs" INITIAL_DISABLED_PACKS
|
||||
if [[ $MOTD ]]; then
|
||||
setServerPropValue "motd" "$(echo "$MOTD" | mc-image-helper asciify)"
|
||||
fi
|
||||
[[ $LEVEL_TYPE ]] && setServerPropValue "level-type" "${LEVEL_TYPE^^}"
|
||||
|
||||
if [ -n "$DIFFICULTY" ]; then
|
||||
@@ -208,22 +199,31 @@ if [[ ${TYPE} == "CURSEFORGE" ]]; then
|
||||
log "detected FTB, changing properties path to ${SERVER_PROPERTIES}"
|
||||
fi
|
||||
|
||||
if ! isTrue "${SKIP_SERVER_PROPERTIES:-false}"; then
|
||||
if ! isTrue "${SKIP_SERVER_PROPERTIES}"; then
|
||||
if [ ! -e "$SERVER_PROPERTIES" ]; then
|
||||
log "Creating server properties in ${SERVER_PROPERTIES}"
|
||||
customizeServerProps
|
||||
elif [ -n "${OVERRIDE_SERVER_PROPERTIES}" ]; then
|
||||
case ${OVERRIDE_SERVER_PROPERTIES^^} in
|
||||
TRUE|1)
|
||||
log "Updating server properties in ${SERVER_PROPERTIES}"
|
||||
customizeServerProps
|
||||
;;
|
||||
*)
|
||||
log "server.properties already created, skipping"
|
||||
;;
|
||||
esac
|
||||
|
||||
# If not provided, generate a reasonable default message-of-the-day,
|
||||
# which shows up in the server listing in the client
|
||||
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
|
||||
else
|
||||
label=${ORIGINAL_TYPE}
|
||||
fi
|
||||
|
||||
# Convert label to title-case
|
||||
label=${label,,}
|
||||
label=${label^}
|
||||
MOTD="A ${label} Minecraft Server powered by Docker"
|
||||
fi
|
||||
|
||||
customizeServerProps true
|
||||
elif isTrue "${OVERRIDE_SERVER_PROPERTIES}"; then
|
||||
customizeServerProps false
|
||||
else
|
||||
log "server.properties already created, skipping"
|
||||
log "server.properties already created and managed manually"
|
||||
fi
|
||||
else
|
||||
log "Skipping setup of server.properties"
|
||||
|
||||
@@ -58,7 +58,11 @@ getResourceFromSpiget() {
|
||||
exit 2
|
||||
fi
|
||||
|
||||
installedVersion=$(jq -r '.name' $versionfile)
|
||||
if isTrue "${REMOVE_OLD_MODS:-false}"; then
|
||||
installedVersion=0.0.0
|
||||
else
|
||||
installedVersion=$(jq -r '.name' $versionfile)
|
||||
fi
|
||||
newVersion=$(jq -r '.name' $versionfileNew)
|
||||
|
||||
if [ "$installedVersion" = "$newVersion" ]; then
|
||||
|
||||
Reference in New Issue
Block a user