TerraformersMC / ModMenu

A menu for, you guessed it, mods!
MIT License
478 stars 141 forks source link

Multiversion setup for 1.19 - 1.19.4 support #571

Closed thecatcore closed 7 months ago

thecatcore commented 1 year ago

Support MC versions from 1.19 to 1.19.4 (in between snapshots should technically work too). It builds a jar including the compatibility layer modules by default, resulting in a single jar for all supported versions.

Calls breaking between those versions are redirected to a proxy which handles registering each proxy module for the runtime mc version. Some mixins are handled the same way.

I tried my best to keep most logic code in the common/default sourceset whenever it was possible to avoid having to change the same code at multiple places when it shouldn't be needed.

Most compatibility code I took from ModMenu commit history to help determine which changes were needed between versions and which mc versions were breaking.

There is a lot of room to improve this setup. Maven publishing is not handled yet. Modules are interdependent because of the proxy logic.

thecatcore commented 1 year ago

I've included #556.