Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@deaccd2 [ci skip] Add file reference url to help.yml (#12481) PaperMC/Paper@f86b435 Add vault change state event (#12069) PaperMC/Paper@3e3b42c Update player chat session sync (#12382) PaperMC/Paper@f8fa4f6 Add method to retrieve FishHook (#12310) PaperMC/Paper@b9d3147 Use correct placed block position for sound (#12410) PaperMC/Paper@952338b [ci skip] Add missing exception docs to Player#listPlayer (#12488) PaperMC/Paper@1db3785 [ci skip] improve javadoc for off-hand swaps through getHotbarButton (#12489) PaperMC/Paper@d1810f2 Allow Server#getDefaultGameMode before worlds are initialized (#12490) PaperMC/Paper@02d20ff Fix NPE in Server#getMap before worlds are loaded (#12492) PaperMC/Paper@9e873f5 Fix inconsistencies between offline/online spawn position getter (#11960) PaperMC/Paper@fc0c371 Fix handling of resultant crafting container from craftItemResult (#12307) PaperMC/Paper@a7a76c8 Add methods for Armadillo (#12031) PaperMC/Paper@a74400d Update adventure to 4.21.0 (#12499) PaperMC/Paper@1e93076 Fix ipv6 loopback addresses being able to get connection throttled (#12155) PaperMC/Paper@646b80c Fix unnecessary map data saves (#12296) PaperMC/Paper@e663f99 Add combat tracker API (#11853) PaperMC/Paper@cd4fe5b [ci skip] Drop non-applicable ATs (#12498) PaperMC/Paper@5acfdd6 Fix save/load NaN Entity Motion (#12269) PaperMC/Paper@2754d7c Add Throw EntityChangeBlockEvent for BrushableBlockEntity#brush (#12133) PaperMC/Paper@567f63a Parity for respawn events (#11792) PaperMC/Paper@bc3d946 Normalizes CraftEntity#toString/getHandle (#12170) PaperMC/Paper@0e9b94d Fix ItemStack amount issues with Chat Components (#12216) PaperMC/Paper@835b955 Add a method on InventoryView to get the MenuType (#12193) PaperMC/Paper@c9411bf Fix min ItemStack amount check for asHoverEvent (#12505) PaperMC/Paper@1acf3b3 Infer block entity data in brigadier blockstate argument (#12197) PaperMC/Paper@b9b3cd6 Use components instead of ChatColor in more places (#12507) PaperMC/Paper@ec42171 Add missing spaces back (#12508) PaperMC/Paper@51345a1 Correct nullable fall location type PaperMC/Paper@93246a0 Fix errors when loading raid files without a PDC PaperMC/Paper@cb3ffd0 Don't store empty PDCs on raids PaperMC/Paper@d637ae8 Fix NoSuchElementException in EntityTransformEvent for slimes (#12510) PaperMC/Paper@1074237 Pass correct draw strength for EntityShootBowEvent (#12308) PaperMC/Paper@825685f Add PlayerPickBlockEvent and PlayerPickEntityEvent (#12425) PaperMC/Paper@2bd84f6 Expand PotionMeta Api to allow getting effective potion colour and effects (#12390) PaperMC/Paper@6f1f5b6 Fix ArmorStand items for canceled EntityDeathEvent (#12288)
Sakura
This is a fork of Paper to optimise cannoning and provide essential features for cannon testing and faction servers.
There are branches from the latest version to 1.19.3. If you are looking for a 1.8.8 server jar check out the project Sakura was based on Blossom.
There are compiled binaries on the releases page
Compiling
Requirements
- Git
- JDK 21
Getting setup
Clone the repository
To get started you will need to clone the repository
git clone https://github.com/Samsuik/Sakura
Navigate into the newly cloned repository
cd Sakura
If you're looking for an older version of minecraft, you will need to switch branches.
git checkout <branch name>
The branches targeting minecraft versions before 1.21.4 have legacy/ in front of their name.
You can skip this step if you're ok with the latest version.
Applying Patches
If you're using Windows the file path limit causes the
applyPatchestask to fail. This is because of the highly nested structure of this repository and the use of long file names. There is a registry setting that can be changed to raise this limit. https://learn.microsoft.com/en-us/windows/win32/fileio/maximum-file-path-limitation
All you have to do is run the applyPatches task.
./gradlew applyPatches
If everything was successful, you should see that two directories have been created sakura-api and sakura-server these contain all the source code.
If you want to switch branches after running applyPatches, you will need to run the cleanCache task.
./gradlew cleanCache
Building
The patches must be applied before building otherwise it will fail.
The task used for building is different on older versions, make sure that you use the correct command.
After 1.20.6
./gradlew createMojmapPaperclipJar
Before 1.20.6
./gradlew createReobfPaperclipJar
You can find the built paperclip jar under build/libs.
Contributing
If you would like to contribute please read the upstream Contributing Guideline.
It contains a lot of useful information on how the project is structured and how to use the build tools.