-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Add unsup support #3854
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Add unsup support #3854
Conversation
no customisation or error detection right now
itzg
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking great so far!
Yeah it looks like either setting CUSTOM_JAR_EXEC or SERVER should work out. What does a typical unsup invocation look like?
Typically the jar is just called with an environment type ( Upsilon's start script just runs the below command which will then pull the actual pack sources from the java -jar unsup.jar server |
Does setting the type to |
In that case, yeah CUSTOM_JAR_EXEC is best.
|
|
Ok, I've added some error detection (unsup not downloading, ini file missing) and added an FYI about configuring the custom server vars. I've also set a default version for unsup, I assume having the container pull the
|
|
Ok, I think:tm: this is feature complete. Summary of additions
I haven't made any commits for the documentation yet, once this passes a sanity-check, I'll start working on the docs. I've tested this locally with the docker run --rm -p 25565:25565 -e EULA=true -e TYPE=UNSUP -e UNSUP_VERSION=1.1.6 -e DEBUG=true -e CUSTOM_JAR_EXEC="-cp forge.jar:minecraft-server.jar net.minecraft.server.MinecraftServer" -e JVM_OPTS="-Dnil.alwaysUseAdHocLogger=true -XX:+UseG1GC -javaagent:nilloader.jar" -v .server:/data docker-minecraft-server-unsup:latest |
|
I haven't reviewed the code yet but wanted to mention that I don't want users to have to fill out Your code should be populating that variable and export'ing so it can be picked up at exec stage. |
This could be hard to do reliably. unsup doesn't download the server software itself in the server env (I may have said it did before, whoops), instead the server software can be included as part of the packwiz data. Rewind includes metadata files for the Forge and Vanilla. This means that a pack developer could name the jar files basically anything. I could search the directory for plausible server software like the FTBA deployer does, and/or just fallback on searching the root directory for a |
|
How will you document the approach for users to put the right value for
Yes, reliable automation is hard to implement. Implementing on top of another automation tool is also challenging since their strategy may not fit. Speaking of which, maybe unsup isn't a good fit for this image. Perhaps a separate image should be maintained focusing on unsup. Ideally the unsup developers would kick that off. |
|
I do think unsup is a good tool for this image to support. |
|
I do want to point out that I introduced and constantly enhance https://github.com/itzg/mc-image-helper to solve complexities like it sounds like you're describing. It became unmanageable to perform extensive json, toml, etc processing all via bash script...and I don't want to regress on that. |
|
Yea, saw the |
|
If you bump mc-image-helper to 1.53.0 here docker-minecraft-server/Dockerfile Line 52 in f3ed098
then you can use the new
|
Add support for unsup, a modpack bootstrap tool for custom setups. This tool is designed to be self-contained and transparent to launchers so shouldn't have too many run on effects.
Resolves #3798.
Currently, I've added a new server type, which will run unsup as a 'preloader' before handing control back to the containers more regular startup sequence. As unsup can control the jars installed, it will probably need to be coupled with the
CUSTOM_JAR_EXECvar.I still need to add support for unsup version selection, as well as error handling (ie a missing
unsup.inifile).I'm testing with the
unsup.inifile from the Rewind Upsilon project.