diff --git a/.gitignore b/.gitignore
index 62b6c22a..44a9d442 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,7 +19,7 @@ build
# Leaf
build-data/dev-imports.txt
-patches/todo
+leaf-archived-patches/todo
run
leaf-api/build.gradle.kts
diff --git a/README.md b/README.md
index 04813f4a..72145c99 100644
--- a/README.md
+++ b/README.md
@@ -1,31 +1,30 @@
-[](https://github.com/Winds-Studio/Leaf/releases)⠀
+[](https://www.leafmc.one/download)⠀
[](https://github.com/Winds-Studio/Leaf/actions)⠀
[](https://discord.gg/gfgAwdSEuM)
-[](https://www.leafmc.one/docs/)
+[](https://www.leafmc.one/docs)
**Leaf** is a [Paper](https://papermc.io/) fork designed to be customizable and high-performance, built on top of [Gale](https://github.com/Dreeam-qwq/Gale) with optimizations and fixes from other forks.
> [!WARNING]
-> Leaf is a performance-oriented fork. Make sure to take backups **before** switching to it. Everyone is welcome to contribute by optimizing or reporting issues.
+> Leaf is a performance-oriented fork. Make sure to take backups **before** switching to it. Everyone is welcome to contribute optimizations or report issues to help us improve.
## 🍃 Features
- - **Based on [Gale](https://github.com/Dreeam-qwq/Gale)** for better performance
- - **Async** pathfinding, mob spawning and entity tracker
- - **Various optimizations** blending from [other forks](https://github.com/Winds-Studio/Leaf#-credits)
- - **Fully compatible** with Bukkit, Spigot and Paper plugins
- - **Latest dependencies**, keeping all dependencies up-to-date
- - **Allows all characters in usernames**, including Chinese and other characters
- - **Fixes** some Minecraft bugs
- - **Configurable UseItem distance** for anarchy servers
- - **Mod Protocols** support
- - **More customized** relying on features of [Purpur](https://github.com/PurpurMC/Purpur)
- - Support for **Linear region file format**
- - **Maintenance friendly**, integrating with [Sentry](https://sentry.io/welcome/) of [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) to easily track all errors coming from your server in extreme detail
- - And more...
+- **Based on [Gale](https://github.com/Dreeam-qwq/Gale)** for better performance
+- **Async** pathfinding, mob spawning and entity tracker
+- **Various optimizations** blending from [other forks](https://github.com/Winds-Studio/Leaf#-credits) and our own
+- **Fully compatible** with Spigot and Paper plugins
+- **Latest dependencies**, keeping all dependencies up-to-date
+- **Allows all characters in usernames**, including Chinese and other characters
+- **Fixes** some Minecraft bugs
+- **Mod Protocols** support
+- **More customized** relying on features of [Purpur](https://github.com/PurpurMC/Purpur)
+- **Linear region file format**, to save disk space
+- **Maintenance friendly**, integrating with [Sentry](https://sentry.io/welcome/) of [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) to easily track all errors coming from your server in extreme detail
+- And more...
## 📈 bStats
[](https://bstats.org/plugin/server-implementation/Leaf)
@@ -38,12 +37,12 @@
If you love our work, feel free to donate via our [Open Collective](https://opencollective.com/Winds-Studio) or [Dreeam's AFDIAN](https://afdian.com/a/Dreeam) :)
## 📥 Download
-You can find the latest successful build in [GitHub Action](https://github.com/Winds-Studio/Leaf/actions) or [Releases](https://github.com/Winds-Studio/Leaf/releases)
+Download Leaf from our [website](https://www.leafmc.one/download) or get latest build in [GitHub Action](https://github.com/Winds-Studio/Leaf/actions)
**Please note Java >= 21 is required.**
## 📄 Documentation
-Documentation on how to use/configure Leaf: [www.leafmc.one/docs](https://www.leafmc.one/docs)
+Documentation about how to use/configure Leaf: [www.leafmc.one/docs](https://www.leafmc.one/docs)
## 📦 Building
Building a Paperclip JAR for distribution:
@@ -90,7 +89,7 @@ Paperweight files are licensed under [MIT](licenses/MIT.txt).
Patches are licensed under [MIT](licenses/MIT.txt), unless indicated differently in their header.
Binaries are licensed under [GPL-3.0](licenses/GPL-3.0.txt).
-Also see [PaperMC/Paper](https://github.com/PaperMC/Paper) and [PaperMC/Paperweight](https://github.com/PaperMC/paperweight) for the licenses of some materials used by this project.
+Also see [PaperMC/Paper](https://github.com/PaperMC/Paper) and [PaperMC/paperweight](https://github.com/PaperMC/paperweight) for the licenses of some materials used by this project.
## 📜 Credits
Thanks to these projects below. Leaf includes some patches taken from them.
@@ -129,7 +128,7 @@ cloud of swordsman | 剑客云
If you want to find a cheaper, high performance, stable, lower latency host, then cloud of swordsman is a good choice! Registers and purchases in [here](https://cloud.swordsman.com.cn/?i8ab42c).
-如果你想找一个低价高性能, 低延迟的云服务商,剑客云是个不错的选择! 你可以在[这里](https://cloud.swordsman.com.cn/?i8ab42c)注册.
+如果你想找一个低价高性能、低延迟的云服务商,剑客云是个不错的选择!你可以在 [这里](https://cloud.swordsman.com.cn/?i8ab42c) 注册。
---

diff --git a/gradle.properties b/gradle.properties
index f39575df..040eb13b 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -8,6 +8,3 @@ org.gradle.configuration-cache=true
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.vfs.watch=false
-leaf.patcher.repo-cache=enabled
-leaf.patcher.patch-cache=enabled
-leaf.patcher.fast-update=true
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index a4b76b95..1b33c55b 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 37f853b1..ff23a68d 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/gradlew b/gradlew
index f3b75f3b..23d15a93 100755
--- a/gradlew
+++ b/gradlew
@@ -114,7 +114,7 @@ case "$( uname )" in #(
NONSTOP* ) nonstop=true ;;
esac
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+CLASSPATH="\\\"\\\""
# Determine the Java command to use to start the JVM.
@@ -205,7 +205,7 @@ fi
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
# Collect all arguments for the java command:
-# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
# and any embedded shellness will be escaped.
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
# treated as '${Hostname}' itself on the command line.
@@ -213,7 +213,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
set -- \
"-Dorg.gradle.appname=$APP_BASE_NAME" \
-classpath "$CLASSPATH" \
- org.gradle.wrapper.GradleWrapperMain \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
"$@"
# Stop when "xargs" is not available.
diff --git a/gradlew.bat b/gradlew.bat
index 9d21a218..db3a6ac2 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -70,11 +70,11 @@ goto fail
:execute
@rem Setup the command line
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+set CLASSPATH=
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
:end
@rem End local scope for the variables with windows NT shell
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 124b899f..fd2d4a01 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -8,7 +8,7 @@ pluginManagement {
}
plugins {
- id("org.gradle.toolchains.foojay-resolver-convention") version "0.9.0"
+ id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0"
}
rootProject.name = "leaf"