mirror of
https://github.com/PaperMC/Paper.git
synced 2024-09-06 03:48:05 +02:00
It's always been commonly said to 'ignore' that TPS was '19.X', that it was fine. I suspect that the inaccuracy of floating point math resulted in us losing precision over time, making it difficult to actually get back to 20, as you know the fun 0.1 + 0.1 ... 9 more times != 1 problem. BigDecimal supports working with doubles with higher precision. This change makes it so our RollingAverage class maintains all of the data using BigDecimal and using BigDecimal arithematic operations. This ensures we have extremely high precision, enabling us to actually be able print '20 TPS' when TPS is perfect.
41 lines
2.0 KiB
Diff
41 lines
2.0 KiB
Diff
From e812bdd5c6d798f90b0f361e2c3c4c14c624e69c Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Thu, 28 Apr 2016 00:57:27 -0400
|
|
Subject: [PATCH] remove null possibility for getServer singleton
|
|
|
|
to stop IDE complaining about potential NPE
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 74c84dda69..eb6ada935f 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -73,6 +73,7 @@ import co.aikar.timings.MinecraftTimings; // Paper
|
|
|
|
public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStatistics, ICommandListener, Runnable {
|
|
|
|
+ private static MinecraftServer SERVER; // Paper
|
|
public static final Logger LOGGER = LogManager.getLogger();
|
|
public static final File a = new File("usercache.json");
|
|
public Convertable convertable;
|
|
@@ -162,6 +163,8 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
|
// Spigot end
|
|
|
|
public MinecraftServer(OptionSet options, Proxy proxy, DataFixer datafixer, CommandDispatcher commanddispatcher, YggdrasilAuthenticationService yggdrasilauthenticationservice, MinecraftSessionService minecraftsessionservice, GameProfileRepository gameprofilerepository, UserCache usercache) {
|
|
+ SERVER = this; // Paper - better singleton
|
|
+ this.commandDispatcher = commanddispatcher; // CraftBukkit
|
|
this.ac = new ResourceManager(EnumResourcePackType.SERVER_DATA);
|
|
this.resourcePackRepository = new ResourcePackRepository(ResourcePackLoader::new);
|
|
this.ag = new CraftingManager();
|
|
@@ -1828,7 +1831,7 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
|
// CraftBukkit start
|
|
@Deprecated
|
|
public static MinecraftServer getServer() {
|
|
- return (Bukkit.getServer() instanceof CraftServer) ? ((CraftServer) Bukkit.getServer()).getServer() : null;
|
|
+ return SERVER;
|
|
}
|
|
// CraftBukkit end
|
|
}
|
|
--
|
|
2.19.0
|
|
|