From b4acb43e857c1587ac46dbb9a67d80d39b490bee Mon Sep 17 00:00:00 2001 From: Helvetica Volubi <88063803+Suisuroru@users.noreply.github.com> Date: Sun, 16 Mar 2025 12:41:54 +0800 Subject: [PATCH] [ci skip] Update CONTRIBUTING guide (#57) * misc: fixup count of patch * ci: update ncipollo/release-action to 1.16.0 * docs: update CONTRIBUTING.md * docs: update CONTRIBUTING files * docs: update CONTRIBUTING files * Update CONTRIBUTING.md * docs: sync zh_cn's update to en * docs: correct grammar errors * docs: fixup jdk version to 21 --------- Co-authored-by: xiaoxijun --- .github/workflows/build_1.21.4.yml | 2 +- docs/CONTRIBUTING.md | 25 +++++++------- docs/CONTRIBUTING_EN.md | 33 ++++++++++--------- ... => 0043-Leaves-Revert-raid-changes.patch} | 0 ...ves-Disable-moved-wrongly-threshold.patch} | 10 +++--- ...ect-Collision-Behavior-for-Block-Sh.patch} | 0 ... 0046-Raytracing-tracker-experiment.patch} | 0 ...rpur-Barrels-and-enderchests-6-rows.patch} | 0 ... => 0048-Configurable-tripwire-dupe.patch} | 0 9 files changed, 38 insertions(+), 32 deletions(-) rename luminol-server/minecraft-patches/features/{0042-Leaves-Revert-raid-changes.patch => 0043-Leaves-Revert-raid-changes.patch} (100%) rename luminol-server/minecraft-patches/features/{0043-Leaves-Disable-moved-wrongly-threshold.patch => 0044-Leaves-Disable-moved-wrongly-threshold.patch} (91%) rename luminol-server/minecraft-patches/features/{0044-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch => 0045-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch} (100%) rename luminol-server/minecraft-patches/features/{0045-Raytracing-tracker-experiment.patch => 0046-Raytracing-tracker-experiment.patch} (100%) rename luminol-server/minecraft-patches/features/{0046-Purpur-Barrels-and-enderchests-6-rows.patch => 0047-Purpur-Barrels-and-enderchests-6-rows.patch} (100%) rename luminol-server/minecraft-patches/features/{0047-Configurable-tripwire-dupe.patch => 0048-Configurable-tripwire-dupe.patch} (100%) diff --git a/.github/workflows/build_1.21.4.yml b/.github/workflows/build_1.21.4.yml index 8099c76..c62f0d9 100644 --- a/.github/workflows/build_1.21.4.yml +++ b/.github/workflows/build_1.21.4.yml @@ -47,7 +47,7 @@ jobs: run: sh scripts/SetENV.sh - name: Create Release if: github.event_name != 'pull_request' - uses: ncipollo/release-action@v1.14.0 + uses: ncipollo/release-action@v1.16.0 with: tag: ${{ env.tag }} name: ${{ env.project_id_b }} ${{ env.mcversion }} - ${{ env.commit_id }} diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index a97b31e..fbf4fd2 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -21,23 +21,24 @@ 在开始开发之前,您首先需要拥有以下软件作为开发环境: - `git` -- `JDK 17 或更高版本` +- `JDK 21 或更高版本` ## 了解补丁(Patches) Luminol 使用和 Folia 一样的补丁系统,并为了针对不同部分的修改分成了两个目录: - `luminol-api` - 对 `Folia-API` / `Paper-API` / `Spigot-API` / `Bukkit` 进行的修改。 +- `luminol-server` - 对 Minecraft 标准服务器原有逻辑进行的修改。 补丁系统是基于 git 的,你可以在这里了解 git 的基本内容: 如果你已经 Fork 了主储存库,那么下面你应该这么做: 1. 将你的仓库 clone 到本地; -2. 在你的 IDE 或 终端 内执行 Gradle 的 `applyPatches` 任务,如果是在终端内,你可以执行 `./gradlew applyPatches`; -3. 进入 `luminol-api` 文件夹进行修改。 +2. 在你的 IDE 或 终端 内执行 Gradle 的 `applyAllPatches` 任务,如果是在终端内,你可以执行 `./gradlew applyAllPatches`; +3. 进入 仓库根目录下的 `luminol-api` 和 `luminol-server` 文件夹进行修改。 -顺便一提,`luminol-api` 并不是正常的 git 仓库: +顺便一提,仓库根目录下的 `luminol-api` 和 `luminol-server` 并不是正常的 git 仓库: - 在应用补丁前,基点将会指向未被更改的源码 - 在基点后的每一个提交都是一个补丁 @@ -47,11 +48,12 @@ Luminol 使用和 Folia 一样的补丁系统,并为了针对不同部分的 按照以下步骤增加一个补丁是非常简单的: -1. 对 `luminol-api` 进行修改; -2. 使用 git 添加你的修改,比如 `git add .`; +1. 对 `luminol-api` 和 `luminol-server` 进行修改; +2. 使用 git 添加你的修改,比如 `git add .`(不要提交新建的文件的修改); 3. 使用 `git commit -m <提交信息>` 进行提交; -4. 运行 Gradle 任务 `rebuildPatches` 将你的提交转化为一个补丁; -5. 将你生成的补丁文件进行推送。 +4. 运行 Gradle 任务 `rebuildAllServerPatches` 将你的提交转化为一个补丁; +5. 运行 Gradle 任务 `fixupPaperApiFilePatches` 生成新建文件的补丁文件(注意不要提交); +6. 将你生成的补丁文件进行推送。 这样做以后,你就可以将你的补丁文件进行 PR 提交。 @@ -60,8 +62,9 @@ Luminol 使用和 Folia 一样的补丁系统,并为了针对不同部分的 你可以使用以下方法来修改一个补丁的内容: 1. 在 HEAD 上直接进行修改; -2. 使用 `git commit -a --fixup ` 来进行一个更正提交; +2. 使用 `git commit -a --fixup ` 来进行一个更正提交;(不要提交对在luminol新建文件的修改) - 如果你想要更改提交信息,你也可以用 `--squash` 来代替 `--fixup`。 3. 使用 `git rebase -i --autosquash base` 来进行自动变基,你只需要输入 `:q` 来关闭确认页面即可; -4. 运行 Gradle 任务 `rebuildPatches` 来修改已被修改的补丁; -5. 将修改后的补丁 PR 发回储存库。 \ No newline at end of file +4. 运行 Gradle 任务 `rebuildAllServerPatches` 来修改已被修改的补丁; +5. 运行 Gradle 任务 `fixupPaperApiFilePatches` 来修改已被修改的在luminol新建文件的补丁(注意不要提交); +6. 将修改后的补丁 PR 发回储存库。 diff --git a/docs/CONTRIBUTING_EN.md b/docs/CONTRIBUTING_EN.md index dc4d6c5..2fffd60 100644 --- a/docs/CONTRIBUTING_EN.md +++ b/docs/CONTRIBUTING_EN.md @@ -10,7 +10,7 @@ And if you can follow the rules below, we can complete the review faster. ## Please fork using your personal account We regularly merge existing PRs. -If there're some small problems, we'll help you solve them by editing your PR. +If there are some small problems, we'll help you solve them by editing your PR. But, if your PR is from a organization, we can NOT edit your PR, so we must merge your PR manually. @@ -20,10 +20,10 @@ See also [This issue](https://github.com/isaacs/github/issues/1681), and then yo ## Development Environment -Before coding, you need these softwares / tools as Dev Environment. +Before coding, you need these pieces of software / tools as Dev Environment. - `git` -- `JDK 17 or higher` +- `JDK 21 or higher` ## Understanding "Patches" @@ -31,16 +31,17 @@ Luminol uses as the same patching system as Paper, and has been divided into two directories for the purpose of modifying different parts of it: - `luminol-api` - Modifications to `Folia-API` / `Paper-API` / `Spigot-API` / `Bukkit`. +- `luminol-server` - Modifications to Minecraft Official Server's source logic. The patching system is based on git, and you can learn about it at here: If you have forked the main repository, then you should follow the steps below: 1. Clone your repository to local -2. Run Gradle's `applyPatches` task in your IDE or terminal (You can run `./gradlew applyPatches` directly in terminal.) -3. Enter `luminol-api` directory to carry out modifications. +2. Run Gradle's `applyAllPatches` task in your IDE or terminal (You can run `./gradlew applyAllPatches` directly in terminal.) +3. Enter `luminol-api` and `luminol-server` directory to carry out modifications. -BTW, `luminol-api` and are not normal git repositories. +BTW, `luminol-api` and `luminol-server` and are not normal git repositories. - Before applying patches, the base will point to unmodified source code. - Every commit after the base is a patch. @@ -48,23 +49,25 @@ BTW, `luminol-api` and are not normal git repositories. ## Adding new patches -It's very easy to to add patches by following the steps below: +It's very easy to add patches by following the steps below: -1. Modify the code of `luminol-api` +1. Modify the code of `luminol-api` and `luminol-server` 2. Add these changes to the local git repository (For example, `git add .`) -3. Commit these changes using `git commit -m ` -4. Run Gradle's task `rebuildPatches` to convert your commits to a new patch -5. Push your patches to your repository +3. Commit these changes using `git commit -m ` (PS: do not commit new-created files) +4. Run Gradle's task `rebuildAllServerPatches` to convert your commits to a new patch +5. Run Gradle's task `fixupPaperApiFilePatches` to generate new-crated files to new patches (PS: do not commit again before you run this task) +6. Push your patches to your repository After pushing, you can open a PR to submit your patches. ## Modifying patches -You can modify a existing patch by following the steps below: +You can modify an existing patch by following the steps below: 1. Modify code at HEAD -2. Run `git commit -a --fixup ` in your terminal to make a fix-up commit +2. Run `git commit -a --fixup ` in your terminal to make a fix-up commit (PS: do not commit changes of luminol-created files) - If you want to edit the commit message, replace `--fixup` with `--squash`. 3. Run `git rebase -i --autosquash base` to rebase automatically, then just type `:q` to close the confirm page -4. Run Gradle's task `rebuildPatches` to modify existing patches -5. Push and PR again \ No newline at end of file +4. Run Gradle's task `rebuildAllServerPatches` to modify existing patches +5. Run Gradle's task `fixupPaperApiFilePatches` to regenerate luminol-crated files to patches (PS: do not commit again before you run this task) +6. Push and PR again \ No newline at end of file diff --git a/luminol-server/minecraft-patches/features/0042-Leaves-Revert-raid-changes.patch b/luminol-server/minecraft-patches/features/0043-Leaves-Revert-raid-changes.patch similarity index 100% rename from luminol-server/minecraft-patches/features/0042-Leaves-Revert-raid-changes.patch rename to luminol-server/minecraft-patches/features/0043-Leaves-Revert-raid-changes.patch diff --git a/luminol-server/minecraft-patches/features/0043-Leaves-Disable-moved-wrongly-threshold.patch b/luminol-server/minecraft-patches/features/0044-Leaves-Disable-moved-wrongly-threshold.patch similarity index 91% rename from luminol-server/minecraft-patches/features/0043-Leaves-Disable-moved-wrongly-threshold.patch rename to luminol-server/minecraft-patches/features/0044-Leaves-Disable-moved-wrongly-threshold.patch index 1028d8d..3c8efde 100644 --- a/luminol-server/minecraft-patches/features/0043-Leaves-Disable-moved-wrongly-threshold.patch +++ b/luminol-server/minecraft-patches/features/0044-Leaves-Disable-moved-wrongly-threshold.patch @@ -5,10 +5,10 @@ Subject: [PATCH] Leaves Disable moved wrongly threshold diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -index 4e3cb90558533ea7ca0c838745e91ec5860c11ce..9fc72689b5021d1de2e149c1dfe5fc60048c7231 100644 +index a2fe9286d432909ba0cb3731a166514af768dc37..d60721767f94336eaba09b9bdb12a1420c264e49 100644 --- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java -@@ -579,7 +579,7 @@ public class ServerGamePacketListenerImpl +@@ -581,7 +581,7 @@ public class ServerGamePacketListenerImpl return; } // Paper end - Prevent moving into unloaded chunks @@ -17,7 +17,7 @@ index 4e3cb90558533ea7ca0c838745e91ec5860c11ce..9fc72689b5021d1de2e149c1dfe5fc60 // CraftBukkit end LOGGER.warn( "{} (vehicle of {}) moved too quickly! {},{},{}", rootVehicle.getName().getString(), this.player.getName().getString(), d3, d4, d5 -@@ -609,7 +609,7 @@ public class ServerGamePacketListenerImpl +@@ -611,7 +611,7 @@ public class ServerGamePacketListenerImpl d5 = d2 - rootVehicle.getZ(); d7 = d3 * d3 + d4 * d4 + d5 * d5; boolean flag2 = false; @@ -26,7 +26,7 @@ index 4e3cb90558533ea7ca0c838745e91ec5860c11ce..9fc72689b5021d1de2e149c1dfe5fc60 flag2 = true; // Paper - diff on change, this should be moved wrongly LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7)); } -@@ -1434,7 +1434,7 @@ public class ServerGamePacketListenerImpl +@@ -1437,7 +1437,7 @@ public class ServerGamePacketListenerImpl if (this.shouldCheckPlayerMovement(isFallFlying)) { float f2 = isFallFlying ? 300.0F : 100.0F; @@ -35,7 +35,7 @@ index 4e3cb90558533ea7ca0c838745e91ec5860c11ce..9fc72689b5021d1de2e149c1dfe5fc60 // CraftBukkit end // Paper start - Add fail move event io.papermc.paper.event.player.PlayerFailMoveEvent event = fireFailMove(io.papermc.paper.event.player.PlayerFailMoveEvent.FailReason.MOVED_TOO_QUICKLY, -@@ -1506,7 +1506,8 @@ public class ServerGamePacketListenerImpl +@@ -1509,7 +1509,8 @@ public class ServerGamePacketListenerImpl d5 = d2 - this.player.getZ(); d7 = d3 * d3 + d4 * d4 + d5 * d5; boolean movedWrongly = false; // Paper - Add fail move event; rename diff --git a/luminol-server/minecraft-patches/features/0044-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch b/luminol-server/minecraft-patches/features/0045-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch similarity index 100% rename from luminol-server/minecraft-patches/features/0044-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch rename to luminol-server/minecraft-patches/features/0045-Leaves-Fix-Incorrect-Collision-Behavior-for-Block-Sh.patch diff --git a/luminol-server/minecraft-patches/features/0045-Raytracing-tracker-experiment.patch b/luminol-server/minecraft-patches/features/0046-Raytracing-tracker-experiment.patch similarity index 100% rename from luminol-server/minecraft-patches/features/0045-Raytracing-tracker-experiment.patch rename to luminol-server/minecraft-patches/features/0046-Raytracing-tracker-experiment.patch diff --git a/luminol-server/minecraft-patches/features/0046-Purpur-Barrels-and-enderchests-6-rows.patch b/luminol-server/minecraft-patches/features/0047-Purpur-Barrels-and-enderchests-6-rows.patch similarity index 100% rename from luminol-server/minecraft-patches/features/0046-Purpur-Barrels-and-enderchests-6-rows.patch rename to luminol-server/minecraft-patches/features/0047-Purpur-Barrels-and-enderchests-6-rows.patch diff --git a/luminol-server/minecraft-patches/features/0047-Configurable-tripwire-dupe.patch b/luminol-server/minecraft-patches/features/0048-Configurable-tripwire-dupe.patch similarity index 100% rename from luminol-server/minecraft-patches/features/0047-Configurable-tripwire-dupe.patch rename to luminol-server/minecraft-patches/features/0048-Configurable-tripwire-dupe.patch