Kir-Antipov / mc-publish

🚀 Your one-stop GitHub Action for seamless Minecraft project publication across various platforms.
MIT License
225 stars 18 forks source link

[Feature Request] CurseForge Server Pack #125

Open HaXrBOT opened 1 month ago

HaXrBOT commented 1 month ago

Description

Sorry in advance if this is a duplicate of https://github.com/Kir-Antipov/mc-publish/issues/92!

I would love to use this project to automate the publishing of one of my modpacks, but from what i can see, it isn't possible at the moment to mark additional files as a Server Pack. Is this perhaps something that could be looked into?

Alternative Solutions

I tried this upload-curseforge-modpack-action, which actually did the trick for me. But it has other pitfalls and is not nearly as versatile as mc-publish.

Risks

I don't see why this would have any risk. From my understanding it should a simple toggle in the API that is available when uploading additional files to modpacks.

Other Information

No response

Kir-Antipov commented 1 month ago

92 was a duplicate of #64, which is different - it's about specifying the working environment of a specific mod (mostly). Modpacks differ in that sense, as they are intended for both client- and server-side environments. However, you can also provide a "simplified" version of your modpack for the server, stripped down from client-side-only mods (which is not strictly necessary, since client-side mods should simply remain inactive on a dedicated server, but it may save some storage and traffic in the case of large modpacks).

It turns out the CurseForge Upload API has yet another, sigh, undocumented parameter - isServerPack, which allows you to mark an additional file as a dedicated server-only version of your modpack. I see absolutely no harm in supporting that either. However, mc-publish doesn't have the infrastructure to attach data to secondary files, so this needs to be fully automatic (which aligns with enhanced support for modpacks and other project types planned for v4). Thus, I would highly appreciate it if you could give me a few links to projects that provide server packs, so I could poke them a bit and implement logic that detects if a secondary file is a server pack or not.

HaXrBOT commented 1 month ago

Thus, I would highly appreciate it if you could give me a few links to projects that provide server packs, so I could poke them a bit and implement logic that detects if a secondary file is a server pack or not.

I'm afraid that i haven't been able to find any other projects that supports server packs than the one i already linked. Their solution basically just require you to specify paths for the main file and the server pack separately. Not sure how you would be able to automatically detect whether a file is a server pack or not, as they don't usually include any metadata files. ¯_(ツ)_/¯

Kir-Antipov commented 1 month ago

By "projects" I meant modpacks published on CurseForge that make use of server packs :)

HaXrBOT commented 1 month ago

Oh duh, of course! xD Here's a few modpacks that has server packs available: https://www.curseforge.com/minecraft/modpacks/insomnia-hardcore (my modpack) https://www.curseforge.com/minecraft/modpacks/prominence-2-rpg https://www.curseforge.com/minecraft/modpacks/better-mc-fabric-bmc2 https://www.curseforge.com/minecraft/modpacks/rlcraft https://www.curseforge.com/minecraft/modpacks/vault-hunters-1-18-2

Kir-Antipov commented 1 month ago

Thanks! Welp, you weren't kidding when you said that they don't contain any standardized metadata. I guess we can automatically mark a modpack that's being uploaded as a secondary file as a server pack then? Is there any reason to publish a modpack as an additional file beyond that?

HaXrBOT commented 1 month ago

Maybe to provide optional configs? Other than that, not really. Though the only pack i know to do this is RLCraft, so it is quite a niche use case.