Skip to content
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

Generalized mod/modpack management interface for panel plugins #1294

Open
1 task done
p0t4t0sandwich opened this issue Feb 17, 2025 · 0 comments
Open
1 task done

Generalized mod/modpack management interface for panel plugins #1294

p0t4t0sandwich opened this issue Feb 17, 2025 · 0 comments
Labels
enhancement New features or enhancements to existing ones

Comments

@p0t4t0sandwich
Copy link
Contributor

I confirm that

  • I have searched for an existing feature request matching the description.

Feature Description

Not sure if I have some fun confirmation-bias kicking around since I've been working on similar ideas, but recently there seem to be a bunch of requests for modpack/mod integrations with AMP, and not just for Minecraft.
Given each implementation is bespoke (luckily the steam workshop is reusable) and is going to be a bit of a pain to put together both in the backend and the frontend, I feel there should probably be some minor generalizations in the mix.
In my mind I'm thinking of something along the lines of IModProvider and IModpackProvider to define the data-flow side of things, and have that interface auto-generate it's own tab on the frontend. (The hard part obviously being the data-generalization side of things)
in short, if I were to make it myself the frontend would be atrocious, and it would be neat if there was just a magic thing that I could implement
Extra note: semantically, server plugins are generally just server-side mods, as they are still modifications to the game. In other words, mod is a better generalized term as opposed to plugin.

Generally assuming each IMod would have:

  • mod Name
  • mod Id -- probably preferred method of identification, falling back to the name
  • mod version
  • mod authors
  • photo/thumbnail
  • resource endpoint, or a callback/closure method in-code

To generalize each IModProvider:

  • SearchModByName/Id -- a parameter for search predicates of some sort, for providers that specify different platforms/modloaders
  • DownloadModByName/Id
  • UpdateModByName/Id
  • DeleteModByName/Id
  • DeleteModResourcesByName/Id

And finally, IModPackProvider:

  • SeachModPackByName/Id
  • InstallModPackByName/Id
  • UpdateInstalledModPack -- needs to be gatekept around a few confirmation menus, warning users and insisting on taking backups
  • DeleteInstalledModpack -- this one would be a bit questionable as to what files to keep/destroy, on the fence

Scheduled updates have been mentioned a few times, but similar to updating a set of mods flat-out, there should probably be some caveats. Checking for updates though I could see as a useful scheduler action.

Maybe if that goes well, that could be incorporated into a really basic modpack/preset management utility in AMP, caching the files globally on the system somehow. (seen it requested a few times for games that require a whackload of storage and users don't want to waste the space installing multiple servers)

Related issues:
Factorio:

Modrinth/CurseForge:

Spigot:

Steam Workshop:

Thunderstore:

Scheduling:

@p0t4t0sandwich p0t4t0sandwich added the enhancement New features or enhancements to existing ones label Feb 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New features or enhancements to existing ones
Projects
None yet
Development

No branches or pull requests

1 participant