mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-20 18:07:43 +01:00
Upstream has released updates that appears to apply and compile correctly Paper Changes: cc477e6a Force Plugins that use delayed tasks for init back in their place 597263fd Don't skip full player connection tick when dead e2c23475 Revert loaded entity list (#3304) fa87db6b Move another NetworkManager util into the inner class (#3303) 841c7d18 Make loaded entity list logic more consistent (#3301) 36f34f01 Updated Upstream (Bukkit/CraftBukkit) 5ca5f131 Rebuild all patches using the new rebuild pattern 1ccff6fa Add villager reputation API 5c0bfffa Speed up rebuilding patches and reduce diff f37381ea Optimize Network Manager to not need synchronization 8f9df2ed Anti Xray cleanup 878c66f1 No-Tick view distance implementation - Closes #3196 b87743c1 Stop copy-on-write operations for updating light data 97a9c972 Optimize isOutsideRange to use distance maps b4e629a2 Use distance map to optimise entity tracker / Misc Utils d80d1517 Optimize Entity Ticking to Loaded Chunks only 31d7686d Add item slot helper methods for various inventories (#3221) 75e1e3b3 Mob Goal API c7bc393a Revert "Don't flush packet queue off main thread" 1abd2bd2 Don't flush packet queue off main thread a4ed58a9 Clean up Direct Memory Region Files Fix for different Java versions 55e35019 Set cap on JDK per-thread native byte buffer cache b5101f4f Cleanup Region Files Direct Memory on close 81e655d7 Optimize Voxel Shape Merging ed9fc11f Sync position on teleportation 9c326fce Nanothing to see here 3e9fc24b Attempt to fix FastLogin maybe
176 lines
7.3 KiB
Diff
176 lines
7.3 KiB
Diff
From e4e02cb7f8becda34ad53bfcf03a4ce98613a84a 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 f0d72ea39..e38a68406 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 23f2da8a8..a1905366f 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();
|
|
@@ -1445,6 +1445,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));
|
|
@@ -1870,6 +1872,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 000000000..b32a5418f
|
|
--- /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 717c2759f..2b34eb03b 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -145,6 +145,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 e81beea7f..5c3536b26 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
|
|
|