From 9dcfb32d1113032be9d94a29772f6b58f16a64af Mon Sep 17 00:00:00 2001 From: MiniDigger | Martin Date: Sun, 17 Nov 2024 20:31:50 +0100 Subject: [PATCH] fix: move to jline-terminal-ffm on java 22+ and fall back to jni on 21, fixes #10405 ffm requires 1) native access allowed (the jdk cracks down on undocumented native access in 22) and 2) reverting the default console back to java.base, so the internal jline doesnt take over --- build.gradle.kts | 2 +- patches/server/Expose-server-build-information.patch | 4 ++-- ...Use-TerminalConsoleAppender-for-console-improvements.patch | 4 +++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 20ab99b72..209c94fcb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ import kotlin.io.path.* plugins { java `maven-publish` - id("io.papermc.paperweight.core") version "1.7.4" + id("io.papermc.paperweight.core") version "1.7.5" } allprojects { diff --git a/patches/server/Expose-server-build-information.patch b/patches/server/Expose-server-build-information.patch index f73002ae2..c60cf3519 100644 --- a/patches/server/Expose-server-build-information.patch +++ b/patches/server/Expose-server-build-information.patch @@ -679,12 +679,12 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 System.err.println("*** Server will start in 20 seconds ***"); Thread.sleep(TimeUnit.SECONDS.toMillis(20)); } - } +@@ -0,0 +0,0 @@ public class Main { System.setProperty("library.jansi.version", "Paper"); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows + System.setProperty("jdk.console", "java.base"); // Paper - revert default console provider back to java.base so we can have our own jline - System.out.println("Loading libraries, please wait..."); - net.minecraft.server.Main.main(options); -+ + //System.out.println("Loading libraries, please wait..."); + //net.minecraft.server.Main.main(options); + io.papermc.paper.PaperBootstrap.boot(options); diff --git a/patches/server/Use-TerminalConsoleAppender-for-console-improvements.patch b/patches/server/Use-TerminalConsoleAppender-for-console-improvements.patch index 72f7e7bef..8a0cb20a7 100644 --- a/patches/server/Use-TerminalConsoleAppender-for-console-improvements.patch +++ b/patches/server/Use-TerminalConsoleAppender-for-console-improvements.patch @@ -47,7 +47,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 implementation(project(":paper-api")) - implementation("jline:jline:2.12.1") + // Paper start -+ implementation("org.jline:jline-terminal-jansi:3.21.0") ++ implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+ ++ implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21 + implementation("net.minecrell:terminalconsoleappender:1.3.0") + implementation("net.kyori:adventure-text-serializer-ansi:4.17.0") // Keep in sync with adventureVersion from Paper-API build file + /* @@ -472,6 +473,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 } + System.setProperty("library.jansi.version", "Paper"); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows ++ System.setProperty("jdk.console", "java.base"); // Paper - revert default console provider back to java.base so we can have our own jline System.out.println("Loading libraries, please wait..."); net.minecraft.server.Main.main(options); } catch (Throwable t) {