From 2d36958b4510dbeac9b550391df50552b3198c4d Mon Sep 17 00:00:00 2001 From: Doc Date: Fri, 3 Apr 2026 18:51:17 -0300 Subject: [PATCH 01/13] Update README --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index be32001418e2..9d7e036c5e5a 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ How To (Plugin Developers) io.papermc.paper paper-api - 1.21.11-R0.1-SNAPSHOT + 26.1.1.build.+ provided ``` @@ -53,19 +53,19 @@ repositories { } dependencies { - compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:26.1.1.build.+") } java { - toolchain.languageVersion.set(JavaLanguageVersion.of(21)) + toolchain.languageVersion.set(JavaLanguageVersion.of(25)) } ``` How To (Compiling Jar From Source) ------ -To compile Paper, you need JDK 21 and an internet connection. +To compile Paper, you need JDK 25 and an internet connection. -Clone this repo, run `./gradlew applyPatches`, then `./gradlew createMojmapBundlerJar` from your terminal. You can find the compiled jar in the `paper-server/build/libs` directory. +Clone this repo, run `./gradlew applyPatches`, then `./gradlew createPaperclipJar` from your terminal. You can find the compiled jar in the `paper-server/build/libs` directory. To get a full list of tasks, run `./gradlew tasks`. From 275015cfcf0c1c3d202dd2c2134722ad3c221a04 Mon Sep 17 00:00:00 2001 From: Doc Date: Fri, 3 Apr 2026 19:15:17 -0300 Subject: [PATCH 02/13] Update CONTRIBUTING.md with JDK changes --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index bc99062660a8..82b151cf9076 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,12 +21,12 @@ which can be obtained in (most) package managers such as `apt` (Debian / Ubuntu; you will most likely use this for WSL), `homebrew` (macOS / Linux), and more: - `git` (package `git` everywhere); -- A Java 21 or later JDK (packages vary, use Google/DuckDuckGo/etc.). +- A Java 25 or later JDK (packages vary, use Google/DuckDuckGo/etc.). - [Adoptium](https://adoptium.net/) has builds for most operating systems. - - Paper requires JDK 21 to build, however, makes use of Gradle's + - Paper requires JDK 25 to build, however, makes use of Gradle's [Toolchains](https://docs.gradle.org/current/userguide/toolchains.html) feature to allow building with only JRE 17 or later installed. (Gradle will - automatically provision JDK 21 for compilation if it cannot find an existing + automatically provision JDK 25 for compilation if it cannot find an existing installation). If you're on Windows, check @@ -36,11 +36,11 @@ If you're compiling with Docker, you can use Adoptium's [`eclipse-temurin`](https://hub.docker.com/_/eclipse-temurin/) images like so: ```console -# docker run -it -v "$(pwd)":/data --rm eclipse-temurin:21.0.5_11-jdk bash +# docker run -it -v "$(pwd)":/data --rm eclipse-temurin:25.0.2_10-jdk bash Pulling image... root@abcdefg1234:/# javac -version -javac 21.0.5 +javac 25.0.2 ``` ## Understanding Patches From cd82bbdbd632a509f4df569f62f349caf48bcd43 Mon Sep 17 00:00:00 2001 From: Doc Date: Fri, 3 Apr 2026 19:24:46 -0300 Subject: [PATCH 03/13] Change maven version to placeholder --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 9d7e036c5e5a..d5533838f76e 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ How To (Plugin Developers) * See upcoming, pending, and recently added API [here](https://github.com/orgs/PaperMC/projects/2/views/4) * Paper API javadocs here: [papermc.io/javadocs](https://papermc.io/javadocs/) #### Repository (for paper-api) +> You can read more about adding paper as repository [here](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details. ##### Maven ```xml @@ -40,7 +41,7 @@ How To (Plugin Developers) io.papermc.paper paper-api - 26.1.1.build.+ + VERSION provided ``` From 4e1800e9a0c9bbe5d937edb3306680ebd0d03539 Mon Sep 17 00:00:00 2001 From: Doc Date: Fri, 3 Apr 2026 19:24:58 -0300 Subject: [PATCH 04/13] Add badge with latest version for 26.1 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d5533838f76e..e6080cb1757f 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,6 @@ Paper [![Paper Build Status](https://img.shields.io/github/actions/workflow/status/PaperMC/Paper/build.yml?branch=main)](https://github.com/PaperMC/Paper/actions) +[![Version](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fartifactory.papermc.io%2Fartifactory%2Funiverse%2Fio%2Fpapermc%2Fpaper%2Fpaper-api%2Fmaven-metadata.xml&strategy=highestVersion&filter=26.1*&label=version&color=%236fa8dc +)](https://papermc.io/downloads/paper) [![Discord](https://img.shields.io/discord/289587909051416579.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/papermc) [![GitHub Sponsors](https://img.shields.io/github/sponsors/papermc?label=GitHub%20Sponsors)](https://github.com/sponsors/PaperMC) [![Open Collective](https://img.shields.io/opencollective/all/papermc?label=OpenCollective%20Sponsors)](https://opencollective.com/papermc) From a7ea7bba36c5fe0fc90ed9c91eb4bddf22b69339 Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Fri, 3 Apr 2026 20:44:28 -0300 Subject: [PATCH 05/13] Improvement message for docs in repository Co-authored-by: Jason Penilla <11360596+jpenilla@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e6080cb1757f..c60d5f3c5bb0 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ How To (Plugin Developers) * See upcoming, pending, and recently added API [here](https://github.com/orgs/PaperMC/projects/2/views/4) * Paper API javadocs here: [papermc.io/javadocs](https://papermc.io/javadocs/) #### Repository (for paper-api) -> You can read more about adding paper as repository [here](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details. +> See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details, including Maven caveats. ##### Maven ```xml From b6ab64081facb24053a322c4ff80842c8c3c5e92 Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Fri, 3 Apr 2026 21:39:17 -0300 Subject: [PATCH 06/13] change toolchain min JDK version --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 82b151cf9076..caf2373ae49e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -25,7 +25,7 @@ you will most likely use this for WSL), `homebrew` (macOS / Linux), and more: - [Adoptium](https://adoptium.net/) has builds for most operating systems. - Paper requires JDK 25 to build, however, makes use of Gradle's [Toolchains](https://docs.gradle.org/current/userguide/toolchains.html) - feature to allow building with only JRE 17 or later installed. (Gradle will + feature to allow building with only JRE 21 or later installed. (Gradle will automatically provision JDK 25 for compilation if it cannot find an existing installation). From 6a2a7cdccec6d5b41a6f05ad07905808fb68ded5 Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Sat, 4 Apr 2026 09:14:53 -0300 Subject: [PATCH 07/13] Fix badge order and update version badge color --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c60d5f3c5bb0..593497f31c6d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -Paper [![Paper Build Status](https://img.shields.io/github/actions/workflow/status/PaperMC/Paper/build.yml?branch=main)](https://github.com/PaperMC/Paper/actions) -[![Version](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fartifactory.papermc.io%2Fartifactory%2Funiverse%2Fio%2Fpapermc%2Fpaper%2Fpaper-api%2Fmaven-metadata.xml&strategy=highestVersion&filter=26.1*&label=version&color=%236fa8dc +Paper [![Version](https://img.shields.io/maven-metadata/v?metadataUrl=https%3A%2F%2Fartifactory.papermc.io%2Fartifactory%2Funiverse%2Fio%2Fpapermc%2Fpaper%2Fpaper-api%2Fmaven-metadata.xml&strategy=highestVersion&filter=26.1*&label=version&color=%23344ceb )](https://papermc.io/downloads/paper) +[![Paper Build Status](https://img.shields.io/github/actions/workflow/status/PaperMC/Paper/build.yml?branch=main)](https://github.com/PaperMC/Paper/actions) [![Discord](https://img.shields.io/discord/289587909051416579.svg?label=&logo=discord&logoColor=ffffff&color=7389D8&labelColor=6A7EC2)](https://discord.gg/papermc) [![GitHub Sponsors](https://img.shields.io/github/sponsors/papermc?label=GitHub%20Sponsors)](https://github.com/sponsors/PaperMC) [![Open Collective](https://img.shields.io/opencollective/all/papermc?label=OpenCollective%20Sponsors)](https://opencollective.com/papermc) From c15e568ab9cb3aae0ac64e89b1e862880383b711 Mon Sep 17 00:00:00 2001 From: Doc Date: Sat, 4 Apr 2026 12:44:55 -0300 Subject: [PATCH 08/13] Remove obfuscation helpers documentation --- CONTRIBUTING.md | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index caf2373ae49e..f81ec2406a2d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -184,8 +184,7 @@ These steps assume the `origin` remote is your fork of this repository and `upst ## PR Policy We'll accept changes that make sense. You should be able to justify their -existence, along with any maintenance costs that come with them. Using -[obfuscation helpers](#obfuscation-helpers) aids in the maintenance costs. +existence, along with any maintenance costs that come with them. Remember that these changes will affect everyone who runs Paper, not just you and your server. @@ -382,26 +381,6 @@ index a92bf8967..d0ab87d0f 100644 ``` --> -## Obfuscation Helpers - -While rarely needed, obfuscation helpers are sometimes useful when it comes -to unmapped local variables, or poorly named method parameters. In an effort -to make future updates easier on ourselves, Paper tries to use obfuscation -helpers wherever it makes sense. The purpose of these helpers is to make the -code more readable and maintainable. These helpers should be made easy to -inline by the JVM wherever possible. - -An example of an obfuscation helper for a local variable: -```java -double d0 = entity.getX(); final double fromX = d0; // Paper - OBFHELPER -// ... -this.someMethod(fromX); // Paper -``` - -While they may not always be done in exactly the same way, the general goal is -always to improve readability and maintainability. Use your best judgment and do -what fits best in your situation. - ## Configuration files To use a configurable value in your patch, add a new field in either the From 56ba7d0828ee9da5353980641c542ee6ddf1dc1c Mon Sep 17 00:00:00 2001 From: Doc Date: Sat, 4 Apr 2026 12:46:19 -0300 Subject: [PATCH 09/13] `paper-server/src/minecraft` are just decompiled --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f81ec2406a2d..91753502fbec 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -66,7 +66,7 @@ On Windows, remove the `./` the beginning of `gradlew` commands; **Only changes made in `paper-server/src/minecraft` have to deal with the patch system.** `paper-server/src/minecraft` is not a git repositories in the traditional sense. Its -initial commits are the decompiled and deobfuscated Minecraft source files. The per-file +initial commits are the decompiled Minecraft source files. The per-file patches are applied on top of these files as a single, large commit, which is then followed by the individual feature-patch commits. From f4159975e9fc8072db879b2454ad178f405f32da Mon Sep 17 00:00:00 2001 From: Doc Date: Sat, 4 Apr 2026 12:47:55 -0300 Subject: [PATCH 10/13] Include Vanilla Files in the Annotation Documentation --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 91753502fbec..6b5b357167b2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -280,7 +280,7 @@ public class SomeVanillaClass { We are in the process of switching nullability annotation libraries, so you might need to use one or the other: -**For classes we add**: Fields, method parameters and return types that are nullable should be marked via the +**For classes, we add or modifications to Vanilla Files**: Fields, method parameters and return types that are nullable should be marked via the `@Nullable` annotation from `org.jspecify.annotations`. Whenever you create a new class, add `@NullMarked`, meaning types are assumed to be non-null by default. For less obvious placing such as on generics or arrays, see the [JSpecify docs](https://jspecify.dev/docs/user-guide/). From 7c4df5d63b0f6eae11eed427efeae1bcd847438a Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Sun, 5 Apr 2026 15:07:41 -0400 Subject: [PATCH 11/13] Update README with Gradle and Maven instructions --- README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 593497f31c6d..fa9445d16d70 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,23 @@ How To (Plugin Developers) * See upcoming, pending, and recently added API [here](https://github.com/orgs/PaperMC/projects/2/views/4) * Paper API javadocs here: [papermc.io/javadocs](https://papermc.io/javadocs/) #### Repository (for paper-api) -> See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details, including Maven caveats. +See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details, including Maven caveats. +##### Gradle +```kotlin +repositories { + maven { + url = uri("https://repo.papermc.io/repository/maven-public/") + } +} + +dependencies { + compileOnly("io.papermc.paper:paper-api:26.1.1.build.+") +} + +java { + toolchain.languageVersion.set(JavaLanguageVersion.of(25)) +} +``` ##### Maven ```xml @@ -47,22 +63,6 @@ How To (Plugin Developers) provided ``` -##### Gradle -```kotlin -repositories { - maven { - url = uri("https://repo.papermc.io/repository/maven-public/") - } -} - -dependencies { - compileOnly("io.papermc.paper:paper-api:26.1.1.build.+") -} - -java { - toolchain.languageVersion.set(JavaLanguageVersion.of(25)) -} -``` How To (Compiling Jar From Source) ------ From d45dcf8d1175b51716d3ec83b79bbddede84416a Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Sun, 5 Apr 2026 16:41:55 -0400 Subject: [PATCH 12/13] maven allow a latest 26.1.1 thanks https://canary.discord.com/channels/289587909051416579/555469074080202765/1490445691993194618 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index fa9445d16d70..9457573ce3ab 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ How To (Plugin Developers) * See upcoming, pending, and recently added API [here](https://github.com/orgs/PaperMC/projects/2/views/4) * Paper API javadocs here: [papermc.io/javadocs](https://papermc.io/javadocs/) #### Repository (for paper-api) -See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details, including Maven caveats. +See [the docs](https://docs.papermc.io/paper/dev/project-setup/#adding-paper-as-a-dependency) for more details. ##### Gradle ```kotlin repositories { @@ -59,7 +59,7 @@ java { io.papermc.paper paper-api - VERSION + [26.1.1,) provided ``` From bd4f3ee6a9576fdfaa202465c874d1541170488a Mon Sep 17 00:00:00 2001 From: Pedro <3602279+Doc94@users.noreply.github.com> Date: Sun, 5 Apr 2026 16:45:37 -0400 Subject: [PATCH 13/13] Update version range in README for paper-api maven now thanks jmp --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9457573ce3ab..819ce68b45ef 100644 --- a/README.md +++ b/README.md @@ -59,7 +59,7 @@ java { io.papermc.paper paper-api - [26.1.1,) + [26.1.1.build,) provided ```