Compare commits

..

1 Commits

Author SHA1 Message Date
Geoff Bourne
288dc1f0b3 docs: avoid overly describing server properties 2025-06-23 20:14:50 -05:00
21 changed files with 118 additions and 204 deletions

View File

@@ -29,8 +29,6 @@ jobs:
- java17
- java17-graalvm
- java17-alpine
- java16
- java11
- java8
- java8-graalvm-ce
- java8-openj9
@@ -76,41 +74,31 @@ jobs:
baseImage: eclipse-temurin:17-jre-alpine
platforms: linux/amd64
mcVersion: 1.20.4
# JAVA 16
- variant: java16
baseImage: adoptopenjdk:16-jre-hotspot
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.16.5
# JAVA 11
- variant: java11
baseImage: adoptopenjdk:11-jre-hotspot
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.16.4
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
- variant: java8
baseImage: eclipse-temurin:8u312-b07-jre-focal
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.12.2
# Pin version for Java 8
# mcHelperVersion: 1.46.0
mcHelperVersion: 1.42.1
- variant: java8-graalvm-ce
baseImage: ghcr.io/graalvm/graalvm-ce:java8
platforms: linux/amd64
mcVersion: 1.12.2
# Pin version for Java 8
# mcHelperVersion: 1.46.0
mcHelperVersion: 1.42.1
- variant: java8-jdk
baseImage: eclipse-temurin:8u312-b07-jdk-focal
platforms: linux/amd64,linux/arm64
mcVersion: 1.12.2
# Pin version for Java 8
# mcHelperVersion: 1.46.0
mcHelperVersion: 1.42.1
- variant: java8-openj9
baseImage: ibm-semeru-runtimes:open-8u312-b07-jre
platforms: linux/amd64,linux/arm64
mcVersion: 1.12.2
# Pin version for Java 8
# mcHelperVersion: 1.46.0
mcHelperVersion: 1.42.1
env:
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
HAS_IMAGE_REPO_ACCESS: ${{ secrets.DOCKER_USER != '' && secrets.DOCKER_PASSWORD != '' }}

View File

@@ -48,7 +48,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
ARG MC_HELPER_VERSION=1.47.1
ARG MC_HELPER_VERSION=1.45.0
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
# used for cache busting local copy of mc-image-helper
ARG MC_HELPER_REV=1

View File

@@ -50,17 +50,9 @@ In order to attach and interact with the Minecraft server make sure to enable TT
tty: true
```
With that you can attach and interact at any time using the following, replacing the `{...}` placeholders.
With that you can attach and interact at any time using
...when container is created with `docker run`
```
docker attach {container name or ID}
```
...or when declared using a compose file
```
docker compose attach {service name}
```
docker attach mc
and then Control-p Control-q to **detach**.

View File

@@ -84,19 +84,9 @@ To produce a multi-line MOTD, embed a newline character as `\n` in the string, s
# MOTD: "line one\nline two"
```
The following example combines a multi-line MOTD with [placeholders](#placeholders) from the latest version of the installed modpack:
!!! tip
!!! example
```yaml
MOD_PLATFORM: AUTO_CURSEFORGE
CF_SLUG: craftoria
MOTD: |
A %TYPE% server on %VERSION%
running %MODPACK_NAME% %MODPACK_VERSION%
```
![](../img/motd-with-placeholders.png)
You can also embed configured and resolved environment variables using [placeholders](#placeholders).
### Difficulty
@@ -312,28 +302,29 @@ Example for a superflat world:
- Desert biome
```yaml
environment:
LEVEL_TYPE: FLAT
GENERATOR_SETTINGS: >-
{
"layers": [
{
"block": "minecraft:bedrock",
"height": 1
},
{
"block": "minecraft:stone",
"height": 2
},
{
"block": "minecraft:sandstone",
"height": 15
}
],
"biome": "minecraft:desert"
}
LEVEL_TYPE: FLAT
GENERATOR_SETTINGS: >-4
{
"layers": [
{
"block": "minecraft:bedrock",
"height": 1
},
{
"block": "minecraft:stone",
"height": 2
},
{
"block": "minecraft:sandstone",
"height": 15
}
],
"biome": "minecraft:desert"
}
```
For more details, refer to the Minecraft Wiki sections for [Superflat Multiplayer](https://minecraft.wiki/w/Superflat#Multiplayer) and [generator options tag format](https://minecraft.wiki/w/Java_Edition_level_format#generatorOptions_tag_format).
For more details, check the [official wiki](https://minecraft.wiki/w/Java_Edition_level_format#generatorOptions_tag_format).
### Custom Server Resource Pack
@@ -396,43 +387,41 @@ When using `docker run` from a bash shell, the entries must be quoted with the `
### Other server property mappings
| Environment Variable | Server Property |
|-----------------------------------|-------------------------------------------------------------------------------------------------------------------|
| ACCEPTS_TRANSFERS | [accepts-transfers](https://minecraft.wiki/w/Server.properties#accepts-transfers) |
| ALLOW_FLIGHT | [allow-flight](https://minecraft.wiki/w/Server.properties#allow-flight) |
| ALLOW_NETHER | [allow-nether](https://minecraft.wiki/w/Server.properties#allow-nether) |
| BROADCAST_CONSOLE_TO_OPS | [broadcast-console-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-console-to-ops) |
| BROADCAST_RCON_TO_OPS | [broadcast-rcon-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-rcon-to-ops) |
| BUG_REPORT_LINK | [bug-report-link](https://minecraft.wiki/w/Server.properties#bug-report-link) |
| ENABLE_COMMAND_BLOCK | [enable-command-block](https://minecraft.wiki/w/Server.properties#enable-command-block) |
| ENABLE_STATUS | [enable-status](https://minecraft.wiki/w/Server.properties#enable-status) |
| ENFORCE_SECURE_PROFILE | [enforce-secure-profile](https://minecraft.wiki/w/Server.properties#enforce-secure-profile) |
| ENTITY_BROADCAST_RANGE_PERCENTAGE | [entity-broadcast-range-percentage](https://minecraft.wiki/w/Server.properties#entity-broadcast-range-percentage) |
| FORCE_GAMEMODE | [force-gamemode](https://minecraft.wiki/w/Server.properties#force-gamemode) |
| FUNCTION_PERMISSION_LEVEL | [function-permission-level](https://minecraft.wiki/w/Server.properties#function-permission-level) |
| GENERATE_STRUCTURES | [generate-structures](https://minecraft.wiki/w/Server.properties#generate-structures) |
| HARDCORE | [hardcore](https://minecraft.wiki/w/Server.properties#hardcore) |
| HIDE_ONLINE_PLAYERS | [hide-online-players](https://minecraft.wiki/w/Server.properties#hide-online-players) |
| LOG_IPS | [log-ips](https://minecraft.wiki/w/Server.properties#log-ips) |
| MAX_CHAINED_NEIGHBOR_UPDATES | [max-chained-neighbor-updates](https://minecraft.wiki/w/Server.properties#max-chained-neighbor-updates) |
| MAX_PLAYERS | [max-players](https://minecraft.wiki/w/Server.properties#max-players) |
| MAX_TICK_TIME | [max-tick-time](https://minecraft.wiki/w/Server.properties#max-tick-time) |
| MAX_WORLD_SIZE | [max-world-size](https://minecraft.wiki/w/Server.properties#max-world-size) |
| NETWORK_COMPRESSION_THRESHOLD | [network-compression-threshold](https://minecraft.wiki/w/Server.properties#network-compression-threshold) |
| ONLINE_MODE | [online-mode](https://minecraft.wiki/w/Server.properties#online-mode) |
| OP_PERMISSION_LEVEL | [op-permission-level](https://minecraft.wiki/w/Server.properties#op-permission-level) |
| PAUSE_WHEN_EMPTY_SECONDS | [pause-when-empty-seconds](https://minecraft.wiki/w/Server.properties#pause-when-empty-seconds) |
| PLAYER_IDLE_TIMEOUT | [player-idle-timeout](https://minecraft.wiki/w/Server.properties#player-idle-timeout) |
| PREVENT_PROXY_CONNECTIONS | [prevent-proxy-connections](https://minecraft.wiki/w/Server.properties#prevent-proxy-connections) |
| PVP | [pvp](https://minecraft.wiki/w/Server.properties#pvp) |
| RATE_LIMIT | [rate-limit](https://minecraft.wiki/w/Server.properties#rate-limit) |
| REGION_FILE_COMPRESSION | [region-file-compression](https://minecraft.wiki/w/Server.properties#region-file-compression) |
| RESOURCE_PACK_ID | [resource-pack-id](https://minecraft.wiki/w/Server.properties#resource-pack-id) |
| RESOURCE_PACK_PROMPT | [resource-pack-prompt](https://minecraft.wiki/w/Server.properties#resource-pack-prompt) |
| SERVER_NAME | [server-name](https://minecraft.wiki/w/Server.properties#server-name) |
| SIMULATION_DISTANCE | [simulation-distance](https://minecraft.wiki/w/Server.properties#simulation-distance) |
| SPAWN_MONSTERS | [spawn-monsters](https://minecraft.wiki/w/Server.properties#spawn-monsters) |
| SPAWN_PROTECTION | [spawn-protection](https://minecraft.wiki/w/Server.properties#spawn-protection) |
| SYNC_CHUNK_WRITES | [sync-chunk-writes](https://minecraft.wiki/w/Server.properties#sync-chunk-writes) |
| USE_NATIVE_TRANSPORT | [use-native-transport](https://minecraft.wiki/w/Server.properties#use-native-transport) |
| VIEW_DISTANCE | [view-distance](https://minecraft.wiki/w/Server.properties#view-distance) |
| Environment Variable | Server Property |
|-----------------------------------|-----------------------------------------------------------------------------------------|
| ALLOW_FLIGHT | [allow-flight](https://minecraft.wiki/w/Server.properties#allow-flight) |
| ALLOW_NETHER | [allow-nether](https://minecraft.wiki/w/Server.properties#allow-nether) |
| BROADCAST_CONSOLE_TO_OPS | broadcast-console-to-ops |
| BROADCAST_RCON_TO_OPS | broadcast-rcon-to-ops |
| BUG_REPORT_LINK | bug-report-link |
| ENABLE_COMMAND_BLOCK | [enable-command-block](https://minecraft.wiki/w/Server.properties#enable-command-block) |
| ENABLE_STATUS | enable-status |
| ENFORCE_SECURE_PROFILE | enforce-secure-profile |
| ENTITY_BROADCAST_RANGE_PERCENTAGE | entity-broadcast-range-percentage |
| FORCE_GAMEMODE | [force-gamemode](https://minecraft.wiki/w/Server.properties#force-gamemode) |
| FUNCTION_PERMISSION_LEVEL | function-permission-level |
| GENERATE_STRUCTURES | [generate-structures](https://minecraft.wiki/w/Server.properties#generate-structures) |
| HARDCORE | [hardcore](https://minecraft.wiki/w/Server.properties#hardcore) |
| HIDE_ONLINE_PLAYERS | hide-online-players |
| LOG_IPS | log-ips |
| MAX_CHAINED_NEIGHBOR_UPDATES | max-chained-neighbor-updates |
| MAX_PLAYERS | [max-players](https://minecraft.wiki/w/Server.properties#max-players) |
| MAX_TICK_TIME | [max-tick-time](https://minecraft.wiki/w/Server.properties#max-tick-time) |
| MAX_WORLD_SIZE | [max-world-size](https://minecraft.wiki/w/Server.properties#max-world-size) |
| NETWORK_COMPRESSION_THRESHOLD | network-compression-threshold |
| ONLINE_MODE | [online-mode](https://minecraft.wiki/w/Server.properties#online-mode) |
| OP_PERMISSION_LEVEL | op-permission-level |
| PAUSE_WHEN_EMPTY_SECONDS | pause-when-empty-seconds |
| PLAYER_IDLE_TIMEOUT | player-idle-timeout |
| PREVENT_PROXY_CONNECTIONS | prevent-proxy-connections |
| PVP | [pvp](https://minecraft.wiki/w/Server.properties#pvp) |
| REGION_FILE_COMPRESSION | region-file-compression |
| RESOURCE_PACK_ID | resource-pack-id |
| RESOURCE_PACK_PROMPT | resource-pack-prompt |
| SERVER_NAME | [server-name](https://minecraft.wiki/w/Server.properties#server-name) |
| SIMULATION_DISTANCE | simulation-distance |
| SPAWN_MONSTERS | [spawn-monsters](https://minecraft.wiki/w/Server.properties#spawn-monsters) |
| SPAWN_PROTECTION | [spawn-protection](https://minecraft.wiki/w/Server.properties#spawn-protection) |
| SYNC_CHUNK_WRITES | sync-chunk-writes |
| USE_NATIVE_TRANSPORT | use-native-transport |
| VIEW_DISTANCE | [view-distance](https://minecraft.wiki/w/Server.properties#view-distance) |

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -29,7 +29,7 @@ where, in this case, the standard server port 25565, will be exposed on your hos
**DO NOT** port forward RCON on 25575 without first setting `RCON_PASSWORD` to a secure value. It is highly recommended to only use RCON within the container, such as with `rcon-cli`.
By default, the container will download the latest version of the "vanilla" [Minecraft: Java Edition server](https://www.minecraft.net/en-us/download/server) provided by Mojang. The [`VERSION`](versions/minecraft.md) and the [`TYPE`](types-and-platforms/index.md) can be configured to create many variations of desired Minecraft server.
By default, the container will download the latest version of the "vanilla" [Minecraft: Java Edition server](https://www.minecraft.net/en-us/download/server) provided by Mojang. The [`VERSION`](versions/java.md) and the [`TYPE`](types-and-platforms/index.md) can be configured to create many variations of desired Minecraft server.
## Using [Docker Compose](https://docs.docker.com/compose/)

View File

@@ -1,8 +1,4 @@
# Auto-Pause
!!! important
As of [1.21.2](https://minecraft.wiki/w/Java_Edition_1.21.2) it is not recommend to use this feature since Minecraft server natively auto-pauses when the server is empty. That is configured via the enivironment variable `PAUSE_WHEN_EMPTY_SECONDS`, which maps to the `pause-when-empty-seconds` server property.
An auto-pause functionality is provided that monitors whether clients are connected to the server. If a client is not connected for a specified time, the Java process is put into a pause state. When a client attempts to connect while the process is paused, then process will be restored to a running state. The experience for the client does not change. This feature can be enabled by setting the environment variable `ENABLE_AUTOPAUSE` to "true".

View File

@@ -1,13 +1,7 @@
!!! tip "For advanced use only"
This page describes a capability that is not applicable to most users. It is only intended for rare cases when a very specific Java base image is needed or additional packages need to be installed that are not generally applicable or would bloat the image size.
Be sure to confirm that the desired [version and variant of Java isn't already provided](../versions/java.md).
## Building image locally with alternate Java base
An alternate Java base image can be specified by setting the [docker build argument](https://docs.docker.com/reference/cli/docker/buildx/build/#build-arg) `BASE_IMAGE` to the desired base image. The following shows an example of using the base image `ghcr.io/graalvm/graalvm-ce:ol8-java11`:
The following shows how to change the base Java image used by the build:
```shell
docker build --build-arg BASE_IMAGE=ghcr.io/graalvm/graalvm-ce:ol8-java11 -t IMG_PREFIX/minecraft-server:java11-graalvm .

View File

@@ -50,5 +50,3 @@
`MODRINTH_ALLOWED_VERSION_TYPE`
: The version type is used to determine the newest version to use from each project. The allowed values are `release` (default), `beta`, `alpha`. Setting to `beta` will pick up both release and beta versions. Setting to `alpha` will pick up release, beta, and alpha versions.
`MODRINTH_LOADER`
: When using a custom server, set this to specify which loader type will be requested during lookups

View File

@@ -1,4 +1,4 @@
mkdocs-material == 9.6.15
mkdocs-material == 9.6.14
mkdocs-autorefs == 1.4.2
mkdocstrings[python] == 0.29.1
mkdocs-literate-nav == 0.6.2

View File

@@ -126,7 +126,3 @@ If you have attached a host directory to the `/data` volume, then you can instal
!!! note
The Folia type inherits from the Paper type. Paper's variables will override the Folia ones.
## Extra config
- `SKIP_DOWNLOAD_DEFAULTS`: when set to "true" startup will entirely skip checking for default Paper/Bukkit/Spigot config files to download

View File

@@ -10,29 +10,29 @@ or explicitly include the tag, such as
where `<tag>` refers to the first column of this table:
| Tag | Java version | Linux | JVM Type | Architecture | Note |
|----------------|--------------|--------|--------------------|---------------------|------|
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java24 | 24 | Ubuntu | Hotspot | amd64, arm64 | (2) |
| java24-graalvm | 24 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (2) |
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17-alpine | 17 | Alpine | Hotspot | amd64 (1) | |
| java16 | 16 | Ubuntu | Hotspot | amd64, arm64, armv7 | (4) |
| java11 | 11 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| Tag | Java version | Linux | JVM Type | Architecture | Note |
|------------------|--------------|--------|--------------------|---------------------|------|
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java24 | 24 | Ubuntu | Hotspot | amd64, arm64 | (2) |
| java24-graalvm | 24 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (2) |
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
| java17-alpine | 17 | Alpine | Hotspot | amd64 (1) | |
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
| java8-jdk | 8 | Ubuntu | Hotspot+JDK | amd64 | |
| java8-openj9 | 8 | Debian | OpenJ9 | amd64 | |
| java8-graalvm-ce | 8 | Oracle | GraalVM CE | amd64 | |
Notes
1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu based images instead.
2. Short-term variant, subject to deprecation upon next version introduction
3. Based on the [Oracle GraalMV images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.
4. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements)
!!! example "Example using java8"
@@ -131,11 +131,12 @@ The following image tags have been deprecated and are no longer receiving update
- adopt15
- openj9-nightly
- multiarch-latest
- java16-openj9
- java11
- java16/java16-openj9
- java17-graalvm-ce
- java17-openj9
- java19
- java20-graalvm, java20, java20-alpine
- java23-*
- java8-multiarch is still built and pushed, but please move to java8 instead
- java8-alpine, java8-jdk, java8-openj9, java8-graalvm-ce
- java8-alpine

View File

@@ -9,10 +9,12 @@ services:
EULA: true
ALLOW_FLIGHT: true
MOD_PLATFORM: AUTO_CURSEFORGE
# Allocate API key from https://console.curseforge.com/
# and set in .env file making sure to double up dollar signs, such as
# CF_API_KEY=$$2a$$10$$....
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
CF_API_KEY: ${CF_API_KEY}
CF_SLUG: craftoria
MOTD: |
A %TYPE% server on %VERSION%
running %MODPACK_NAME% %MODPACK_VERSION%
MEMORY: 8G
volumes:
# Use managed volume by default, but can change to a relative path like

View File

@@ -1,16 +0,0 @@
services:
mc:
image: itzg/minecraft-server
tty: true
stdin_open: true
environment:
EULA: true
# Match loader from versions section of https://github.com/packwiz/packwiz-example-pack/blob/v1/pack.toml
TYPE: QUILT
VERSION: "1.19"
QUILT_LOADER_VERSION: "0.17.0"
PACKWIZ_URL: https://raw.githubusercontent.com/packwiz/packwiz-example-pack/refs/heads/v1/pack.toml
volumes:
- ./data:/data
ports:
- "25565:25565"

View File

@@ -18,7 +18,6 @@
"better-tips-nbt-tag",
"betterf3",
"betterfps",
"bettergrassify",
"biomeinfo",
"block-drops-jei-addon",
"blur-forge",
@@ -37,7 +36,6 @@
"dark-mode-everywhere",
"defensive-measures",
"ding",
"distraction-free-recipes",
"drippy-loading-screen",
"dynamic-surroundings",
"dynamic-view",
@@ -109,8 +107,6 @@
"overloaded-armor-bar",
"packmenu",
"packmodemenu",
"particle-effects",
"particle-effects-reforged",
"particular",
"particular-reforged",
"reauth",

View File

@@ -10,7 +10,6 @@
"axolotlbuckets",
"BadOptimizations",
"BetterAdvancements",
"BetterGrassify",
"betterbeds",
"BetterThirdPerson",
"BHMenu",
@@ -26,11 +25,9 @@
"compass-coords",
"connectedness",
"connector",
"continuity",
"craftpresence",
"cwb",
"DisableCustomWorldsAdvice",
"distraction_free_recipes",
"drippyloadingscreen",
"eating-animation",
"emiffect",

View File

@@ -1,11 +1,10 @@
{
"accepts-transfers": {"env": "ACCEPTS_TRANSFERS"},
"allow-flight": {"env": "ALLOW_FLIGHT"},
"allow-nether": {"env": "ALLOW_NETHER"},
"bug-report-link": {"env": "BUG_REPORT_LINK"},
"announce-player-achievements": {"env": "ANNOUNCE_PLAYER_ACHIEVEMENTS"},
"broadcast-console-to-ops": {"env": "BROADCAST_CONSOLE_TO_OPS"},
"broadcast-rcon-to-ops": {"env": "BROADCAST_RCON_TO_OPS"},
"bug-report-link": {"env": "BUG_REPORT_LINK"},
"difficulty": {"env": "DIFFICULTY"},
"enable-command-block": {"env": "ENABLE_COMMAND_BLOCK"},
"enable-jmx-monitoring": {"env": "ENABLE_JMX"},
@@ -43,15 +42,14 @@
"previews-chat": {"env": "PREVIEWS_CHAT"},
"pvp": {"env": "PVP"},
"query.port": {"env": "QUERY_PORT"},
"rate-limit": {"env": "RATE_LIMIT"},
"rcon.password": {"env": "RCON_PASSWORD"},
"rcon.port": {"env": "RCON_PORT"},
"region-file-compression": {"env": "REGION_FILE_COMPRESSION"},
"require-resource-pack": {"env": "RESOURCE_PACK_ENFORCE"},
"resource-pack": {"env": "RESOURCE_PACK"},
"resource-pack-id": {"env": "RESOURCE_PACK_ID"},
"resource-pack-prompt": {"env": "RESOURCE_PACK_PROMPT"},
"resource-pack-sha1": {"env": "RESOURCE_PACK_SHA1"},
"resource-pack": {"env": "RESOURCE_PACK"},
"require-resource-pack": {"env": "RESOURCE_PACK_ENFORCE"},
"server-ip": {"env": "SERVER_IP"},
"server-name": {"env": "SERVER_NAME"},
"server-port": {"env": "SERVER_PORT"},

View File

@@ -10,7 +10,7 @@ handleDebugMode
: "${PAPER_CHANNEL:=default}"
: "${PAPER_DOWNLOAD_URL:=}"
: "${PAPER_CUSTOM_JAR:=}"
: "${PAPER_CONFIG_DEFAULTS_REPO:=${PAPER_CONFIG_REPO:=https://raw.githubusercontent.com/Shonz1/minecraft-default-configs/main}}"
: "${PAPER_CONFIG_DEFAULTS_REPO:=${PAPER_CONFIG_REPO:=https://raw.githubusercontent.com/dayyeeet/minecraft-default-configs/main}}"
resultsFile=/data/.paper.env
if [[ $PAPER_CUSTOM_JAR ]]; then

View File

@@ -14,9 +14,7 @@ handleDebugMode
: "${REPLACE_ENV_VARIABLES_EXCLUDE_PATHS:=}"
: "${PATCH_DEFINITIONS:=}"
: "${DEBUG:=false}"
: "${DOWNLOAD_DEFAULTS:=}"
: "${DOWNLOAD_DEFAULT_CONFIGS:=}"
: "${SKIP_DOWNLOAD_DEFAULTS:=false}"
if isTrue "${REPLACE_ENV_IN_PLACE}"; then
log "Replacing env variables in ${REPLACE_ENV_PATHS} that match the prefix '$REPLACE_ENV_VARIABLE_PREFIX' ..."
@@ -29,28 +27,22 @@ if isTrue "${REPLACE_ENV_IN_PLACE}"; then
"${REPLACE_ENV_PATHS[@]}"
fi
if isFalse "$SKIP_DOWNLOAD_DEFAULTS"; then
commonArgs=(
--skip-existing
--skip-up-to-date=false
--quiet-when-skipped
--ignore-missing-sources
)
if [[ $DOWNLOAD_DEFAULT_CONFIGS ]]; then
if ! mc-image-helper mcopy \
--to /data/config \
"${commonArgs[@]}" \
"$DOWNLOAD_DEFAULT_CONFIGS"; then
logWarning "One or more default config files were not available from $DOWNLOAD_DEFAULT_CONFIGS"
fi
if [[ $DOWNLOAD_DEFAULT_CONFIGS ]]; then
log "Downloading default configs, if needed"
if ! mc-image-helper mcopy \
--to /data/config \
--skip-existing --skip-up-to-date=false \
"$DOWNLOAD_DEFAULT_CONFIGS" 2> /dev/null; then
logWarning "One or more default config files were not available from $DOWNLOAD_DEFAULT_CONFIGS"
fi
if [[ $DOWNLOAD_DEFAULTS ]]; then
if ! mc-image-helper mcopy \
--to /data \
"${commonArgs[@]}" \
"$DOWNLOAD_DEFAULTS"; then
logWarning "One or more default files were not available from $DOWNLOAD_DEFAULTS"
fi
fi
if [[ $DOWNLOAD_DEFAULTS ]]; then
log "Downloading default top-level configs, if needed"
if ! mc-image-helper mcopy \
--to /data \
--skip-existing --skip-up-to-date=false \
"$DOWNLOAD_DEFAULTS" 2> /dev/null; then
logWarning "One or more default files were not available from $DOWNLOAD_DEFAULTS"
fi
fi

View File

@@ -12,7 +12,6 @@ set -e -o pipefail
: "${REMOVE_OLD_MODS_DEPTH:=1} "
: "${REMOVE_OLD_MODS_INCLUDE:=*.jar,*-version.json}"
: "${CF_API_KEY_FILE:=}" # Path to file containing CurseForge API key
: "${MODRINTH_LOADER:=}"
sum_file=/data/.generic_pack.sum
if [[ -n ${CF_API_KEY_FILE} ]]; then
@@ -264,21 +263,13 @@ function handleModrinthProjects() {
fi
if [[ $MODRINTH_PROJECTS ]]; then
if isType CUSTOM; then
if ! [[ $MODRINTH_LOADER ]]; then
logError "MODRINTH_LOADER must be set when using TYPE=CUSTOM and MODRINTH_PROJECTS"
exit 1
fi
loader="${MODRINTH_LOADER,,}"
elif isFamily HYBRID; then
if isFamily HYBRID; then
loader=${HYBRIDTYPE}
elif isFamily VANILLA; then
loader=datapack
else
loader="${TYPE,,}"
fi
mc-image-helper modrinth \
--output-directory=/data \
--world-directory="${LEVEL:-world}" \

View File

@@ -411,7 +411,7 @@ function isFamily() {
function isType() {
for t in "${@}"; do
# shellcheck disable=SC2153
if [[ ${TYPE^^} == "${t^^}" ]]; then
if [[ $TYPE == "$t" ]]; then
return 0
fi
done