CivMC / Civ

Monorepo for development of and running a Civ Server.
MIT License
4 stars 11 forks source link

Add mixin support via Ignite #556

Closed Protonull closed 4 weeks ago

Protonull commented 3 months ago

Add Ignite support so that we can write mixins that add behaviour and fix issues that are difficult or impossible to do via traditional means.

AngrySoundTech commented 2 months ago

I like the idea of mixins so we can start to move away from nms, need to look into whether or not ignite is a well supported platform or if there are any better alternatives.

Protonull commented 2 months ago

Ignore does require a special flag when running the java command, but I can't seem to find it. I think it's called within a docker image? I have no idea how one would do about modifying that.

As for NMS, it wouldn't necessarily mean we move away from NMS, but rather that there'd be much less cause to hack together a solution for something by delving from Bukkit into NMS, as we could use a Mixin to do whatever we want from NMS to begin with.

okx-code commented 2 months ago

I don't know, I'd rather we forked Paper for this (you'd get just as much compatibility) or contributed directly to Paper

Protonull commented 2 months ago

I don't know, I'd rather we forked Paper for this (you'd get just as much compatibility) or contributed directly to Paper

Y'all could fork PaperMC, but I hazard that would be a LOT more effort, particularly in terms of updating the monorepo to support that. And while we could contribute patches to PaperMC, we wouldn't see the benefit of them for quite some time given how CivMC is always behind in version. Mixins aren't ideal, but it's a nice compromise. If you're able to update the monorepo to support a PaperMC fork, then by all means use that. But I think PaperMC only begrudgingly supports forks in paperweight.

okx-code commented 2 months ago

Forking PaperMC is not that much effort, I've done it before. The only problem is that when updating to newer versions, you may have conflicts, but Mixins wouldn't be any easier in that regard.

Protonull commented 2 months ago

Fair enough :) would you be able to setup an experimental branch with a PaperMC fork project?