Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@fd4c6f19 Break MushroomCow parent PaperMC/Paper@be8889d1 getSelected to getSelectedItem PaperMC/Paper@2db2ec9e few random compile fixes PaperMC/Paper@98fac014 format remaining spigot code and make Dolphin#treasurePos nullable PaperMC/Paper@33f3a111 More compilation issues PaperMC/Paper@1e27cd9f PlayerInventory PaperMC/Paper@b5e234d0 Unsafe block entity pos reading in ItemStack PaperMC/Paper@955ba6c3 update block data PaperMC/Paper@49117c0e update block states PaperMC/Paper@6034384b make CraftCow extends CraftAbstractCow PaperMC/Paper@e28be7d2 chore: update paperweight PaperMC/Paper@dbc5c19c Remove mavenLocal ref for initial pw snapshots PaperMC/Paper@2445c79f do a full clone in the action for now PaperMC/Paper@7633dde2 move things around PaperMC/Paper@564344fe More compiler issues PaperMC/Paper@907f1931 bump built-in datapack version and api-version PaperMC/Paper@bf417ba7 tag renames PaperMC/Paper@7f6f64f4 cat and frog variants registries are now data-driven PaperMC/Paper@3124c702 add new particles PaperMC/Paper@17ea49c2 tag changes and update some mapping PaperMC/Paper@8107eb0f Partial raid changes PaperMC/Paper@a1334d3b Missed local diff PaperMC/Paper@1a4367ed Use Holderable in more places PaperMC/Paper@f990b858 preserve update flag for block placement around API PaperMC/Paper@f1424fbf Compile fixes PaperMC/Paper@c2e18c6a fixup diffs PaperMC/Paper@960ad6e0 remove redundant flags and check place result PaperMC/Paper@9c01f0cd fix wrong event call for cactus growth PaperMC/Paper@4b3d802b fix broken liquid physics during structure placement PaperMC/Paper@28fbc7b6 fix damage modifier a bit PaperMC/Paper@c6e7ebcc re-add missed distance check PaperMC/Paper@8e4021aa add dropped local var after decompilation in AgeableMob#ageUp PaperMC/Paper@4d28058a make cactus max grow height config consistent with flower chance PaperMC/Paper@d4b5936c some fixes and simplify overrides PaperMC/Paper@57876760 Use -> uses in particle javadocs PaperMC/Paper@43505dca Start updating feature patches PaperMC/Paper@3ab0d4b6 misc changes PaperMC/Paper@b80114b2 fix broken AT PaperMC/Paper@56ed2dc6 More feature patches PaperMC/Paper@460b99e7 Compile fixes PaperMC/Paper@3bf99764 more misc changes PaperMC/Paper@c2c47249 readd wrongly dropped diff PaperMC/Paper@3459b68d fix some feature patches
Purpur
Purpur is a drop-in replacement for Paper servers designed for configurability, new fun and exciting gameplay features, and performance built on top of Paper.
Contact
Join us on Discord:
Downloads
Downloads can be obtained from the downloads page or the downloads API.
Downloads API endpoints:
- List versions of Minecraft with builds available:
https://api.purpurmc.org/v2/purpur - List builds for a version of Minecraft:
https://api.purpurmc.org/v2/purpur/<version> - Download a specific build of a specific version:
https://api.purpurmc.org/v2/purpur/<version>/<build>/download - Download the latest build for a version of Minecraft:
https://api.purpurmc.org/v2/purpur/<version>/latest/download
License
All patches are licensed under the MIT license, unless otherwise noted in the patch headers.
See PaperMC/Paper, and PaperMC/Paperweight for the license of material used by this project.
bStats
API
Javadoc
Dependency Information
Maven
<repository>
<id>purpur</id>
<url>https://repo.purpurmc.org/snapshots</url>
</repository>
<dependency>
<groupId>org.purpurmc.purpur</groupId>
<artifactId>purpur-api</artifactId>
<version>1.21.4-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Gradle
repositories {
maven("https://repo.purpurmc.org/snapshots")
}
dependencies {
compileOnly("org.purpurmc.purpur:purpur-api:1.21.4-R0.1-SNAPSHOT")
}
Yes, this also includes all API provided by Paper, Spigot, and Bukkit.
Building and setting up
Initial setup
First, clone this repository. Do not download it.
Then run the following command in the root directory:
./gradlew applyAllPatches
The project is now ready for use in your IDE.
Creating a patch
See CONTRIBUTING.md.
Compiling
Use the command ./gradlew build to build the API and server. Compiled JARs
will be placed under purpur-api/build/libs and purpur-server/build/libs.
These JARs are not used to start a server.
To compile a server-ready purpurclip jar, run ./gradlew createMojmapBundlerJar.
To install the purpur-api and purpur dependencies to your local Maven repo, run ./gradlew publishToMavenLocal. The compiled purpurclip jar will be in purpur-server/build/libs.
Special Thanks To:
YourKitYourKit, makers of the outstanding Java profiler, support open source projects of all kinds with their full-featured Java and .NET application profilers. We thank them for allowing us to use their software so we can make Purpur the best it can be. |
JetBrainsJetBrains, creators of the IntelliJ IDEA, supports Purpur with one of their Open Source Licenses. IntelliJ IDEA is the recommended IDE for working with Purpur, and most of the Purpur team uses it. |



