mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-08-04 22:52:17 +00:00
Add support for packwiz toml definitions (#1163)
This commit is contained in:
@@ -61,6 +61,7 @@ By default, the container will download the latest version of the "vanilla" [Min
|
|||||||
* [Modpack data directory](#modpack-data-directory)
|
* [Modpack data directory](#modpack-data-directory)
|
||||||
* [Buggy start scripts](#buggy-start-scripts)
|
* [Buggy start scripts](#buggy-start-scripts)
|
||||||
* [Fixing "unable to launch forgemodloader"](#fixing-unable-to-launch-forgemodloader)
|
* [Fixing "unable to launch forgemodloader"](#fixing-unable-to-launch-forgemodloader)
|
||||||
|
* [Running a server with a packwiz modpack](#running-a-server-with-a-packwiz-modpack)
|
||||||
* [Working with mods and plugins](#working-with-mods-and-plugins)
|
* [Working with mods and plugins](#working-with-mods-and-plugins)
|
||||||
* [Optional plugins, mods, and config attach points](#optional-plugins-mods-and-config-attach-points)
|
* [Optional plugins, mods, and config attach points](#optional-plugins-mods-and-config-attach-points)
|
||||||
* [Auto-downloading SpigotMC/Bukkit/PaperMC plugins](#auto-downloading-spigotmcbukkitpapermc-plugins)
|
* [Auto-downloading SpigotMC/Bukkit/PaperMC plugins](#auto-downloading-spigotmcbukkitpapermc-plugins)
|
||||||
@@ -660,6 +661,20 @@ then you apply a workaround by adding this to the run invocation:
|
|||||||
|
|
||||||
-e FTB_LEGACYJAVAFIXER=true
|
-e FTB_LEGACYJAVAFIXER=true
|
||||||
|
|
||||||
|
## Running a server with a packwiz modpack
|
||||||
|
|
||||||
|
[packwiz](https://packwiz.infra.link/) is a CLI tool for maintaining and providing modpack definitions, with support for both CurseForge and Modrinth as sources. See the [packwiz tutorial](https://packwiz.infra.link/tutorials/getting-started/) for more information.
|
||||||
|
|
||||||
|
To configure server mods using a packwiz modpack, set the `PACKWIZ_URL` environment variable to the location of your `pack.toml` modpack definition:
|
||||||
|
|
||||||
|
docker run -d -v /path/on/host:/data -e TYPE=FABRIC \
|
||||||
|
-e "PACKWIZ_URL=https://example.com/modpack/pack.toml" \
|
||||||
|
itzg/minecraft-server
|
||||||
|
|
||||||
|
packwiz modpack defitions are processed before other mod definitions (`MODPACK`, `MODS`, etc.) to allow for additional processing/overrides you may want to perform (in case of mods not available via Modrinth/CurseForge, or you do not maintain the pack).
|
||||||
|
|
||||||
|
> packwiz is pre-configured to only download server mods. If client-side mods are downloaded and cause issues, check your pack.toml configuration, and make sure any client-only mods are not set to `"both"`, but rather `"client"` for the side configuration item.
|
||||||
|
|
||||||
## Working with mods and plugins
|
## Working with mods and plugins
|
||||||
|
|
||||||
### Optional plugins, mods, and config attach points
|
### Optional plugins, mods, and config attach points
|
||||||
|
|||||||
@@ -20,6 +20,33 @@ if isTrue "${REMOVE_OLD_MODS}" && [ -z "${MODS_FILE}" ]; then
|
|||||||
removeOldMods /data/plugins
|
removeOldMods /data/plugins
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# If packwiz url passed, bootstrap packwiz and update mods before other modpack processing
|
||||||
|
if [[ "${PACKWIZ_URL}" ]]; then
|
||||||
|
# Ensure we have the latest packwiz bootstrap installer
|
||||||
|
latestPackwiz=$(curl -fsSL https://api.github.com/repos/comp500/packwiz-installer-bootstrap/releases/latest)
|
||||||
|
if [[ -z "${latestPackwiz}" ]]; then
|
||||||
|
log "WARNING: Could not retrieve Packwiz bootstrap installer release information"
|
||||||
|
else
|
||||||
|
isDebugging && log "Latest packwiz ${latestPackWiz}"
|
||||||
|
latestPackwizVer=$(echo ${latestPackwiz} | jq --raw-output '.tag_name')
|
||||||
|
latestPackwizUrl=$(echo ${latestPackwiz} | jq --raw-output '.assets[] | select(.name | match("packwiz-installer-bootstrap.jar")) | .url')
|
||||||
|
: "${PACKWIZ_JAR:=packwiz-installer-bootstrap_${latestPackwizVer}.jar}"
|
||||||
|
if [[ ! -e $PACKWIZ_JAR ]]; then
|
||||||
|
log "Downloading Packwiz ${latestPackwizVer}"
|
||||||
|
curl -H "Accept:application/octet-stream" -o "$PACKWIZ_JAR" -fsSL ${latestPackwizUrl}
|
||||||
|
ln -sf "${PACKWIZ_JAR}" packwiz-installer-bootstrap.jar
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [[ ! -e packwiz-installer-bootstrap.jar ]]; then
|
||||||
|
log "ERROR: Packwiz not available or could not be downloaded from Github!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if isURL "${PACKWIZ_URL}"; then
|
||||||
|
log "Running packwiz against URL: ${PACKWIZ_URL}"
|
||||||
|
java -jar packwiz-installer-bootstrap.jar -g -s server "${PACKWIZ_URL}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# If supplied with a URL for a modpack (simple zip of jars), download it and unpack
|
# If supplied with a URL for a modpack (simple zip of jars), download it and unpack
|
||||||
if [[ "$MODPACK" ]]; then
|
if [[ "$MODPACK" ]]; then
|
||||||
if isURL "${MODPACK}"; then
|
if isURL "${MODPACK}"; then
|
||||||
|
|||||||
Reference in New Issue
Block a user