This is a multi-loader and multi-version minecraft mod template that supports client and server mods/plugins. Most of the build scripts are originally from the Distant Horizons mod by James Seibel. This template should take away the need to write setup boilerplate code.
Important
This template is not finished and should not be used for now! Use at your own risk!
You can, however, provide any ideas you have or help with the development.
Maybe I overscoped a bit... but I will see how it goes :)
- Fabric and Quilt support
- Forge support
- NeoForge support
- multi-version support
- selective jar merging with Forgix
- mixin examples
- Text wrappers to make debugging commands easier to write
- multi-loader and multi-version client and server commands
- common mixins: in build.gradle: don't rename common to loaderCommon (does it work with Forgix then??)
- mostly done... support: Bukkit, Paper, Sponge, Folia, Purpur, Spigot (is there mixin support in all of them?)
- remove all possible hardcoded reference strings:
- make auto-copy and renaming script (include mode to change names if already modified); init new README with name (and state that this template was used); modify license notices (include that this template was used + what was used to make the template); .bat file that controls a gradle task and gets the parameters like the build.gradle gets the version...
- make autotest script:
- copy every .jar in compatible client or server <- configurable !
- this should test all jars in the lowest and highest supported version of that .jar
- test modes: (start via cmd or sth...; use portablemc, AT-Launcher, installer .jar from loader or similar ?)
- manual version selection
- all jars in sequence: auto open 1., manual close 1., auto open 2. ...
- auto open all in sequence (just tests if .jar launches)
- implement config handling:
- abstract config in common (client-, common- and server-config), annotate command configuration with Java Annotations
- onConfigChanged event
- Cloth / YACL example
- changeable with commands: (on server: admins; on client: player; common on server and client)
- modmenu, catalogue, mod-loader stuff, and other mod list screens
- config in versions before Cloth and YACL ???
- mostly done... implement Mod Publisher
- Logger Wrapper with an option to send to chat (with color: info = yellow/white?; warning = orange; error = red)
- work on every TODO and FIXME comment
- final cleanup pass & order functions: more important once to the top & change MC version to latest
- check license notices (include what was used to make the template)
- check if all changes are stated with author and date in class java doc
- make Readme for this template
- basic info
- tutorial; mention Manifold and Minecraft Development plugins; also look at MultiLoader-Template for inspiration
- include what code I used at bottom + no affiliations disclaimer
- link to useful wikis from loaders (version selectors; also legacy fabric), etc...
- make feature compatibility table
- make server only, client only and legacy version branches + mention in Readme
- link to RemotePlayerWaypoints mod as example (once moved to this template...)
- Disant Horizons: build scripts and project structure
- Chunky: inspiration for plugin multi-loader setup
- Architectury: Loom to compile (Neo)Forge
- modpublisher: to publish the mod
- Forgix: to merge different loader jars
- Cloth Config: for config
- Manifold: Java preprocessor
- Gradle Shadow: to combine code jars
- Portable Minecraft Launcher: to test builds