mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-19 17:37:42 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: cb15cfa4 Improve Async Login so pending connections dont get exposed f275e9cb Optimize Hoppers - Major Boost - Got2GoFast! 0106485c Improvements to watchdog changes 65934b1f Fix build for last commit. 5am commits are great 3f436029 Don't process watchdog until server has fully started and ticked. 938bd972 Don't fire BlockFade on worldgen threads - Fixes #3208 509a828e Fix loading spawn chunks when async chunks is off 8a91bfd2 Improvements to async login bf698865 Revert "Re-track players that dismount from other players" 82b98418 Fix some issues with async login as well another source of sync loads aa241d2b Allow multiple callbacks to schedule for Callback Executor a2064a41 Add PlayerAttackEntityCooldownResetEvent This event is called when processing a player's attack on an entity right before their attack strength cd is reset, there are no existing events that fire within this period of time so it was impossible to capture the players attack strength via API prior to this commit. f48d4299 Allow sleeping players to float eeb2f67d Fix Bed respawn deviating too far from vanilla (#3195) 68a7b9fe Move player to spawn point if spawn in unloaded world
176 lines
7.3 KiB
Diff
176 lines
7.3 KiB
Diff
From d5f1d879bfcd359045ee89a6c3da3148dbaee4f4 Mon Sep 17 00:00:00 2001
|
|
From: tr7zw <tr7zw@live.de>
|
|
Date: Thu, 5 Mar 2020 23:08:01 +0100
|
|
Subject: [PATCH] YAPFA - Disable mojang profiler
|
|
|
|
---
|
|
.../net/minecraft/server/CommandDebug.java | 5 ++
|
|
.../net/minecraft/server/MinecraftServer.java | 5 +-
|
|
.../net/pl3x/purpur/GameProfilerNoop.java | 68 +++++++++++++++++++
|
|
.../java/org/bukkit/craftbukkit/Main.java | 2 +
|
|
src/main/resources/purpur.lang | 1 +
|
|
5 files changed, 80 insertions(+), 1 deletion(-)
|
|
create mode 100644 src/main/java/net/pl3x/purpur/GameProfilerNoop.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/CommandDebug.java b/src/main/java/net/minecraft/server/CommandDebug.java
|
|
index f0d72ea3..e38a6840 100644
|
|
--- a/src/main/java/net/minecraft/server/CommandDebug.java
|
|
+++ b/src/main/java/net/minecraft/server/CommandDebug.java
|
|
@@ -22,6 +22,7 @@ public class CommandDebug {
|
|
private static final Logger LOGGER = LogManager.getLogger();
|
|
private static final SimpleCommandExceptionType b = new SimpleCommandExceptionType(new ChatMessage("commands.debug.notRunning", new Object[0]));
|
|
private static final SimpleCommandExceptionType c = new SimpleCommandExceptionType(new ChatMessage("commands.debug.alreadyRunning", new Object[0]));
|
|
+ private static final SimpleCommandExceptionType disabled = new SimpleCommandExceptionType(new ChatMessage("commands.purpur.debug.disabled")); // Purpur
|
|
@Nullable
|
|
private static final FileSystemProvider d = (FileSystemProvider) FileSystemProvider.installedProviders().stream().filter((filesystemprovider) -> {
|
|
return filesystemprovider.getScheme().equalsIgnoreCase("jar");
|
|
@@ -43,6 +44,8 @@ public class CommandDebug {
|
|
MinecraftServer minecraftserver = commandlistenerwrapper.getServer();
|
|
GameProfiler gameprofiler = minecraftserver.getMethodProfiler();
|
|
|
|
+ if (gameprofiler instanceof net.pl3x.purpur.GameProfilerNoop) throw CommandDebug.disabled.create(); // Purpur
|
|
+
|
|
if (gameprofiler.d().a()) {
|
|
throw CommandDebug.c.create();
|
|
} else {
|
|
@@ -56,6 +59,8 @@ public class CommandDebug {
|
|
MinecraftServer minecraftserver = commandlistenerwrapper.getServer();
|
|
GameProfiler gameprofiler = minecraftserver.getMethodProfiler();
|
|
|
|
+ if (gameprofiler instanceof net.pl3x.purpur.GameProfilerNoop) throw CommandDebug.disabled.create(); // Purpur
|
|
+
|
|
if (!gameprofiler.d().a()) {
|
|
throw CommandDebug.b.create();
|
|
} else {
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index b27d1389..e61740eb 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -80,7 +80,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
private final MojangStatisticsGenerator snooper = new MojangStatisticsGenerator("server", this, SystemUtils.getMonotonicMillis());
|
|
public File universe;
|
|
private final List<Runnable> tickables = Lists.newArrayList();
|
|
- private final GameProfiler methodProfiler = new GameProfiler(this::ak);
|
|
+ protected GameProfiler methodProfiler = new net.pl3x.purpur.GameProfilerNoop(this::getTickCount); // Purpur
|
|
private ServerConnection serverConnection;
|
|
public final WorldLoadListenerFactory worldLoadListenerFactory;
|
|
private final ServerPing serverPing = new ServerPing();
|
|
@@ -1433,6 +1433,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
String s1 = (String) Optional.ofNullable(optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
|
|
final DedicatedServer dedicatedserver = new DedicatedServer(optionset, dedicatedserversettings, DataConverterRegistry.a(), yggdrasilauthenticationservice, minecraftsessionservice, gameprofilerepository, usercache, WorldLoadListenerLogger::new, s1);
|
|
|
|
+ if (optionset.has("enableProfiler") || optionset.nonOptionArguments().contains("enableProfiler")) dedicatedserver.methodProfiler = new GameProfiler(dedicatedserver::getTickCount); // Purpur
|
|
+
|
|
/*
|
|
dedicatedserver.i((String) optionset.valueOf(optionspec7));
|
|
dedicatedserver.setPort((Integer) optionset.valueOf(optionspec10));
|
|
@@ -1858,6 +1860,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
|
|
public abstract boolean a(EnumGamemode enumgamemode, boolean flag, int i);
|
|
|
|
+ public int getTickCount() { return ak(); } // Purpur - OBFHELPER
|
|
public int ak() {
|
|
return this.ticks;
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/GameProfilerNoop.java b/src/main/java/net/pl3x/purpur/GameProfilerNoop.java
|
|
new file mode 100644
|
|
index 00000000..b32a5418
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/pl3x/purpur/GameProfilerNoop.java
|
|
@@ -0,0 +1,68 @@
|
|
+package net.pl3x.purpur;
|
|
+
|
|
+import net.minecraft.server.GameProfiler;
|
|
+import net.minecraft.server.MethodProfilerResults;
|
|
+import net.minecraft.server.MethodProfilerResultsEmpty;
|
|
+
|
|
+import java.util.function.IntSupplier;
|
|
+import java.util.function.Supplier;
|
|
+
|
|
+public class GameProfilerNoop extends GameProfiler {
|
|
+ private final EmptyProfiler profiler = new EmptyProfiler();
|
|
+
|
|
+ public GameProfilerNoop(IntSupplier tickCount) {
|
|
+ super(tickCount);
|
|
+ }
|
|
+
|
|
+ public GameProfiler.a d() {
|
|
+ return this.profiler;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void a() {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void b() {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void enter(String s) {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void a(Supplier<String> supplier) {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void exit() {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void exitEnter(String s) {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void c(String s) {
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void c(Supplier<String> supplier) {
|
|
+ }
|
|
+
|
|
+ static class EmptyProfiler implements GameProfiler.a {
|
|
+ @Override
|
|
+ public boolean a() { // isEnabled
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public MethodProfilerResults b() { // disable
|
|
+ return MethodProfilerResultsEmpty.a; // empty
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public void d() { // enable
|
|
+ }
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
index 7b7e1475..1136a0a2 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -144,6 +144,8 @@ public class Main {
|
|
.ofType(File.class)
|
|
.defaultsTo(new File("purpur.yml"))
|
|
.describedAs("Yml file");
|
|
+
|
|
+ acceptsAll(asList("enableProfiler"), "Enables the vanilla profiler");
|
|
// Purpur end
|
|
|
|
// Paper start
|
|
diff --git a/src/main/resources/purpur.lang b/src/main/resources/purpur.lang
|
|
index e81beea7..5c3536b2 100644
|
|
--- a/src/main/resources/purpur.lang
|
|
+++ b/src/main/resources/purpur.lang
|
|
@@ -1,5 +1,6 @@
|
|
{
|
|
"cannot.ride.mob": "You cannot mount that mob",
|
|
+ "commands.purpur.debug.disabled": "The debug profiler is disabled",
|
|
"commands.purpur.ping": "§a%s's ping is %sms",
|
|
"idle.timeout.broadcast.away": "§e§o%s is now AFK",
|
|
"idle.timeout.broadcast.back": "§e§o%s is no longer AFK"
|
|
--
|
|
2.24.0
|
|
|