Go to file
BillyGalbreath 47dc2e92f5
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly

Paper Changes:
PaperMC/Paper@55a16d8 Fix Varint21FrameDecoder cached length buf usage
PaperMC/Paper@e6e37ba Add api to resolve components (#7648)
PaperMC/Paper@7168438 [ci skip] Rework workflows to support optional paperclip build (#8583)
PaperMC/Paper@da230d5 More vanilla friendly methods to update trades (#8478)
PaperMC/Paper@8aff07a Add /paper dumplisteners command (#8507)
PaperMC/Paper@b8919a7 pr command action fixes (#8591)
PaperMC/Paper@185fa48 Fix chest relooting mechanics (#8580)
PaperMC/Paper@b4beac0 Fixes potential issues arising from optimizing getPlayerByUUID (#8585)
PaperMC/Paper@f637b1a Fix async entity add due to fungus trees (#7626)
PaperMC/Paper@414ea80 ItemStack damage API (#7801)
PaperMC/Paper@d98c370 Add displayName methods for advancements (#8584)
PaperMC/Paper@44bb599 Add Tick TemporalUnit (#5445)
PaperMC/Paper@9f7eef8 Friction API (#6611)
PaperMC/Paper@4048d3e Allow using degrees for ArmorStand rotations (#7847)
PaperMC/Paper@f59c802 Schoolable Fish API (#7089)
PaperMC/Paper@21b964a Added ability to control player's insomnia and phantoms spawning (#6500)
PaperMC/Paper@f1583fc Add `/paper dumplisteners tofile` and increase detail of command output (#8592)
2022-11-26 18:48:36 -06:00
.github [ci-skip] only build on main branch 2022-11-05 01:22:04 -04:00
build-data more progress 2021-06-21 10:13:12 -05:00
gradle/wrapper Updated Upstream (Paper) 2022-10-31 21:40:00 -05:00
patches Updated Upstream (Paper) 2022-11-26 18:48:36 -06:00
scripts Updated Upstream (Paper) 2022-06-11 16:47:36 -05:00
.gitignore progress 2021-06-15 16:25:36 -05:00
build.gradle.kts Updated Upstream (Paper) 2022-10-31 21:40:00 -05:00
CONTRIBUTING.md [ci-skip] fix spelling mistake in CONTRIBUTING.md 2022-10-22 10:29:56 -07:00
gradle.properties Updated Upstream (Paper) 2022-11-26 18:48:36 -06:00
gradlew Updated Upstream (Paper) 2022-10-31 21:40:00 -05:00
gradlew.bat Updated Upstream (Paper) 2022-10-31 21:40:00 -05:00
LICENSE [ci-skip] update license 2022-10-15 01:43:11 -05:00
README.md [ci-skip] Clarification for compiling runnable jars 2022-10-21 19:45:05 -04:00
settings.gradle.kts some build system stuff 2021-11-29 18:04:05 -05:00

Purpur

Purpur

MIT License Build Status CodeFactor Grade Join us on Discord

Stargazers Forks Watchers

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:

Join us on Discord

Downloads

Downloads can be obtained from the downloads page or the downloads API.

Build Status

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.

MIT License

See PaperMC/Paper, and PaperMC/Paperweight for the license of material used by this project.

bStats

bStats Graph Data

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.19.2-R0.1-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>

Gradle

repositories {
    maven("https://repo.purpurmc.org/snapshots")
}
dependencies {
    compileOnly("org.purpurmc.purpur:purpur-api:1.19.2-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 applyPatches

The project is now ready for use in your IDE.

Creating a patch

Patches are effectively just commits in either Purpur-API or Purpur-Server. To create one, just add a commit to either repo and run ./gradlew rebuildPatches, and a patch will be placed in the patches folder. Modifying commits will also modify its corresponding patch file.

See CONTRIBUTING.md for more detailed information.

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 createReobfPaperclipJar. To install the purpur-api and purpur dependencies to your local Maven repo, run ./gradlew publishToMavenLocal. The compiled purpurclip jar will be in build/libs/ not Purpur-Server/build/libs.

Special Thanks To:

YourKit

YourKit-Logo

YourKit, 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.

JetBrains

JetBrains Logo

JetBrains, 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.

Our Contributors

Contributors

Our Sponsors

GitHub Sponsors

Our Backers

Sponsors