any chance to make the project multi-version?
at least 1.13-∞
I guess, it'll really depends. It's going to be difficult/tedious to provide backwards compatibility with all prior versions until 1.13 at this point. I won't say it's off the table but I personally don't have the motivation to do so in the near future.
That said, if someone's kind enough to contribute a PR that does so, I'll be more than happy to merge it!
I've explored a few methods to support multiple versions in the past:
-
Use reflection instead of NMS - This method is unfortunately not viable since Chimera relies on quite a few NMS types and methods internally. Switching this to reflection is going to greatly increase the maintenance burden while suffering a major hit to performance, something I'm not too keen on.
-
Multiple modules for different versions of NMS - This solution is plausible but it'll definitely increase maintenance burden.
-
Build against Paper - Paper provides exposes a Brigadier API. To my knowledge it doesn't go all the way back to 1.13 but it's definitely a viable, future-proof solution. My only concern is that existing projects that depend on this library may be using Spigot.
the project definitely needs a design change for both nms modules and reflection things. i agree with the point that will take a lot of time to achieve that.
Honestly, if/when I get around to adding multi-version support, it'll be by building against Paper.