diff --git a/Spigot-Server-Patches/0611-Add-warning-for-servers-not-running-on-Java-11.patch b/Spigot-Server-Patches/0611-Add-warning-for-servers-not-running-on-Java-11.patch new file mode 100644 index 0000000000..00a1e7303b --- /dev/null +++ b/Spigot-Server-Patches/0611-Add-warning-for-servers-not-running-on-Java-11.patch @@ -0,0 +1,81 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Kyle Wood +Date: Wed, 2 Dec 2020 21:58:45 -0800 +Subject: [PATCH] Add warning for servers not running on Java 11 + + +diff --git a/src/main/java/com/destroystokyo/paper/util/PaperJvmChecker.java b/src/main/java/com/destroystokyo/paper/util/PaperJvmChecker.java +new file mode 100644 +index 0000000000000000000000000000000000000000..023123d52fbb458e6ee2d38e42c9651a5c7be728 +--- /dev/null ++++ b/src/main/java/com/destroystokyo/paper/util/PaperJvmChecker.java +@@ -0,0 +1,56 @@ ++package com.destroystokyo.paper.util; ++ ++import org.apache.logging.log4j.LogManager; ++import org.apache.logging.log4j.Logger; ++ ++public final class PaperJvmChecker { ++ ++ private PaperJvmChecker() {} ++ ++ public static void checkJvm() { ++ final Logger logger = LogManager.getLogger(); ++ ++ final String javaVersion = System.getProperty("java.version"); ++ final int dotIndex = javaVersion.indexOf('.'); ++ ++ if (javaVersion.startsWith("1.")) { ++ // definitely old ++ PaperJvmChecker.printWarning(javaVersion, logger); ++ return; ++ } ++ ++ final int endIndex = dotIndex == -1 ? javaVersion.length() : dotIndex; ++ final String version = javaVersion.substring(0, endIndex); ++ ++ final int javaVersionNum; ++ try { ++ javaVersionNum = Integer.parseInt(version); ++ } catch (final NumberFormatException e) { ++ logger.warn("Failed to determine Java version; Could not parse {}", version, e); ++ PaperJvmChecker.printWarning(javaVersion, logger); ++ return; ++ } ++ ++ if (javaVersionNum < 11) { ++ PaperJvmChecker.printWarning(javaVersion, logger); ++ } ++ } ++ ++ private static void printWarning(final String version, final Logger logger) { ++ logger.warn("************************************************************"); ++ logger.warn("* WARNING - YOU ARE RUNNING AN OUTDATED VERSION OF JAVA."); ++ logger.warn("* PAPER WILL STOP BEING COMPATIBLE WITH THIS VERSION OF"); ++ logger.warn("* JAVA WHEN MINECRAFT 1.17 IS RELEASED."); ++ logger.warn("*"); ++ logger.warn("* Please update the version of Java you use to run Paper"); ++ logger.warn("* to at least Java 11. When Paper for Minecraft 1.17 is"); ++ logger.warn("* released support for versions of Java before 11 will"); ++ logger.warn("* be dropped."); ++ logger.warn("*"); ++ logger.warn("* Current Java version: " + version); ++ logger.warn("*"); ++ logger.warn("* Check this forum post for more information: "); ++ logger.warn("* https://papermc.io/java11"); ++ logger.warn("************************************************************"); ++ } ++} +diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java +index 0108a1a68572df562349688e93f8134cb14d6116..12d781f4ae6a46d0885972035870d5b5b62f5b8b 100644 +--- a/src/main/java/net/minecraft/server/MinecraftServer.java ++++ b/src/main/java/net/minecraft/server/MinecraftServer.java +@@ -950,6 +950,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant