One of the largest problems is that it is required for MineOS to be able to accurately determine the versions, because it will determine which “ping” protocol to use. Protocols have changed much from 1.5 (still in use), 1.6.4, 1.7, and will continue to change going forward as Mojang creates new aspects of the world.
Now, I need to accurately determine the version because I have to send the correct ‘Send me your server status’ packet. Sending the correct packet gives an immediate response and an immediate socket closure, whereas sending the wrong packet gives a response sometimes delayed 3 or more seconds and a socket timeout at 20. 3 seconds, even if constant, would make the web-ui unusable (because that would be the delay for each request that checks if the server is online).
Now, ultimately, most of the forge jars created will still be similar in nature and could possibly still use the same 5 (or a few more) hard-coded paths I have put in place, but it’s not really the technical reason there that is most deterring: it is the notion that if a server doesn’t start up properly or is unbearably delayed, it would not be feasible for the end-user admin to determine whether the problem is in the MineOS scripts (version detection), the Forge jar-creating process, or some other facet of the creation process. In other words, I’d be relegating the responsibility of creating a working jar to myself (which is something I have no experience in) and opening up endless combinations of forge mods which I myself am not entirely certain I can anticipate.
At least with self-made forge jars, when it doesn’t work, an admin knows to try starting up the server manually (most of the time), by opening it at the command line. When it doesn’t work, they know it’s not in the MineOS workflow, so they know how to hone in on the problem. By trying to create the jar for them, that distinction is muddled.
Let’s put it another way: I’m not familiar (or even very inclined) to learn how to create forge jars, but if any users out there can lay down the foundation work for automating jar creation and validating its mods, I’d be happy to integrate it into the MineOS workflow. Short of that (getting help from admins interested in using it, trusting it), it is unsure whether this endeavor will have a good effort/payout ratio.
As a side note, you’ll see that this workflow for creating jars is useful even if one didn’t use MineOS, which is another reason for its separation from the main product (i.e., a different git-hosted project).