I’ve sen a few things now about plugin packs and how they could be implemented, but based on what I’ve seen, it doesn’t look like it is incredibly user friendly. So, here is what I thought of.
We all know plugins ship as jars, because Java. You drop a plugin jar into your plugins folder and bam, plugin. Now, what if you had a zip with plugins in it, and dropped that into your plugins folder? If Sponge had a routine to check for some sort of identifying file, say “spongePluginPack.txt” which contained an index of all the plugins in the zip, and if it matched the zip contents, extract the plugins in the pack to the plugins folder, well, there’s the most simple user friendly plugin pack system.
How hard can unzipping a file be? I mean, the idea is great and everything, I just don’t quite see the use of it. It would rquire substantial changes in plugin loading, just so the user doesn’t have to unzip a zip file.
I don’t see how it wold require substantial changes. Before the server starts to physically load plugins, just iterate through the plugins folder to check for zips. If any are found, check for a proper index. If proper index, extract plugins that arent duplicates and delete the zip. Else skip over it, maybe outputting a log message saying a random zip is in the plugins folder.
I understand unzipping should be something people just know to do, but since it is a matter of just iterating through some zip files, I think it is something that can be made autonomous and make things like checking for dupe plugins on a server that aleast has 50 a little less time consuming.
I won’t be offended if you think it’s a bad idea, but I figured I’d share this knowing there are some people who would rather the server do it for them.
Modpacks exist because you need to combine exact versions of mods or everything falls apart. Sponge’s API means that this shouldn’t be necessary. I see no reason to specifically package a set of plugins when you can instead direct users to acquire the latest version of each plugin. Manage your plugins separately. Don’t force yourself to a specific, potentially outdated, ‘pack’.
I was thinking that it should be supported by forge mods and sponge plugins, I can agree that the sponge plugins at least are not needed in exactly the same configuration every time nor do they need to be the same on the client, but the forge mods at least do. So having the continuity of packaging the mods and plugins together and placing the package in the same folder would be nice. But this may be just as easily done by some sort of self installing zip script containing forge, sponge forge mods and sponge plugins.