AI prompts
base on A Paper fork aim to find balance between performance, vanilla and stability <img src="public/image/leaf_banner.png" alt="Leaf">
<div align="center">
[](https://www.leafmc.one/download)⠀
[](https://github.com/Winds-Studio/Leaf/actions)⠀
[](https://discord.gg/gfgAwdSEuM)
[](https://www.leafmc.one/docs)
**Leaf** is a [Paper](https://papermc.io/) fork designed to be customizable and high-performance.
</div>
> [!WARNING]
> 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.
**English** | [中文](public/readme/README_CN.md)
## 🍃 Features
- **Based on [Paper](https://papermc.io/)** for generic performance and flexible API
- **Async** pathfinding, mob spawning and entity tracker
- **Various optimizations** blending from [other forks](#-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)
## 📫 Contact
- Discord: [`https://discord.com/invite/gfgAwdSEuM`](https://discord.com/invite/gfgAwdSEuM)
- QQ Group: `619278377`
## 📫 Donation
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
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 about how to use/configure Leaf: [www.leafmc.one/docs](https://www.leafmc.one/docs)
## 📦 Building
Building a Paperclip JAR for distribution:
```bash
./gradlew applyAllPatches && ./gradlew createMojmapPaperclipJar
```
## 🧪 API
### Maven
```xml
<repository>
<id>leafmc</id>
<url>https://maven.nostal.ink/repository/maven-snapshots/</url>
</repository>
```
```xml
<dependency>
<groupId>cn.dreeam.leaf</groupId>
<artifactId>leaf-api</artifactId>
<version>1.21.6-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
```
### Gradle
```kotlin
repositories {
maven {
url = uri("https://maven.nostal.ink/repository/maven-snapshots/")
}
}
dependencies {
compileOnly("cn.dreeam.leaf:leaf-api:1.21.6-R0.1-SNAPSHOT")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}
```
## ⚖️ License
Leaf is licensed under multiple open source licenses depending on upstream projects and other materials,
see [LICENSE.md](LICENSE.md) for full license information.
## 📜 Credits
Thanks to these projects below. Leaf includes some patches taken from them.<br>
If these excellent projects hadn't existed, Leaf wouldn't have become great.
- [Gale](https://github.com/Dreeam-qwq/Gale) ([Original Repo](https://github.com/GaleMC/Gale))
- [Pufferfish](https://github.com/pufferfish-gg/Pufferfish)
- [Purpur](https://github.com/PurpurMC/Purpur)
- <details>
<summary>🍴 Expand to see forks that Leaf takes patches from.</summary>
<p>
• <a href="https://github.com/KeYiMC/KeYi">KeYi</a> (R.I.P.)
<a href="https://github.com/MikuMC/KeYiBackup">(Backup)</a><br>
• <a href="https://github.com/etil2jz/Mirai">Mirai</a><br>
• <a href="https://github.com/Bloom-host/Petal">Petal</a><br>
• <a href="https://github.com/fxmorin/carpet-fixes">Carpet Fixes</a><br>
• <a href="https://github.com/Akarin-project/Akarin">Akarin</a><br>
• <a href="https://github.com/Cryptite/Slice">Slice</a><br>
• <a href="https://github.com/ProjectEdenGG/Parchment">Parchment</a><br>
• <a href="https://github.com/LeavesMC/Leaves">Leaves</a><br>
• <a href="https://github.com/KaiijuMC/Kaiiju">Kaiiju</a><br>
• <a href="https://github.com/PlazmaMC/PlazmaBukkit">Plazma</a><br>
• <a href="https://github.com/SparklyPower/SparklyPaper">SparklyPaper</a><br>
• <a href="https://github.com/HaHaWTH/Polpot">Polpot</a><br>
• <a href="https://github.com/plasmoapp/matter">Matter</a><br>
• <a href="https://github.com/LuminolMC/Luminol">Luminol</a><br>
• <a href="https://github.com/Gensokyo-Reimagined/Nitori">Nitori</a><br>
• <a href="https://github.com/Tuinity/Moonrise">Moonrise</a> (during 1.21.1)<br>
• <a href="https://github.com/Samsuik/Sakura">Sakura</a><br>
</p>
</details>
## 🔥 Special Thanks
[](https://cloud.swordsman.com.cn/?i8ab42c) \
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://www.rainyun.com/NzE2NTc1_) \
RainYun | 雨云
Global multi-line routing with cloud storage. Refund available within 7 days. Reliable uptime and expert support. RainYun — stable, cost-effective, and ready for fast cloud deployment. Visit [RainYun]([雨云](https://www.rainyun.com/NzE2NTc1_))
国际多线路选择,配套云存储 — 购买服务后七天内不满意可以申请退订,强大的技术支持团队和高在线率客服。雨云云服务器,用稳定和性价比,助力您快速上云。点击前往 [雨云](https://www.rainyun.com/NzE2NTc1_)。
---
 \
YourKit supports open source projects with innovative and intelligent tools
for monitoring and profiling Java and .NET applications.
YourKit is the creator of [YourKit Java Profiler](https://www.yourkit.com/java/profiler/),
[YourKit .NET Profiler](https://www.yourkit.com/dotnet-profiler/),
and [YourKit YouMonitor](https://www.yourkit.com/youmonitor/).
", Assign "at most 3 tags" to the expected json: {"id":"14102","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"