主要还是自己摸索, 读源码, 看仓库等等,这真的没文档( 我这边也只能给你稍微讲一下
因为mc核心的特殊性, 原版服务端核心是闭源的,官方(mojang)只提供了Jar和mapping文件,并未提供源码,所以从bukkit开始,核心源码是反编译, 根据mapping文件remap,等一系列流程来的,然后最后你可以获得源代码。
Paper使用了paperweight (Gradle插件),提供了多个mc核心开发所需功能,让应用补丁 (Apply Patches - 从下载仓库源码, 反编译minecraft原版服务端核心,remap,修复,应用Paper等上游的补丁一系列步骤), 构建Paperclip jar (Create Mojmap/Reobf Paperclip jar - 从源码构建出核心,并生成Paperclip jar以供使用,运行), 重新构建补丁 (Rebuild Patches - 将你对源码的修改转成补丁的形式, 或对现有的补丁进行更新) 等等变得更加方便
所以要对一个核心, 如Paper, 进行修改, 就是fork他,作为他的下游,在他的基础上进行修改 (加入更多补丁),同时这样fork的目的也是可以更好的管理自己的修改。
Leaf 目前的关系图差不多是
vanilla -> Bukkit -> CraftBukkit -> Spigot -> | Paper -> Gale -> Leaf (+Purpur)