chimera icon indicating copy to clipboard operation
chimera copied to clipboard

any chance to make the project multi-version?

Open portlek opened this issue 4 years ago • 3 comments

at least 1.13-∞

portlek avatar Jan 01 '22 12:01 portlek

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.

Pante avatar Jan 01 '22 13:01 Pante

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.

portlek avatar Jan 01 '22 13:01 portlek

Honestly, if/when I get around to adding multi-version support, it'll be by building against Paper.

Pante avatar Jan 01 '22 14:01 Pante