-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Open
Labels
Description
Describe the problem
mc-image-helper is unable to install Forge for Minecraft versions 1.5.1 and below due to a dedicated "installer" file not being published, and unable to run version 1.5.2 due to different java invocation requirements
Container definition
docker run --rm -it -e EULA=true -e TYPE=FORGE -e VERSION=1.5.1 -e DEBUG=true itzg/minecraft-server:java8docker run --rm -it -e EULA=true -e TYPE=FORGE -e VERSION=1.5.2 -e DEBUG=true itzg/minecraft-server:java8
Container logs
1.5.1 container
++ mc-image-helper java-release
+ (( 8 >= 17 ))
+ export HOME=/data
+ HOME=/data
++ id -u
++ id -g
++ ls -lnd /data
+ log 'Running as uid=1000 gid=1000 with /data as '\''drwxr-xr-x 2 1000 1000 4096 Jan 13 02:57 /data'\'''
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:50:36+00:00 Running as uid=1000 gid=1000 with /data as 'drwxr-xr-x 2 1000 1000 4096 Jan 13 02:57 /data'
++ paste -d, -s /etc/image.properties
+ log 'Image info: buildtime=2026-01-13T02:57:04.620Z,version=java8,revision=0a98bee40ea9b86500ea7b6611784902a553803f'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:50:36+00:00 Image info: buildtime=2026-01-13T02:57:04.620Z,version=java8,revision=0a98bee40ea9b86500ea7b6611784902a553803f
+ '[' '!' -e /data/eula.txt ']'
+ isTrue true
+ case "${1,,}" in
+ return 0
+ writeEula
++ date
+ echo '# Generated via Docker
# Tue 13 Jan 2026 11:50:36 AM UTC
eula=true
'
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue true
+ case "${1,,}" in
+ return 0
+ set +x
+ isTrue false
+ case "${1,,}" in
+ return 1
+ proxyArgs=()
+ [[ -n '' ]]
+ proxyArgs=()
+ addToProxyArgs http.proxyHost ''
+ [[ -n '' ]]
+ addToProxyArgs http.proxyPort ''
+ [[ -n '' ]]
+ addToProxyArgs http.nonProxyHosts ''
+ [[ -n '' ]]
+ export 'MC_IMAGE_HELPER_OPTS+= '
+ MC_IMAGE_HELPER_OPTS+=' '
+ fixJavaPath
+ which java
+ cd /data
+ export DECLARED_TYPE=FORGE
+ DECLARED_TYPE=FORGE
+ export DECLARED_VERSION=1.5.1
+ DECLARED_VERSION=1.5.1
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ : ''
+ [[ -n '' ]]
+ case "${TYPE^^}" in
+ [[ -n '' ]]
+ log 'Resolving type given FORGE'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:50:36+00:00 Resolving type given FORGE
+ case "${TYPE^^}" in
++ dirname /image/scripts/start-configuration
+ exec /image/scripts/start-deployForge
+ resultsFile=/data/.run-forge.env
+ [[ -n '' ]]
+ [[ -n '' ]]
+ mc-image-helper-forge --forge-version=RECOMMENDED
+ mc-image-helper install-forge --output-directory=/data --results-file=/data/.run-forge.env --minecraft-version=1.5.1 --force-reinstall=false --forge-version=RECOMMENDED
[mc-image-helper] 11:50:37.147 DEBUG : Using HTTP/1.1
[mc-image-helper] 11:50:37.797 DEBUG : JSON FETCH: uri=https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: bb484412-7144-48ba-87c5-c04a64725a70, accept: application/json, host: files.minecraftforge.net]
[mc-image-helper] 11:50:38.077 DEBUG : Narrowed forge versions to {latest=7.7.2.682} and looking for recommended
[mc-image-helper] 11:50:38.077 DEBUG : Resolved installer version=VersionPair(minecraft=1.5.1, forge=7.7.2.682, variantOverride=null)
[mc-image-helper] 11:50:38.078 INFO : Downloading Forge installer 7.7.2.682 for Minecraft 1.5.1
[mc-image-helper] 11:50:38.131 DEBUG : FILE FETCH: uri=https://maven.minecraftforge.net/net/minecraftforge/forge/1.5.1-7.7.2.682/forge-1.5.1-7.7.2.682-installer.jar headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: bb484412-7144-48ba-87c5-c04a64725a70, accept: application/java-archive, host: maven.minecraftforge.net]
[mc-image-helper] 11:50:39.166 DEBUG : FILE FETCH: uri=https://maven.minecraftforge.net/net/minecraftforge/forge/1.5.1-7.7.2.682-1.5.1/forge-1.5.1-7.7.2.682-1.5.1-installer.jar headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: bb484412-7144-48ba-87c5-c04a64725a70, accept: application/java-archive, host: maven.minecraftforge.net]
[mc-image-helper] 11:50:40.193 DEBUG : FILE FETCH: uri=https://maven.minecraftforge.net/net/minecraftforge/forge/1.5.1-7.7.2.682-mc172/forge-1.5.1-7.7.2.682-mc172-installer.jar headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: bb484412-7144-48ba-87c5-c04a64725a70, accept: application/java-archive, host: maven.minecraftforge.net]
[mc-image-helper] 11:50:41.208 ERROR : 'install-forge' command failed. Version is 1.51.1
me.itzg.helpers.errors.GenericException: Failed to locate forge installer for Minecraft 1.5.1 Forge 7.7.2.682
at me.itzg.helpers.forge.ForgeInstallerResolver.download(ForgeInstallerResolver.java:106)
at me.itzg.helpers.forge.ForgeLikeInstaller.install(ForgeLikeInstaller.java:93)
at me.itzg.helpers.forge.InstallForgeCommand.call(InstallForgeCommand.java:110)
at me.itzg.helpers.forge.InstallForgeCommand.call(InstallForgeCommand.java:19)
at picocli.CommandLine.executeUserObject(CommandLine.java:2031)
at picocli.CommandLine.access$1500(CommandLine.java:148)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2469)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2461)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2423)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
at picocli.CommandLine$RunLast.execute(CommandLine.java:2425)
at picocli.CommandLine.execute(CommandLine.java:2174)
at me.itzg.helpers.McImageHelper.main(McImageHelper.java:176)
+ logError 'Failed to install Forge'
+ isDebugging
+ isTrue true
+ case "${1,,}" in
+ return 0
+ set +x
[init] 2026-01-13 11:50:41+00:00 [ERROR] Failed to install Forge
+ exit 1
1.5.2 container
++ mc-image-helper java-release
+ (( 8 >= 17 ))
+ export HOME=/data
+ HOME=/data
++ id -u
++ id -g
++ ls -lnd /data
+ log 'Running as uid=1000 gid=1000 with /data as '\''drwxr-xr-x 2 1000 1000 4096 Jan 13 02:57 /data'\'''
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:43+00:00 Running as uid=1000 gid=1000 with /data as 'drwxr-xr-x 2 1000 1000 4096 Jan 13 02:57 /data'
++ paste -d, -s /etc/image.properties
+ log 'Image info: buildtime=2026-01-13T02:57:04.620Z,version=java8,revision=0a98bee40ea9b86500ea7b6611784902a553803f'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:43+00:00 Image info: buildtime=2026-01-13T02:57:04.620Z,version=java8,revision=0a98bee40ea9b86500ea7b6611784902a553803f
+ '[' '!' -e /data/eula.txt ']'
+ isTrue true
+ case "${1,,}" in
+ return 0
+ writeEula
++ date
+ echo '# Generated via Docker
# Tue 13 Jan 2026 11:47:43 AM UTC
eula=true
'
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue true
+ case "${1,,}" in
+ return 0
+ set +x
+ isTrue false
+ case "${1,,}" in
+ return 1
+ proxyArgs=()
+ [[ -n '' ]]
+ proxyArgs=()
+ addToProxyArgs http.proxyHost ''
+ [[ -n '' ]]
+ addToProxyArgs http.proxyPort ''
+ [[ -n '' ]]
+ addToProxyArgs http.nonProxyHosts ''
+ [[ -n '' ]]
+ export 'MC_IMAGE_HELPER_OPTS+= '
+ MC_IMAGE_HELPER_OPTS+=' '
+ fixJavaPath
+ which java
+ cd /data
+ export DECLARED_TYPE=FORGE
+ DECLARED_TYPE=FORGE
+ export DECLARED_VERSION=1.5.2
+ DECLARED_VERSION=1.5.2
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ : ''
+ [[ -n '' ]]
+ case "${TYPE^^}" in
+ [[ -n '' ]]
+ log 'Resolving type given FORGE'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:43+00:00 Resolving type given FORGE
+ case "${TYPE^^}" in
++ dirname /image/scripts/start-configuration
+ exec /image/scripts/start-deployForge
+ resultsFile=/data/.run-forge.env
+ [[ -n '' ]]
+ [[ -n '' ]]
+ mc-image-helper-forge --forge-version=RECOMMENDED
+ mc-image-helper install-forge --output-directory=/data --results-file=/data/.run-forge.env --minecraft-version=1.5.2 --force-reinstall=false --forge-version=RECOMMENDED
[mc-image-helper] 11:47:43.729 DEBUG : Using HTTP/1.1
[mc-image-helper] 11:47:44.407 DEBUG : JSON FETCH: uri=https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: 6054b35b-ff8e-402b-b732-1c451447ef44, accept: application/json, host: files.minecraftforge.net]
[mc-image-helper] 11:47:44.697 DEBUG : Narrowed forge versions to {recommended=7.8.1.738, latest=7.8.1.738} and looking for recommended
[mc-image-helper] 11:47:44.697 DEBUG : Resolved installer version=VersionPair(minecraft=1.5.2, forge=7.8.1.738, variantOverride=null)
[mc-image-helper] 11:47:44.697 INFO : Downloading Forge installer 7.8.1.738 for Minecraft 1.5.2
[mc-image-helper] 11:47:44.764 DEBUG : FILE FETCH: uri=https://maven.minecraftforge.net/net/minecraftforge/forge/1.5.2-7.8.1.738/forge-1.5.2-7.8.1.738-installer.jar headers=[user-agent: itzg/mc-image-helper/1.51.1 (cmd=install-forge), x-fetch-session: 6054b35b-ff8e-402b-b732-1c451447ef44, accept: application/java-archive, host: maven.minecraftforge.net]
[mc-image-helper] 11:47:45.160 DEBUG : Download of https://maven.minecraftforge.net/net/minecraftforge/forge/1.5.2-7.8.1.738/forge-1.5.2-7.8.1.738-installer.jar took 455ms at 5820 KB/s
[mc-image-helper] 11:47:45.162 DEBUG : Moving /data/forge-installer-1.5.2-7.8.1.738.jar.download to /data/forge-installer-1.5.2-7.8.1.738.jar
[mc-image-helper] 11:47:45.164 INFO : Running Forge 7.8.1.738 installer for Minecraft 1.5.2. This might take a while...
[mc-image-helper] 11:47:51.562 DEBUG : Observed entry file from universal jar log line: /data/minecraftforge-universal-1.5.2-7.8.1.738.jar
[mc-image-helper] 11:47:51.574 DEBUG : Deleting Forge installer log at /data/forge-installer-1.5.2-7.8.1.738.jar.log
[mc-image-helper] 11:47:51.598 DEBUG : Populating results file /data/.run-forge.env
[mc-image-helper] 11:47:51.599 DEBUG : Writing SERVER="minecraftforge-universal-1.5.2-7.8.1.738.jar" to results file
[mc-image-helper] 11:47:51.599 DEBUG : Writing FAMILY="FORGE" to results file
[mc-image-helper] 11:47:51.599 DEBUG : Writing VERSION="1.5.2" to results file
[mc-image-helper] 11:47:51.599 DEBUG : Writing TYPE="FORGE" to results file
+ applyResultsFile /data/.run-forge.env
+ set -a
+ source /data/.run-forge.env
++ SERVER=minecraftforge-universal-1.5.2-7.8.1.738.jar
++ FAMILY=FORGE
++ VERSION=1.5.2
++ TYPE=FORGE
+ set +a
+ export FAMILY=FORGE
+ FAMILY=FORGE
++ dirname /image/scripts/start-deployForge
+ exec /image/scripts/start-setupWorld
+ worldDownload=/data/tmp/world.zip
+ tmpWorldData=/data/tmp/world-data
+ [[ world =~ ^/.*$ ]]
+ '[' FORGE = CURSEFORGE ']'
+ worldDest=/data/world
+ [[ -n '' ]]
+ [[ -f /data/tmp/world.zip ]]
+ [[ -d /data/tmp/world-data ]]
++ dirname /image/scripts/start-setupWorld
+ exec /image/scripts/start-setupDatapack
+ out_dir=/data/world/datapacks
+ isTrue false
+ case "${1,,}" in
+ return 1
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
++ dirname /image/scripts/start-setupDatapack
+ exec /image/scripts/start-setupModpack
+ CURSE_URL_BASE=https://minecraft.curseforge.com/projects
+ isTrue false
+ case "${1,,}" in
+ return 1
+ handlePackwiz
+ [[ -n '' ]]
+ handleModpackZip
+ [[ -n '' ]]
+ handleListings
+ usesMods
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 0
+ usesPlugins
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 1
+ usesPlugins
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 1
+ usesMods
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 0
+ outDir=/data/mods
+ usesPlugins
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 1
+ [[ -v MODS ]]
+ [[ -v PLUGINS ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ handleGenericPacks
+ : ''
+ : ''
+ : ''
+ : ''
+ [[ -n '' ]]
+ handleModrinthProjects
+ : release
+ : none
+ [[ -v MODRINTH_DOWNLOAD_OPTIONAL_DEPENDENCIES ]]
+ [[ -v MODRINTH_PROJECTS ]]
+ usesMods
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 0
+ handleCurseForgeFiles
+ args=()
+ usesMods
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 0
+ usesPlugins
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 1
+ args+=(--default-category mc-mods)
+ case "${TYPE,,}" in
+ args+=(--mod-loader "$TYPE")
+ mc-image-helper curseforge-files --default-category mc-mods --mod-loader FORGE ''
+ [[ -n '' ]]
++ dirname /image/scripts/start-setupModpack
+ exec /image/scripts/start-setupMounts
+ isTrue true
+ case "${1,,}" in
+ return 0
+ updateArg=--skip-newer-in-destination
+ isTrue true
+ case "${1,,}" in
+ return 0
+ subcommand=sync-and-interpolate
+ : /plugins
+ : /data/plugins
+ usesPlugins
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 1
+ : /mods
+ : /data/mods
+ usesMods
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ case "$FAMILY" in
+ return 0
+ log 'Copying any mods from /mods to /data/mods'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:52+00:00 Copying any mods from /mods to /data/mods
+ mc-image-helper-mounts /mods /data/mods
+ mc-image-helper sync-and-interpolate --skip-newer-in-destination --replace-env-file-suffixes=yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml --replace-env-excludes= --replace-env-exclude-paths= --replace-env-prefix=CFG_ /mods /data/mods
[mc-image-helper] 11:47:53.158 DEBUG : Configured with SyncAndInterpolate(skipNewerInDestination=true, replaceEnv=ReplaceEnvOptions(prefix=CFG_, excludes=[], excludePaths=[], suffixes=[yml, yaml, txt, cfg, conf, properties, hjson, json, tml, toml]), srcDest=[/mods, /data/mods])
[mc-image-helper] 11:47:53.162 DEBUG : Skipping missing source directory /mods
+ : /config
+ : /data/config
+ log 'Copying any configs from /config to /data/config'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:53+00:00 Copying any configs from /config to /data/config
+ mc-image-helper-mounts /config /data/config
+ mc-image-helper sync-and-interpolate --skip-newer-in-destination --replace-env-file-suffixes=yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml --replace-env-excludes= --replace-env-exclude-paths= --replace-env-prefix=CFG_ /config /data/config
[mc-image-helper] 11:47:53.724 DEBUG : Configured with SyncAndInterpolate(skipNewerInDestination=true, replaceEnv=ReplaceEnvOptions(prefix=CFG_, excludes=[], excludePaths=[], suffixes=[yml, yaml, txt, cfg, conf, properties, hjson, json, tml, toml]), srcDest=[/config, /data/config])
[mc-image-helper] 11:47:53.730 DEBUG : Skipping missing source directory /config
++ dirname /image/scripts/start-setupMounts
+ exec /image/scripts/start-setupServerProperties
[init] 2026-01-13 11:47:53+00:00 Creating server properties in /data/server.properties
[init] 2026-01-13 11:47:53+00:00 Disabling whitelist functionality
+ mc-image-helper set-properties --definitions /image/property-definitions.json --escape-unicode /data/server.properties
[mc-image-helper] 11:47:54.330 DEBUG : Setting property enable-rcon to new value 'true'
[mc-image-helper] 11:47:54.332 DEBUG : Setting property rcon.password to new value '***'
[mc-image-helper] 11:47:54.332 DEBUG : Setting property rcon.port to new value '25575'
[mc-image-helper] 11:47:54.332 DEBUG : Setting property white-list to new value 'false'
[mc-image-helper] 11:47:54.332 INFO : Created/updated 4 properties in /data/server.properties
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
++ dirname /image/scripts/start-setupServerProperties
+ exec /image/scripts/start-setupEnvVariables
+ : false
+ : /data
+ : yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml
+ : CFG_
+ : ''
+ : ''
+ : ''
+ : true
+ : ''
+ : ''
+ : false
+ : ''
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isFalse false
+ case "${1,,}" in
+ return 0
+ commonArgs=(--skip-existing --skip-up-to-date=false --quiet-when-skipped --ignore-missing-sources)
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
+ [[ -n '' ]]
++ dirname /image/scripts/start-setupEnvVariables
+ exec /image/scripts/start-setupRbac
+ [[ -v APPEND_OPS ]]
+ [[ -v OVERRIDE_OPS ]]
+ [[ -v APPEND_WHITELIST ]]
+ [[ -v OVERRIDE_WHITELIST ]]
+ sharedArgs=(--version="$VERSION")
+ [[ -n '' ]]
+ sharedArgs+=(--output-directory=/data)
+ [[ -v OPS_FILE ]]
+ [[ -v OPS ]]
+ [[ -v WHITELIST_FILE ]]
+ [[ -v WHITELIST ]]
++ dirname /image/scripts/start-setupRbac
+ exec /image/scripts/start-finalExec
+ baseDataDir=/data
+ tmpServerIconPath=/tmp/icon.img
+ serverIconPath=/data/server-icon.png
+ mcHealthEnvPath=/data/.mc-health.env
+ bootstrapPath=/data/bootstrap.txt
+ '[' -n '' ']'
+ useGeneratedLogs=false
+ useFallbackJvmFlag=false
+ SERVER_DIR=/data
+ [[ -n '' ]]
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ false
+ versionLessThan 1.7
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ compare_version 1.5.2 lt 1.7
+ local left_version=1.5.2
+ local comparison=lt
+ local right_version=1.7
+ [[ -z 1.5.2 ]]
+ [[ -z 1.7 ]]
+ [[ 1.5.2 == a* ]]
+ [[ 1.5.2 == b* ]]
+ left_version_channel=3
+ [[ 1.7 == a* ]]
+ [[ 1.7 == b* ]]
+ right_version_channel=3
+ [[ lt == \l\t ]]
+ [[ 3 < 3 ]]
+ [[ lt == \l\t ]]
+ [[ 3 > 3 ]]
+ [[ lt == \g\t ]]
+ [[ lt == \g\t ]]
+ [[ lt == \l\e ]]
+ [[ lt == \l\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \e\q ]]
+ local result=1
+ case $comparison in
++ echo -e '1.5.2\n1.7'
++ sort -V
++ head -n1
+ [[ 1.5.2 == \1\.\5\.\2 ]]
+ [[ 1.5.2 != \1\.\7 ]]
+ result=0
+ return 0
+ :
+ LOGFILE=/data/log4j2.xml
+ false
+ rm -f /data/log4j2.xml
+ versionLessThan 1.14
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ compare_version 1.5.2 lt 1.14
+ local left_version=1.5.2
+ local comparison=lt
+ local right_version=1.14
+ [[ -z 1.5.2 ]]
+ [[ -z 1.14 ]]
+ [[ 1.5.2 == a* ]]
+ [[ 1.5.2 == b* ]]
+ left_version_channel=3
+ [[ 1.14 == a* ]]
+ [[ 1.14 == b* ]]
+ right_version_channel=3
+ [[ lt == \l\t ]]
+ [[ 3 < 3 ]]
+ [[ lt == \l\t ]]
+ [[ 3 > 3 ]]
+ [[ lt == \g\t ]]
+ [[ lt == \g\t ]]
+ [[ lt == \l\e ]]
+ [[ lt == \l\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \e\q ]]
+ local result=1
+ case $comparison in
++ echo -e '1.5.2\n1.14'
++ sort -V
++ head -n1
+ [[ 1.5.2 == \1\.\5\.\2 ]]
+ [[ 1.5.2 != \1\.\1\4 ]]
+ result=0
+ return 0
+ [[ '' = false ]]
+ [[ '' = false ]]
+ expandedDOpts=
+ '[' -n '' ']'
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ : false
+ : false
+ : false
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ isType GTNH
+ for t in "${@}"
+ [[ FORGE == \G\T\N\H ]]
+ return 1
+ [[ -n 1G ]]
+ log 'Setting initial memory to 1G and max to 1G'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:54+00:00 Setting initial memory to 1G and max to 1G
+ isPercentage 1G
+ local value=1G
+ [[ 1G =~ ^[0-9]+(\.[0-9]+)?s*%$ ]]
+ [[ -n 1G ]]
+ JVM_OPTS='-Xms1G '
+ isPercentage 1G
+ local value=1G
+ [[ 1G =~ ^[0-9]+(\.[0-9]+)?s*%$ ]]
+ [[ -n 1G ]]
+ JVM_OPTS='-Xmx1G -Xms1G '
+ versionLessThan b1.8
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ compare_version 1.5.2 lt b1.8
+ local left_version=1.5.2
+ local comparison=lt
+ local right_version=b1.8
+ [[ -z 1.5.2 ]]
+ [[ -z b1.8 ]]
+ [[ 1.5.2 == a* ]]
+ [[ 1.5.2 == b* ]]
+ left_version_channel=3
+ [[ b1.8 == a* ]]
+ [[ b1.8 == b* ]]
+ right_version=1.8
+ right_version_channel=2
+ [[ lt == \l\t ]]
+ [[ 3 < 2 ]]
+ [[ lt == \l\t ]]
+ [[ 3 > 2 ]]
+ return 1
+ versionLessThan 1.3
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ compare_version 1.5.2 lt 1.3
+ local left_version=1.5.2
+ local comparison=lt
+ local right_version=1.3
+ [[ -z 1.5.2 ]]
+ [[ -z 1.3 ]]
+ [[ 1.5.2 == a* ]]
+ [[ 1.5.2 == b* ]]
+ left_version_channel=3
+ [[ 1.3 == a* ]]
+ [[ 1.3 == b* ]]
+ right_version_channel=3
+ [[ lt == \l\t ]]
+ [[ 3 < 3 ]]
+ [[ lt == \l\t ]]
+ [[ 3 > 3 ]]
+ [[ lt == \g\t ]]
+ [[ lt == \g\t ]]
+ [[ lt == \l\e ]]
+ [[ lt == \l\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \e\q ]]
+ local result=1
+ case $comparison in
++ echo -e '1.5.2\n1.3'
++ sort -V
++ head -n1
+ [[ 1.3 == \1\.\5\.\2 ]]
+ return 1
+ versionLessThan 1.7
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
+ compare_version 1.5.2 lt 1.7
+ local left_version=1.5.2
+ local comparison=lt
+ local right_version=1.7
+ [[ -z 1.5.2 ]]
+ [[ -z 1.7 ]]
+ [[ 1.5.2 == a* ]]
+ [[ 1.5.2 == b* ]]
+ left_version_channel=3
+ [[ 1.7 == a* ]]
+ [[ 1.7 == b* ]]
+ right_version_channel=3
+ [[ lt == \l\t ]]
+ [[ 3 < 3 ]]
+ [[ lt == \l\t ]]
+ [[ 3 > 3 ]]
+ [[ lt == \g\t ]]
+ [[ lt == \g\t ]]
+ [[ lt == \l\e ]]
+ [[ lt == \l\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \g\e ]]
+ [[ lt == \e\q ]]
+ local result=1
+ case $comparison in
++ echo -e '1.5.2\n1.7'
++ sort -V
++ head -n1
+ [[ 1.5.2 == \1\.\5\.\2 ]]
+ [[ 1.5.2 != \1\.\7 ]]
+ result=0
+ return 0
+ echo '
MC_HEALTH_EXTRA_ARGS=(
--use-server-list-ping
)
'
+ mcServerRunnerArgs=(--stop-duration "${STOP_DURATION:-60}s")
+ isTrue false
+ case "${1,,}" in
+ return 1
+ [[ -n '' ]]
+ isTrue ''
+ case "${1,,}" in
+ return 1
+ [[ FORGE == \C\U\R\S\E\F\O\R\G\E ]]
+ [[ FORGE == \C\U\R\S\E\F\O\R\G\E ]]
+ [[ minecraftforge-universal-1.5.2-7.8.1.738.jar =~ run.sh ]]
+ '[' -f /data/bootstrap.txt ']'
+ log 'Starting the Minecraft server...'
+ local oldState
++ shopt -po xtrace
+ oldState='set -o xtrace'
+ shopt -u -o xtrace
[init] 2026-01-13 11:47:54+00:00 Starting the Minecraft server...
+ finalArgs=($JVM_XX_OPTS $JVM_OPTS $expandedDOpts)
+ [[ -n '' ]]
+ finalArgs+=(-jar "$SERVER")
+ finalArgs+=("$@" $EXTRA_ARGS)
+ isTrue false
+ case "${1,,}" in
+ return 1
+ isTrue false
+ case "${1,,}" in
+ return 1
+ exec mc-server-runner --stop-duration 60s java -Xmx1G -Xms1G -jar minecraftforge-universal-1.5.2-7.8.1.738.jar
Error: Could not find or load main class net.minecraft.server.MinecraftServer