Conversation
|
Is anyone available to give this a review? |
|
@vrrdnt I apologize that wasn't reviewed. I have been extremely busy in my personal life for the last 4-ish months. I can review this over this weekend. |
|
No worries at all -- please take your time. I’ve added two commits based on recently reported issues:
|
|
I have requested the reporters of the issues you said this may resolve. I will give it a look as well. |
Revert the five files introduced by edcb7a1: the CurseForge GitHub Actions workflow, Docker test image, test documentation, installer fixtures, and HTTP tests. These additions were not intended to be part of PR pelican-eggs#131. Preserve all installer and egg documentation changes. Verified the staged tree exactly matches 28eb4f8, the commit immediately before the test additions, and git diff --cached --check passes. No runtime tests were run because this change only removes the unintended test infrastructure.
7c7edf5 to
58a5c8a
Compare
|
I've tried to clean this PR up into two commits, since it became a mess. The first converts the original Pelican egg to YAML for improved readability, and the second applies the existing fixes. 58a5c8a should be easier to review since it shows the installer changes separately from the format conversion. The Pterodactyl egg is still JSON. The changes cover:
While testing these changes (post-YAML-conversion) using StoneBlock 4, I found that failed client manifest extraction needed a more readable error. Its server ZIP only contains scripts for downloading FTB’s own installer, so it can’t be installed by this egg. It now stops with a clear message pointing to the FTB egg, instead of continuing into I’ve tested the new YAML egg on my Pelican panel using AllTheMods 10 (latest), and installation completed successfully. |
Description
Fixes three install-script bugs in the CurseForge generic egg, plus one variable default cleanup.
May resolve:
#121
#127
Commits:
[java/curseforge] Fix null/zero serverPackFileId crash on latest install -- Resolves [Install Bug]: Curseforge Generic #121. Adds
select(. != null and . != 0)guards in twojqexpressions so they stop emitting the literal strings"null"/"0"when CurseForge returns those forserverPackFileId.[java/curseforge] Extract download URL resolution into a helper -- Pure refactor. Consolidates three duplicated
/v1/mods/{pid}/files/{fid}/download-urlfetches into onecf_resolve_download_urlhelper. Same endpoint, auth, parsing, and empty-on-failure behavior.[java/curseforge] Surface clear error when API distribution is disabled -- When a project has
allowModDistribution: false,/download-urlreturns 403 with no body. Replace the opaque "No download url found" message at all three call sites with a prominent block that names the cause (author has opted out of API distribution) and tells the user to download the pack manually. Forjson_download_mods, retain the existingcontinuebehavior but warn loudly that the install will be incomplete. The egg deliberately does not bypass the flag by constructingedge.forgecdn.netURLs fromfileId/fileName, as doing so would ignore the author's wishes and risk API key revocation.[java/curseforge] Default modpack File ID to blank -- Variable default change only. The script already treats
""and"latest"identically (both fall back tomainFileId); drop the magic-string default so users get newest-version behavior by leaving the field blank.[java/curseforge] Mirror fixes to pterodactyl egg variant -- The install script between the pelican egg and pterodactyl egg are identical, so the fixes were copied over to the pelican variant's install script.
Tested locally against a real Pelican panel install with several modpacks, including one with
allowModDistribution: false(COBBLEVERSE - Pokemon Adventure [Cobblemon], project 1210677) to verify the new error path is reached and the message displays cleanly.Checklist for all submissions
Have you followed the guidelines in our Contributing document?
Have you checked to ensure there aren't other open Pull Requests for the same update/change?
Have you tested and reviewed your changes with confidence that everything works?
Did you branch your changes and PR from that branch and not from your master branch?
You verify that the start command applied does not use a shell script
The egg was exported from the panel