From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Thu, 23 Nov 2023 12:08:39 -0300 Subject: [PATCH] Parallel world ticking diff --git a/src/main/java/co/aikar/timings/Timings.java b/src/main/java/co/aikar/timings/Timings.java index 9812d668ad945aba486fbf6d5bf83c4292cb5d03..c82b9188c79a0671ca9d09d7cd31e63d5a378e9b 100644 --- a/src/main/java/co/aikar/timings/Timings.java +++ b/src/main/java/co/aikar/timings/Timings.java @@ -55,6 +55,7 @@ public final class Timings { private static int historyInterval = -1; private static int historyLength = -1; private static boolean warnedAboutDeprecationOnEnable; + private static boolean warnedAboutParallelWorldTickingOnEnable; // SparklyPaper - parallel world ticking private Timings() {} @@ -145,6 +146,12 @@ public final class Timings { * @param enabled Should timings be reported */ public static void setTimingsEnabled(boolean enabled) { + // SparklyPaper - parallel world ticking + if (enabled) { + warnAboutParallelWorldTickingOnEnable(); + return; + } + // SparklyPaper end timingsEnabled = enabled; warnAboutDeprecationOnEnable(); reset(); @@ -180,6 +187,34 @@ public final class Timings { .build(); } + // SparklyPaper start - parallel world ticking + private static void warnAboutParallelWorldTickingOnEnable() { + if (!warnedAboutParallelWorldTickingOnEnable) { + Bukkit.getLogger().warning(PlainTextComponentSerializer.plainText().serialize(parallelWorldTickingMessage())); + warnedAboutParallelWorldTickingOnEnable = true; + } + } + + public static Component parallelWorldTickingMessage() { + return Component.text() + .color(TextColor.color(0xf3ef91)) + .append(Component.text("[!] The timings profiler attempted to be enabled, but was disabled because timings is not compatible with " + Bukkit.getName() + "'s Parallel World Ticking feature.")) + .append(Component.newline()) + .append( + Component.text(" We recommend installing the spark profiler as a replacement: ") + .append( + Component.text() + .content("https://spark.lucko.me/") + .clickEvent(ClickEvent.openUrl("https://spark.lucko.me/"))) + ) + .append(Component.newline()) + .append( + Component.text(" Or, if you really need timings, get a build without the Parallel World Ticking feature") + ) + .build(); + } + // SparklyPaper end + /** *

Sets whether or not the Timings should monitor at Verbose level.

* diff --git a/src/main/java/org/bukkit/command/SimpleCommandMap.java b/src/main/java/org/bukkit/command/SimpleCommandMap.java index c3a9cf65db73ed534bf20996c7f05b5eb0aaebe1..4c5673f795ce905f8cba4a1f204c9d17b7d84830 100644 --- a/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -38,7 +38,7 @@ public class SimpleCommandMap implements CommandMap { register("bukkit", new VersionCommand("version")); register("bukkit", new ReloadCommand("reload")); //register("bukkit", new PluginsCommand("plugins")); // Paper - register("bukkit", new co.aikar.timings.TimingsCommand("timings")); // Paper + // register("bukkit", new co.aikar.timings.TimingsCommand("timings")); // Paper // SparklyPaper - parallel world ticking } public void setFallbackCommands() {