From 9432b1963813e740949e4c424d766d9c01aab764 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Wed, 1 May 2024 18:44:17 +0200 Subject: [PATCH] Update Java version references, add note on var usages --- CONTRIBUTING.md | 14 +++++++++----- patches/server/Improve-java-version-check.patch | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f81b0fe0cc..db17fd784c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,12 +27,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 17 or later JDK (packages vary, use Google/DuckDuckGo/etc.). +- A Java 21 or later JDK (packages vary, use Google/DuckDuckGo/etc.). - [Adoptium](https://adoptium.net/) has builds for most operating systems. - - Paper requires JDK 17 to build, however, makes use of Gradle's + - Paper requires JDK 21 to build, however, makes use of Gradle's [Toolchains](https://docs.gradle.org/current/userguide/toolchains.html) feature to allow building with only JRE 11 or later installed. (Gradle will - automatically provision JDK 17 for compilation if it cannot find an existing + automatically provision JDK 21 for compilation if it cannot find an existing install). If you're on Windows, check @@ -42,11 +42,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:17.0.1_12-jdk bash +# docker run -it -v "$(pwd)":/data --rm eclipse-temurin:21.0.3_9-jdk bash Pulling image... root@abcdefg1234:/# javac -version -javac 17.0.1 +javac 21.0.3 ``` ## Understanding Patches @@ -237,6 +237,10 @@ into most IDEs and formatters by default. There are a few notes, however: There are exceptions, especially in Spigot-related files - When in doubt or the code around your change is in a clearly different style, use the same style as the surrounding code. +- `var` usage is heavily discouraged, as it makes reading patch files a lot harder +and can lead to confusion during updates due to changed return types. The only +exception to this is if a line would otherwise be way too long/filled with hard +to parse generics in a case where the base type itself is already obvious ### Imports When adding new imports to a class in a file not created by the current patch, use the fully qualified class name diff --git a/patches/server/Improve-java-version-check.patch b/patches/server/Improve-java-version-check.patch index c7264ad551..76a7f02216 100644 --- a/patches/server/Improve-java-version-check.patch +++ b/patches/server/Improve-java-version-check.patch @@ -24,7 +24,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 - System.err.println("Unsupported Java detected (" + javaVersion + "). Only up to Java 22 is supported."); + boolean isOldVersion = javaVersion < 61.0; + if (!skip && isOldVersion) { -+ System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 17. Check your Java version with the command 'java -version'. For more info see https://docs.papermc.io/misc/java-install"); ++ System.err.println("Unsupported Java detected (" + javaVersion + "). This version of Minecraft requires at least Java 21. Check your Java version with the command 'java -version'. For more info see https://docs.papermc.io/misc/java-install"); return; } String javaVersionName = System.getProperty("java.version");