mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-17 15:13:55 +00:00
Compare commits
30 Commits
2024.12.1
...
itzg-patch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
855b664e47 | ||
|
|
0e3f75879d | ||
|
|
b595c107bb | ||
|
|
3613a30709 | ||
|
|
da1b052516 | ||
|
|
abb3af07ba | ||
|
|
4f1a09b2a9 | ||
|
|
4e63990bd7 | ||
|
|
883d64159f | ||
|
|
d35b78c14e | ||
|
|
d420c523a3 | ||
|
|
1e28390d1b | ||
|
|
f79ef8f3a7 | ||
|
|
a485f84797 | ||
|
|
51ba6a2c71 | ||
|
|
e5b7a5829f | ||
|
|
6a994acc52 | ||
|
|
f46298c6b8 | ||
|
|
a72fb19ec6 | ||
|
|
4914ffbe40 | ||
|
|
03f9037668 | ||
|
|
621bafb4f2 | ||
|
|
9a20ab7b48 | ||
|
|
6514ed85a0 | ||
|
|
6391be5251 | ||
|
|
2d1a35dba8 | ||
|
|
236ed74295 | ||
|
|
05cbbfc9e3 | ||
|
|
678dda5d4a | ||
|
|
c3e96f6ac6 |
8
.github/workflows/build-multiarch.yml
vendored
8
.github/workflows/build-multiarch.yml
vendored
@@ -128,13 +128,13 @@ jobs:
|
||||
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.7.1
|
||||
uses: docker/setup-buildx-action@v3.8.0
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v3.2.0
|
||||
uses: docker/setup-qemu-action@v3.3.0
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
platforms: linux/amd64
|
||||
tags: ${{ env.IMAGE_TO_TEST }}
|
||||
@@ -172,7 +172,7 @@ jobs:
|
||||
password: ${{ github.token }}
|
||||
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
if: github.actor == github.repository_owner
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
|
||||
6
.github/workflows/verify-pr.yml
vendored
6
.github/workflows/verify-pr.yml
vendored
@@ -53,10 +53,10 @@ jobs:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3.7.1
|
||||
uses: docker/setup-buildx-action@v3.8.0
|
||||
|
||||
- name: Confirm multi-arch build
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
platforms: ${{ matrix.platforms }}
|
||||
# ensure latest base image is used
|
||||
@@ -66,7 +66,7 @@ jobs:
|
||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||
|
||||
- name: Build for test
|
||||
uses: docker/build-push-action@v6.10.0
|
||||
uses: docker/build-push-action@v6.12.0
|
||||
with:
|
||||
# Only build single platform since loading multi-arch image into daemon fails with
|
||||
# "docker exporter does not currently support exporting manifest lists"
|
||||
|
||||
@@ -50,7 +50,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.40.6
|
||||
ARG MC_HELPER_VERSION=1.40.11
|
||||
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
|
||||
|
||||
@@ -10,10 +10,12 @@
|
||||
|
||||
There you will find things like
|
||||
- [Quick start with Docker Compose](https://docker-minecraft-server.readthedocs.io/en/latest/#using-docker-compose)
|
||||
- Running [different versions of Minecraft](https://docker-minecraft-server.readthedocs.io/en/latest/versions/minecraft/) and using [various server types](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/)
|
||||
- Running [different versions of Minecraft](https://docker-minecraft-server.readthedocs.io/en/latest/versions/minecraft/) and using [various server types](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/) for Java Edition
|
||||
- [Setting server properties via container environment variables](https://docker-minecraft-server.readthedocs.io/en/latest/configuration/server-properties/)
|
||||
- [Managing mods and plugins with automated downloads and cleanup](https://docker-minecraft-server.readthedocs.io/en/latest/mods-and-plugins/)
|
||||
- [Using various modpack providers/platforms](https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/)
|
||||
- ...and much more
|
||||
|
||||
There are also many examples located in [the examples directory](examples) of this repo.
|
||||
There are also many examples located in [the examples directory](examples) of this repo.
|
||||
|
||||
This image only supports Java edition natively; however, if looking for a server that is compatible with Bedrock edition, then use [itzg/minecraft-bedrock-server](https://github.com/itzg/docker-minecraft-bedrock-server) or [refer to this section](https://docker-minecraft-server.readthedocs.io/en/latest/misc/examples/#bedrock-compatible-server) to add Bedrock compatibility to a Java edition server.
|
||||
|
||||
@@ -24,6 +24,7 @@ apk add --no-cache -U \
|
||||
tzdata \
|
||||
rsync \
|
||||
nano \
|
||||
ncurses \
|
||||
sudo \
|
||||
tar \
|
||||
zstd \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM python:3.8
|
||||
FROM python:3.9
|
||||
|
||||
RUN pip install --upgrade pip
|
||||
|
||||
|
||||
@@ -138,7 +138,8 @@ The following example shows a patch-set file where various fields in the `paper.
|
||||
}
|
||||
```
|
||||
|
||||
Supports the file formats:
|
||||
Supports the file formats:
|
||||
|
||||
- JSON
|
||||
- JSON5
|
||||
- Yaml
|
||||
|
||||
@@ -19,7 +19,7 @@ where, in this case, the standard server port 25565, will be exposed on your hos
|
||||
|
||||
!!! note
|
||||
|
||||
If you plan on running a server for a longer amount of time it is highly recommended using a management layer such as [Docker Compose](#using-docker-compose) or [Kubernetes](#deployment-templates-and-examples) to allow for incremental reconfiguration and image upgrades.
|
||||
If you plan on running a server for a longer amount of time it is highly recommended using a management layer such as [Docker Compose](#using-docker-compose) or [Kubernetes](misc/deployment/index.md#on-kubernetes) to allow for incremental reconfiguration and image upgrades.
|
||||
|
||||
!!! info
|
||||
|
||||
|
||||
@@ -22,22 +22,27 @@ The following formats are supported in the list of project-file references:
|
||||
- Project ID, such as `238222`. _The newest applicable file will be automatically selected._
|
||||
- Project slug or ID, `:`, and a file ID, such as `jei:4593548` or `238222:4593548`
|
||||
- Project slug or ID, `@`, and a partial filename, such as `jei@10.2.1.1005`. This option is useful to refer to a version of the mod/plugin rather than looking up the file ID.
|
||||
- An `@` followed by the **container path** to a listing file
|
||||
|
||||
An `@` followed by the container path to a listing file can also be provided as a project-file reference. Each line is processed as a reference where blank lines and comments that start with `#` are ignored.
|
||||
!!! info "More about listing files"
|
||||
|
||||
For example, `CURSEFORGE_FILES` can be set to "@/extras/cf-mods.txt" where the container file `/extras/cf-mods.txt` contains
|
||||
Each line in the listing file is processed as one of the references above; however, blank lines and comments that start with `#` are ignored.
|
||||
|
||||
Make sure to place the listing file in a mounted directory/volume or declare an appropriate mount for it.
|
||||
|
||||
For example, `CURSEFORGE_FILES` can be set to "@/extras/cf-mods.txt", assuming "/extras" has been added to `volumes` section, where the container file `/extras/cf-mods.txt` contains
|
||||
|
||||
```text
|
||||
# This comment is ignored
|
||||
jei:10.2.1.1005
|
||||
|
||||
# This and previous blank line are ignore
|
||||
geckolib
|
||||
aquaculture
|
||||
naturalist
|
||||
```
|
||||
|
||||
```text
|
||||
# This comment is ignored
|
||||
jei:10.2.1.1005
|
||||
|
||||
# This and previous blank line are ignore
|
||||
geckolib
|
||||
aquaculture
|
||||
naturalist
|
||||
```
|
||||
|
||||
!!! tip "Docker Compose"
|
||||
!!! tip "Multi-line values in Docker Compose"
|
||||
|
||||
Making use of the space delimited option, compose file declarations can be organized nicely with a [multi-line string](https://yaml-multiline.info/), such as
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
mkdocs-material == 9.5.48
|
||||
mkdocs-autorefs == 1.2.0
|
||||
mkdocs-material == 9.5.50
|
||||
mkdocs-autorefs == 1.3.0
|
||||
mkdocstrings == 0.27.0
|
||||
mkdocs-literate-nav == 0.6.1
|
||||
mdx-gh-links == 0.4
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
# Bukkit/Spigot
|
||||
|
||||
!!! failure "GetBukkit site no longer supports automated downloads"
|
||||
|
||||
The downloads provider <https://getbukkit.org> seems to no longer support automated downloads. As such, it is highly recommended to switch to [Paper](paper.md) instead since it is actively maintained and fully compatible with Bukkit/Spigot plugins.
|
||||
|
||||
Run a Bukkit/Spigot server type by setting the environment variable `TYPE` to "BUKKIT" or "SPIGOT".
|
||||
|
||||
!!! example
|
||||
|
||||
@@ -6,6 +6,8 @@ To allow for the selection of experimental builds, set `PAPER_CHANNEL` to "exper
|
||||
|
||||
!!! example
|
||||
|
||||
Using `docker run` command line
|
||||
|
||||
```
|
||||
docker run ... -e TYPE=PAPER ...
|
||||
|
||||
@@ -15,6 +17,26 @@ To allow for the selection of experimental builds, set `PAPER_CHANNEL` to "exper
|
||||
|
||||
docker run ... -e TYPE=PAPER -e PAPER_CHANNEL=experimental ...
|
||||
```
|
||||
|
||||
Using a compose file:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
TYPE: PAPER
|
||||
```
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
TYPE: PAPER
|
||||
VERSION: 1.20.6
|
||||
PAPER_BUILD: 140
|
||||
```
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
TYPE: PAPER
|
||||
PAPER_CHANNEL: experimental
|
||||
```
|
||||
|
||||
!!! tip
|
||||
|
||||
|
||||
13
examples/canyon/compose.yml
Normal file
13
examples/canyon/compose.yml
Normal file
@@ -0,0 +1,13 @@
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server:java8
|
||||
environment:
|
||||
EULA: true
|
||||
TYPE: canyon
|
||||
VERSION: b1.7.3
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- mc-data:/data
|
||||
volumes:
|
||||
mc-data:
|
||||
25
examples/gtnh/docker-compose.yaml
Normal file
25
examples/gtnh/docker-compose.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
services:
|
||||
mc:
|
||||
# make sure this java version matches with pack java version
|
||||
image: itzg/minecraft-server:java21
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: CUSTOM
|
||||
GENERIC_PACKS: GT_New_Horizons_2.7.2_Server_Java_17-21
|
||||
GENERIC_PACKS_SUFFIX: .zip
|
||||
GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/
|
||||
# if this isn't true, then the container tries to download the modpack every run
|
||||
SKIP_GENERIC_PACK_UPDATE_CHECK: "true"
|
||||
MEMORY: 6G
|
||||
# Make sure that this matches what is in your pack's startserver bash file
|
||||
JVM_OPTS: -Dfml.readTimeout=180 @java9args.txt
|
||||
CUSTOM_JAR_EXEC: -jar lwjgl3ify-forgePatches.jar nogui
|
||||
volumes:
|
||||
# attach a managed volume, change to a relative or absolute host directory if needed
|
||||
- mc-data:/data
|
||||
volumes:
|
||||
mc-data:
|
||||
@@ -4,7 +4,7 @@ services:
|
||||
environment:
|
||||
EULA: true
|
||||
MOTD: |
|
||||
line one
|
||||
A §l§cMinecraft§r server
|
||||
line two
|
||||
# or
|
||||
# MOTD: "line one\nline two"
|
||||
|
||||
@@ -14,11 +14,8 @@ services:
|
||||
#CF_FILENAME_MATCHER: "0.2.34"
|
||||
CF_EXCLUDE_MODS: |
|
||||
controlling
|
||||
craftpresence
|
||||
creative-core
|
||||
default-options
|
||||
equipment-compare
|
||||
item-borders
|
||||
itemphysic-lite
|
||||
konkrete
|
||||
oauth
|
||||
|
||||
19
examples/skyfactory5/compose.yml
Normal file
19
examples/skyfactory5/compose.yml
Normal file
@@ -0,0 +1,19 @@
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
environment:
|
||||
EULA: true
|
||||
# https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/
|
||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||
# CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/skyfactory-5/files/6044634
|
||||
CF_SLUG: skyfactory-5
|
||||
CF_FILENAME_MATCHER: 5.0.2
|
||||
# Loads from .env file
|
||||
CF_API_KEY: ${CF_API_KEY}
|
||||
MEMORY: 4G
|
||||
ports:
|
||||
- "25565:25565"
|
||||
volumes:
|
||||
- mc-data:/data
|
||||
volumes:
|
||||
mc-data:
|
||||
@@ -1,17 +1,18 @@
|
||||
services:
|
||||
mc:
|
||||
image: itzg/minecraft-server
|
||||
image: itzg/minecraft-server:java17
|
||||
ports:
|
||||
- "25565:25565"
|
||||
environment:
|
||||
EULA: "true"
|
||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||
CF_API_KEY: # allocate from https://console.curseforge.com/
|
||||
# allocate from https://console.curseforge.com/
|
||||
CF_API_KEY: ${CF_API_KEY}
|
||||
CF_SLUG: vault-hunters-1-18-2
|
||||
CF_FILENAME_MATCHER: "Update-10.0.0"
|
||||
MOTD: "§4----- §2 Vault Hunters: 1.18.2u10.0.0 §4 -----§r\\n §4------ §e vaulthunters.gg §4------"
|
||||
MOTD: "§4----- §2 Vault Hunters: 1.18.2 §4 -----§r\\n §4------ §e vaulthunters.gg §4------"
|
||||
MEMORY: 6G # 4G for base server + 2G per player
|
||||
CF_EXCLUDE_MODS: reauth
|
||||
CF_EXCLUDE_MODS: |
|
||||
reauth
|
||||
ALLOW_FLIGHT: true
|
||||
ENABLE_COMMAND_BLOCK: true
|
||||
DIFFICULTY: hard
|
||||
@@ -19,4 +20,4 @@ services:
|
||||
- mc-data:/data
|
||||
|
||||
volumes:
|
||||
mc-data: {}
|
||||
mc-data: {}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"clickable-advancements",
|
||||
"configured",
|
||||
"controlling",
|
||||
"craftpresence",
|
||||
"ctm",
|
||||
"custom-main-menu",
|
||||
"dark-mode-everywhere",
|
||||
@@ -44,6 +45,7 @@
|
||||
"entity-collision-fps-fix",
|
||||
"entity-texture-features-fabric",
|
||||
"entityculling",
|
||||
"equipment-compare",
|
||||
"extreme-sound-muffler",
|
||||
"ezzoom",
|
||||
"fading-night-vision",
|
||||
@@ -61,6 +63,8 @@
|
||||
"inmisaddon",
|
||||
"iris-flywheel-compat",
|
||||
"irisshaders",
|
||||
"item-borders",
|
||||
"item-highlighter",
|
||||
"item-obliterator",
|
||||
"itemphysic-lite",
|
||||
"itemzoom",
|
||||
@@ -125,6 +129,7 @@
|
||||
"vanillafix",
|
||||
"visuality",
|
||||
"waila-harvestability",
|
||||
"wawla",
|
||||
"xaeroplus",
|
||||
"yungs-menu-tweaks",
|
||||
"zume"
|
||||
@@ -133,11 +138,18 @@
|
||||
"all-of-fabric-6": {
|
||||
"forceIncludes": ["revelationary"]
|
||||
},
|
||||
"valhelsia-5": {
|
||||
"excludes": ["modernfix"]
|
||||
},
|
||||
"create-arcane-engineering": {
|
||||
"forceIncludes": ["just-enough-resources-jer"]
|
||||
},
|
||||
"skyfactory-5": {
|
||||
"forceIncludes": [
|
||||
"colored-torches",
|
||||
"dye-mob-dye",
|
||||
"openstairs"
|
||||
]
|
||||
},
|
||||
"valhelsia-5": {
|
||||
"excludes": ["modernfix"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,10 @@
|
||||
"cherishedworlds",
|
||||
"citresewn",
|
||||
"clickadv",
|
||||
"connectedness",
|
||||
"connector",
|
||||
"craftpresence",
|
||||
"cwb",
|
||||
"DisableCustomWorldsAdvice",
|
||||
"drippyloadingscreen",
|
||||
"eating-animation",
|
||||
@@ -36,6 +39,8 @@
|
||||
"fancymenu",
|
||||
"fast-ip-ping",
|
||||
"FauxCustomEntityData",
|
||||
"feytweaks",
|
||||
"figura",
|
||||
"GeckoLibIrisCompat",
|
||||
"gpumemleakfix",
|
||||
"Highlighter",
|
||||
@@ -60,9 +65,11 @@
|
||||
"PickUpNotifier",
|
||||
"PresenceFootsteps",
|
||||
"Prism",
|
||||
"reforgium",
|
||||
"reeses_sodium_options",
|
||||
"ResourcePackOverrides",
|
||||
"ryoamiclights",
|
||||
"screenshot_viewer",
|
||||
"Searchables",
|
||||
"seasonhud",
|
||||
"ShoulderSurfing",
|
||||
@@ -73,7 +80,8 @@
|
||||
"VR-Combat",
|
||||
"YeetusExperimentus",
|
||||
"yungsmenutweaks",
|
||||
"Zoomify"
|
||||
"Zoomify",
|
||||
"zume"
|
||||
],
|
||||
"globalForceIncludes": [],
|
||||
"modpacks": {}
|
||||
|
||||
@@ -18,10 +18,10 @@ githubUrl="https://github.com/KoboDev/SupplyAndDemand/releases/download"
|
||||
canyonBuildJSON=$(curl -fsSL "${canyonJob}/${CANYON_BUILD}/api/json")
|
||||
|
||||
buildRelPath=$(
|
||||
jq '.artifacts[0].relativePath' <<< "$canyonBuildJSON"
|
||||
jq -r '.artifacts[0].relativePath' <<< "$canyonBuildJSON"
|
||||
)
|
||||
buildNumber=$(
|
||||
jq '.number'<<< "$canyonBuildJSON"
|
||||
jq -r '.number'<<< "$canyonBuildJSON"
|
||||
)
|
||||
baseName=$(basename "${buildRelPath}")
|
||||
|
||||
@@ -50,7 +50,7 @@ if [ ! -f "$SERVER" ]; then
|
||||
fi
|
||||
curl -fsSL -o "$SERVER" "$downloadUrl"
|
||||
if [ ! -f "$SERVER" ]; then
|
||||
logError "Failed to download from $downloadUrl (status=$?)"
|
||||
logError "Failed to download from $downloadUrl"
|
||||
exit 3
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -17,12 +17,12 @@ export SERVER
|
||||
|
||||
resolveVersion
|
||||
|
||||
EXTRA_ARGS+="-minecraftVersion $VERSION"
|
||||
EXTRA_ARGS+=" -minecraftVersion $VERSION"
|
||||
if [[ ${KETTING_VERSION:-} ]]; then
|
||||
EXTRA_ARGS+="-kettingVersion $KETTING_VERSION"
|
||||
EXTRA_ARGS+=" -kettingVersion $KETTING_VERSION"
|
||||
fi
|
||||
if [[ ${FORGE_VERSION:-} ]]; then
|
||||
EXTRA_ARGS+="-forgeVersion $FORGE_VERSION"
|
||||
EXTRA_ARGS+=" -forgeVersion $FORGE_VERSION"
|
||||
fi
|
||||
export EXTRA_ARGS
|
||||
|
||||
|
||||
@@ -9,39 +9,46 @@ isDebugging && set -x
|
||||
resolveVersion
|
||||
: "${MOHIST_BUILD:=lastSuccessfulBuild}"
|
||||
|
||||
mohistBaseUrl=https://ci.codemc.io/job/MohistMC/
|
||||
mohistJobs=${mohistBaseUrl}job/
|
||||
mohistJob=${mohistJobs}Mohist-${VERSION}/
|
||||
mohistBaseUrl="https://mohistmc.com/api/v2/projects/mohist/"
|
||||
mohistApiUrl="${mohistBaseUrl}${VERSION}/builds/"
|
||||
|
||||
function logMohistAvailableVerisons(){
|
||||
logError " check ${mohistBaseUrl} for available versions"
|
||||
logError " and set VERSION accordingly"
|
||||
}
|
||||
|
||||
if ! get --exists "${mohistJob}"; then
|
||||
if ! get --exists "${mohistApiUrl}"; then
|
||||
logError "Mohist builds do not exist for ${VERSION}"
|
||||
logMohistAvailableVerisons
|
||||
exit 1
|
||||
fi
|
||||
|
||||
buildRelPath=$(
|
||||
get --json-path '$.artifacts[0].relativePath' "${mohistJob}${MOHIST_BUILD}/api/json"
|
||||
if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then
|
||||
# Get the latest build number from the API
|
||||
buildNumber=$(
|
||||
get --json-path '$.builds[-1].number' "${mohistApiUrl}"
|
||||
)
|
||||
MOHIST_BUILD="${buildNumber}"
|
||||
fi
|
||||
|
||||
downloadUrl=$(
|
||||
get --json-path "$.builds[?(@.number==${MOHIST_BUILD})].url" "${mohistApiUrl}"
|
||||
)
|
||||
|
||||
baseName=$(basename "${buildRelPath}")
|
||||
if [[ ${baseName} != *-server.jar* ]]; then
|
||||
logError "Mohist build for ${VERSION} is not a valid server jar, found ${baseName}"
|
||||
if [[ -z "${downloadUrl}" ]]; then
|
||||
logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}"
|
||||
logMohistAvailableVerisons
|
||||
exit 1
|
||||
fi
|
||||
|
||||
export SERVER="/data/${baseName}"
|
||||
SERVER="/data/mohist-${VERSION}-${MOHIST_BUILD}-server.jar"
|
||||
|
||||
if [ ! -f "${SERVER}" ]; then
|
||||
log "Downloading ${baseName}"
|
||||
get -o "${SERVER}" "${mohistJob}${MOHIST_BUILD}/artifact/${buildRelPath}"
|
||||
log "Downloading Mohist build ${MOHIST_BUILD} for ${VERSION}"
|
||||
get -o "${SERVER}" "${downloadUrl}"
|
||||
fi
|
||||
|
||||
export FAMILY=HYBRID
|
||||
export SERVER
|
||||
|
||||
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||
|
||||
@@ -42,11 +42,18 @@ else
|
||||
applyResultsFile ${resultsFile}
|
||||
fi
|
||||
|
||||
# Download default configs to allow for consistent patching
|
||||
for c in paper-global.yml paper-world-defaults.yml spigot.yml; do
|
||||
DOWNLOAD_DEFAULT_CONFIGS+=",${PAPER_CONFIG_DEFAULTS_REPO}/${VERSION}/$c"
|
||||
done
|
||||
export DOWNLOAD_DEFAULT_CONFIGS
|
||||
defaultTopLevelConfigs="bukkit.yml spigot.yml"
|
||||
if versionLessThan 1.19; then
|
||||
defaultTopLevelConfigs+=" paper.yml"
|
||||
else
|
||||
# Download default configs to allow for consistent patching
|
||||
DOWNLOAD_DEFAULT_CONFIGS=$(buildDownloadList "$PAPER_CONFIG_DEFAULTS_REPO" "$VERSION" paper-global.yml paper-world-defaults.yml)
|
||||
export DOWNLOAD_DEFAULT_CONFIGS
|
||||
fi
|
||||
|
||||
# Download top-level configs to allow for consistent patching
|
||||
DOWNLOAD_DEFAULTS=$(buildDownloadList "$PAPER_CONFIG_DEFAULTS_REPO" "$VERSION" $defaultTopLevelConfigs)
|
||||
export DOWNLOAD_DEFAULTS
|
||||
|
||||
# Normalize on Spigot for downstream operations
|
||||
export FAMILY=SPIGOT
|
||||
|
||||
@@ -41,8 +41,13 @@ if [[ "$DATAPACKS" ]]; then
|
||||
exit 2
|
||||
fi
|
||||
elif [[ -d "$i" ]]; then
|
||||
log "Copying datapacks from $i ..."
|
||||
cp "$i"/*.zip "${out_dir}"
|
||||
if [[ -f "$i/pack.mcmeta" ]]; then
|
||||
log "Copying datapack from $i"
|
||||
cp -r "$i" "${out_dir}"
|
||||
else
|
||||
log "Copying datapacks from $i ..."
|
||||
cp "$i"/*.zip "${out_dir}"
|
||||
fi
|
||||
else
|
||||
logError "Invalid URL or path given in DATAPACKS: $i"
|
||||
exit 2
|
||||
|
||||
@@ -36,6 +36,15 @@ if [[ $DOWNLOAD_DEFAULT_CONFIGS ]]; then
|
||||
logWarning "One or more default config files were not available from $DOWNLOAD_DEFAULT_CONFIGS"
|
||||
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
|
||||
|
||||
if [[ ${PATCH_DEFINITIONS} ]]; then
|
||||
log "Applying patch definitions from ${PATCH_DEFINITIONS}"
|
||||
|
||||
@@ -513,3 +513,17 @@ function ensureRemoveAllModsOff() {
|
||||
REMOVE_OLD_MODS=false
|
||||
fi
|
||||
}
|
||||
|
||||
function buildDownloadList() {
|
||||
repoUrl=${1?}
|
||||
version=${2?}
|
||||
shift 2
|
||||
result=
|
||||
for c in "${@}"; do
|
||||
if [[ $result ]]; then
|
||||
result+=","
|
||||
fi
|
||||
result+="${repoUrl}/${version}/$c"
|
||||
done
|
||||
echo "$result"
|
||||
}
|
||||
Reference in New Issue
Block a user