mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-06 02:42:34 +01:00
985b5655f5
This has been in work for a bunch of time. Zoe ( duplexsystem or budgidiere, whatever ) has put a ton of work into this. We now have a bugfree build system that works flawlessly. Co-authored-by: Ivan Pekov <ivan@mrivanplays.com> Co-authored-by: Simon Gardling <titaniumtown@gmail.com> Co-authored-by: toinouH <toinouh2003@gmail.com> P.s the one who merged this is ivan and not bud.
56 lines
2.8 KiB
Diff
56 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Mykyta Komarnytskyy <nkomarn@hotmail.com>
|
|
Date: Sat, 24 Oct 2020 21:03:53 -0500
|
|
Subject: [PATCH] Smarter statistics ticking
|
|
|
|
In vanilla, statistics that count time spent for an action (i.e. time played or sneak time) are incremented every tick. This is retarded. With this patch and a configured interval of 20, the statistics are only ticked every 20th tick and are incremented by 20 ticks at a time. This means a lot less ticking with the same accurate counting.
|
|
|
|
With an interval of 20, this patch saves roughly 3ms per tick on a server w/ 80 players online.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
index d2b3db34d69269a220185d203bc1232042a9e437..c9f490e4e4e7a5a3a9ad99f864ff8fb2acc5b5b2 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
|
@@ -175,18 +175,23 @@ public abstract class EntityHuman extends EntityLiving {
|
|
this.p();
|
|
if (!this.world.isClientSide) {
|
|
this.foodData.a(this);
|
|
- this.a(StatisticList.PLAY_ONE_MINUTE);
|
|
+ // Yatopia start
|
|
+ int interval = org.yatopiamc.yatopia.server.YatopiaConfig.playerTimeStatisticsInterval;
|
|
+ if (ticksLived % interval == 0) {
|
|
+ this.a(StatisticList.PLAY_ONE_MINUTE, interval);
|
|
+ // Yatopia end
|
|
if (this.isAlive()) {
|
|
- this.a(StatisticList.TIME_SINCE_DEATH);
|
|
+ this.a(StatisticList.TIME_SINCE_DEATH, interval); // Yatopia
|
|
}
|
|
|
|
if (this.bx()) {
|
|
- this.a(StatisticList.SNEAK_TIME);
|
|
+ this.a(StatisticList.SNEAK_TIME, interval); // Yatopia
|
|
}
|
|
|
|
if (!this.isSleeping()) {
|
|
- this.a(StatisticList.TIME_SINCE_REST);
|
|
+ this.a(StatisticList.TIME_SINCE_REST, interval); // Yatopia
|
|
}
|
|
+ } // Yatopia
|
|
}
|
|
|
|
int i = 29999999;
|
|
diff --git a/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java b/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java
|
|
index 26bd1fc5b348cc16ca29f66eead2ca42bd4258a8..2e08558eef23d40b3a704250dfe12bb7f4b660f3 100644
|
|
--- a/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java
|
|
+++ b/src/main/java/org/yatopiamc/yatopia/server/YatopiaConfig.java
|
|
@@ -253,4 +253,9 @@ public class YatopiaConfig {
|
|
checkFlying = getBoolean("settings.checks.flight", checkFlying);
|
|
checkVehicleFlying = getBoolean("settings.checks.vehicle-flight", checkVehicleFlying);
|
|
}
|
|
+
|
|
+ public static int playerTimeStatisticsInterval = 1;
|
|
+ private static void intervals() {
|
|
+ playerTimeStatisticsInterval = Math.max(1, getInt("settings.intervals.player-time-statistics", 1));
|
|
+ }
|
|
}
|