From 5d14ec0c722fa580cf987d664cddf3ec35778834 Mon Sep 17 00:00:00 2001 From: O Polar <38509926+goul4rt@users.noreply.github.com> Date: Mon, 24 Feb 2025 09:40:47 -0400 Subject: [PATCH] Update README.md --- README.md | 87 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index cdab9a2..aef90a7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ -# Custom-Crops +# Custom-Crops 🌱 + ![CodeFactor Grade](https://img.shields.io/codefactor/grade/github/Xiao-MoMi/Custom-Crops) Gitbook @@ -9,49 +10,81 @@ ![bStats Players](https://img.shields.io/bstats/players/16593) ![GitHub](https://img.shields.io/github/license/Xiao-MoMi/Custom-Crops) -CustomCrops is a Paper plugin crafted to deliver an exceptional planting experience for Minecraft servers, with a strong emphasis on customization and performance. It employs Zstd compression for data serialization, ensuring high efficiency comparable to Minecraft's own serialization techniques. The plugin optimizes server performance by running its tick system across multiple threads, reverting to the main thread only when required. Additionally, CustomCrops offers a comprehensive API that enables developers to create custom block mechanism with specific interaction and tick behaviors, such as a fish trap block that periodically provides players with fish. +## 📌 Overview -## How to Build +CustomCrops is a high-performance **Paper plugin** designed to enhance the **planting experience** on Minecraft servers. It focuses on **customization** and **efficiency**, utilizing advanced techniques for optimal performance. 🌾 -#### Command Line -Install JDK 17 & 21. \ -Start terminal and change directory to the project folder.\ -Execute ".\gradlew build" and get the artifact under /target folder +### 🔥 Key Features -#### IDE -Import the project and execute gradle build action. \ -Get the artifact under /target folder +- **Zstd Compression**: Efficient data serialization comparable to Minecraft's native methods. +- **⚡ Multi-threaded Tick System**: Improves server performance by distributing tasks across multiple threads. +- **🛠️ Comprehensive API**: Enables developers to create custom block mechanisms with specific interactions and behaviors. -## How to Contribute +--- +## 🔧 Building the Project -#### Translations -Clone this project and create a new language file in the /plugin/src/main/resources/translations directory. \ -Once your changes are ready, open a pull request for review. We appreciate your works! +### 💻 Command Line -#### Areas for improvement -[1] Further improve the thread scheduler and reduce the use of ConcurrentHashMap. \ -[2] Optimize the map storage in the section as a palette. \ -[3] Use other NBT libraries (such as sparrow-nbt) to replace the current sponge flow-nbt (because this library is really a bit bad). -I used it for compatibility with AdvancedSlimePaper in the beginning. In fact, we can use the same IO stream operation to convert sparrow-nbt to flow-nbt and store it in the Slime world. \ -[4] Improve the region file format and use file headers and sectors to perform random read and write of region files. (4.0 milestone) +1. Install **JDK 17 & 21**. +2. Open a terminal and navigate to the project directory. +3. Run: + ```sh + ./gradlew build + ``` +4. The generated artifact can be found in the `/target` folder. -## Support the Developer +### 🛠️ Using an IDE -Polymart: https://polymart.org/resource/customcrops.2625/ \ -BuiltByBit: https://builtbybit.com/resources/customcrops.36363/ \ -Afdian: https://afdian.com/@xiaomomi/ +1. Import the project into your preferred IDE. +2. Execute the **Gradle build** action. +3. Locate the artifact in the **/target** folder. -## CustomCrops API +--- +## 🤝 Contributing +### 🌍 Translations + +1. Clone the repository. +2. Create a new language file in: + ``` + /plugin/src/main/resources/translations + ``` +3. Submit a **pull request** with your changes for review. We appreciate your contributions! 💖 + +### 🚀 Areas for Improvement + +- Enhance **thread scheduler efficiency** and reduce `ConcurrentHashMap` usage. +- Optimize **map storage** in sections using a **palette system**. +- Replace the current **sponge flow-nbt** library with a more efficient alternative (e.g., `sparrow-nbt`). +- Implement an improved **region file format** with file headers and sectors for **random read/write operations** (**4.0 milestone**). + +--- +## 💖 Support the Developer + +If you enjoy using **CustomCrops**, consider supporting the developer! 🥰 + +- [Polymart](https://polymart.org/resource/customcrops.2625/) +- [BuiltByBit](https://builtbybit.com/resources/customcrops.36363/) +- [Afdian](https://afdian.com/@xiaomomi/) + +--- +## 📚 CustomCrops API + +### 📌 Repository ```kotlin repositories { maven("https://repo.momirealms.net/releases/") } ``` + +### 📌 Dependency ```kotlin dependencies { compileOnly("net.momirealms:custom-crops:3.6.29") } ``` -#### Fun Facts -I misspelled mechanism as mechanic. I should have realized this earlier XD \ No newline at end of file + +--- +## 🎉 Fun Fact + +I misspelled "mechanism" as "mechanic"—I should have caught that earlier! 😆