froehlicha / pax Goto Github PK
View Code? Open in Web Editor NEW๐ฆ The MC modpack manager for professionals.
Home Page: https://github.com/froehlichA/pax/releases/latest
License: MIT License
๐ฆ The MC modpack manager for professionals.
Home Page: https://github.com/froehlichA/pax/releases/latest
License: MIT License
To reproduce:
./pax version 10.11.12
works, but after that no more version switches back to "sane" versions are possible.
Used pax to create a simple test modpack a few days ago, have since updated the version of pax (from version 1.2.1 to 1.4.0 or 1.3.0) and I can no longer add mods to any modpack.
Tried redownloading the latest versions, and making new modpacks to no avail (forge, fabric, 1.16.5, 1.17...)
This is the response I get when trying to add a mod with the new versions:
$ ./pax add lithium
[:] Loading data from manifest..
[:] Searching for mod..
httpclient.nim(1080) responseContentIter
asyncfutures.nim(390) read
asyncfutures.nim(390) read
asyncfutures.nim(390) read
asyncfutures.nim(390) read
Error: unhandled exception: 400 Bad Request [HttpRequestError]
When I roll back to the 1.2.1 release the command works as expected.
Exporting a jar for the server files would be pretty nice too.
Requires mods to be able to be marked as client- or server-only first, so issue #22 is a dependency of this.
Pax is still getting stuck on some specific mods.
For example, if a mod is in the "Fabric" category, but files of the mods itself aren't marked as being compatible with "Fabric", should Pax recognize them as Fabric?
Really depends on the mod.
This command would be pretty handy instead of exporting and importing the modpack.
what it says in the title.
mainly two things:
./pax ls
is forge or fabric compatible.--loader
option to restrict mods to that specific loader.Would be nice to add a -y
to commands which turns off interactive prompts.
Needed for more CI interoperability.
CurseForge added native Fabric support recently, so Jumploader is no longer needed for CurseForge packs.
Proposed changes:
--loader fabric
uses a Fabric instance rather than JumploaderSince we're now retrieving metadata like dependencies, every time a mod is written two the manifest, two sequential http requests are made, which increases load times in big modpacks (like ATM) dramatically.
Look into reducing this by retrieving mod information upfront.
When installing with selectors such as projectid#fileid
or the Curseforge URL, a mod may be installed multiple times. Just remove exixting versions when installing, that will solve the issue.
MultiMC/
โโโ instances/
โโโ yourcreatedfolder/
โโโ minecraft/
โโโ mods/
To be able to release modpack on the CurseForge, resource pack files should be referenced in the manifest.json
.
Otherwise, the modpack will be rejected.
When making changes to mods, the manifest.json
updates. When trying to commit specific changes, it is really hard to see which projectID and fileIDs correspond to which mod and what changes have been done exactly. Maybe add a __pax
field into manifest.json to better see changes?
While users can still create a fabric modpack by installing Jumploader with /pax add jumploader
, it would be neat if the init command already had a toggle for that (or possibly asks for it).
Mark some mods as client/server only when installing.
Requires a nice server exporter first, of course.
i'd love to be able to do pax export ./builds/Fabric-Skies-1.4.0.zip
to export to a custom location and a custom file.
also an argument to set a pack version, rather than just MC or loader versions
This is on the latest commit.
On line 73 in cmdutils.nim the > should be a <
Currently, every time a command like ./pax ls
is executed, the entire list of mod information is downloaded again. Look into caching some of that, it'll greatly reduce execution time.
When searching for a mod to add/remove, pax only requests the top 50 results from the Curseforge API. Sometimes it's not enough. Make this properly configure.
sort files in manifest so working with git becomes more deterministic
would be nice if a list of all mods used in a pack could be generated, either when exporting so that a modlist.md
or modlist.html
exists in the output .zip
, or as a standalone command.
Internally, gameVersions are saved as a table, but retrieved as an array from the API. Only the last file for a given version is actually saved.
allows mods to be locked to versions, so update/upgrade commands won't up-/downgrade them.
implement a command to change the forge version when the version is updated.
On Windows, Nim needs the CA certificate to run with SSL enabled. I've added information on how to add it in the docs, but of course a automatic solution would be far better.
Don't have the time to check on Linux.
Either the API is down or the windows build has some problems.
While pax can already be automated pretty heavily, I'd like to provide a preset for the github ci so modpack makers don't have to look up how to make them themselves.
Ties in with #15
When doing: pax add https://www.curseforge.com/minecraft/mc-mods/dtbop
i get an error which is
fatal.nim(49) sysFatal
asyncfutures.nim(390) read
Error: unhandled exception: index out of bounds, the container is empty [IndexDefect]
When i try and add any other mod i do not get this error. This is happening for Version 1.7.1
I am also getting the exact same error when doing: pax add https://www.curseforge.com/minecraft/mc-mods/dtphc
I am only getting this error when adding the mod with the url. If i install it the normal way without the url i do not get this error
testament (The nim test runner) cannot run the tests on Windows apparently, because the regex doesnt work (?)
This is gonna get fixed once I have access to my Windows machine again.
Originally posted by @froehlichA in #45 (comment)
As per user request, a version strategy that prefers stable releases over other ones.
Currently the pax executable along with extra libraries for windows, needs to be placed in the same directory as the modpack. However it would be nice if I could place it elsewhere, add it to the PATH, and simply use it in any folder I wish. This would be especially helpful when working on different modpacks at the same time (avoids the need for multiple installations).
If I try running the pax executable from a different folder it just hangs at the moment.
I wanted to add this mod to my modpack: https://www.curseforge.com/minecraft/mc-mods/multithreaded-noise,
but it's released as alpha, and apparently, pax won't let me do that.
$ pax add Multithreaded Noise
[:] Loading data from manifest..
[:] Searching for mod..
[x] No compatible version found.
To select how pax installs a mod, the user currently has to pass the -s
Parameter to select an InstallStrategy. Perhaps it would be better if the user could select either "recommended" or "newest" in the CLI after selecting his mod.
PAX is currently only able to export Curseforge-compatible modpacks with the manifest.json
. Exporting to a .zip that contains the *.jar
s directly would also be very nice.
Git Stuff is only initialized when creating a new project with init
, but not with import
.
When importing other modpacks, the CI file and the other github stuff should be automatically initialized too.
Automatically sync files between a minecraft instance and the pax project.
For the pax add
command, the format currently allowed is:
pax add <name>
It would be nice if people could also add mods with:
pax add <curseforge-url>
, for example pax add https://www.curseforge.com/minecraft/mc-mods/jei
or pax add https://www.curseforge.com/minecraft/mc-mods/jei/files/3335737
pax add <mod-id>
, for example pax add 238222
pax add <mod-id>#<file-id>
, for example pax add 238222#3335737
Also, notifying if the mod version is the latest or the recommended. Like: <VERSION> (Recommended)
.
I have run into some confusion when updating the mods, so I was thinking would be neat.
[:] Loading data from manifest..
[:] Loading mods..
[:] Searching for mod..
[ฮ] SELECTED MOD
โโ MAtmos - https://www.curseforge.com/minecraft/mc-mods/matmos
โโ Description: MAtmos is a sound atmosphere generator for Minecraft.
โโ Downloads: 30.360
โโ Version: <VERSION>
Are you sure you want to update this mod? (y/n - default y):
[:] Retrieving mod versions..
[-] Updating MAtmos <VERSION>..
[:] Writing to manifest...
pax init
should generate some other stuff beside the modpack too, maybe including:
For CLIs and people that cannot afford terminals with color support ;)
Pax will be rewritten in Go because of two main reasons:
the api actually returns dependencies as well, so we gotta use that.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.