Skip to content

One Native Code to Rule Them All#2951

Open
octylFractal wants to merge 4 commits intoversion/7.4.xfrom
feature/one-native-code-to-rule-them-all
Open

One Native Code to Rule Them All#2951
octylFractal wants to merge 4 commits intoversion/7.4.xfrom
feature/one-native-code-to-rule-them-all

Conversation

@octylFractal
Copy link
Copy Markdown
Member

One native code to rule them all,
one native code to find them,
One native code to bring them all
and in the darkness bind them.


Merges most of Fabric and NeoForge into core-mc. This new project is just Fabric without the Fabric Loader or API, giving us a clean Minecraft dependency to build off of.

In the future, parts of this may be applicable to Paper as well. However, due to the nature of their patches, it's not as easy to assume that it builds cleanly. It may be necessary to instead copy sources to Paper to be compiled against it directly, to ensure there's no missing signatures or other incompatibilities.

See worldedit-core-mc/README.md for a better way to inspect the diff here.

@octylFractal octylFractal added this to the 7.4.3 milestone Apr 13, 2026
@octylFractal octylFractal self-assigned this Apr 13, 2026
@octylFractal octylFractal requested a review from a team as a code owner April 13, 2026 00:53
@octylFractal octylFractal added the platform:fabric Specific to the Fabric platform label Apr 13, 2026
@octylFractal octylFractal added type:tech-debt Task for cleaning up tech debt that has accumulated in the code base platform:neo-forge Specific to the NeoForge platform labels Apr 13, 2026
return this.config;
}

protected void setupRegistries(MinecraftServer server) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am semi concerned about just how tightly we're tying it to how NF/Fabric currently work. Eg, when it comes to registries we've in the past expressed interest in moving these to platform registry events etc.

I'm just a little concerned we're going to end up in spots where it's significant work to override something on a per-platform basis because of how closely we're tying it all to current behaviour

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is all internal so we can refactor it however we want later. There is nothing preventing us from changing all of this code.

Comment thread worldedit-core-mc/src/main/java/com/sk89q/worldedit/coremc/CoreMcAdapter.java Outdated
@octylFractal octylFractal force-pushed the feature/one-native-code-to-rule-them-all branch from 85fdb89 to 8ea3716 Compare April 20, 2026 05:26
@octylFractal octylFractal requested a review from me4502 April 20, 2026 05:26
This also makes Adapter an abstract class implemented by the platforms,
which expose their adapter back to coremc and also to other mods.
@octylFractal octylFractal force-pushed the feature/one-native-code-to-rule-them-all branch from 8ea3716 to 31cf21e Compare April 20, 2026 07:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

platform:fabric Specific to the Fabric platform platform:neo-forge Specific to the NeoForge platform type:tech-debt Task for cleaning up tech debt that has accumulated in the code base

Projects

Development

Successfully merging this pull request may close these issues.

2 participants