From 8ba3e6e9aa53596717759278e12400e09c468623 Mon Sep 17 00:00:00 2001 From: peaches94 Date: Sun, 31 Jul 2022 13:11:51 -0500 Subject: [PATCH] feat: 1.19.1 --- gradle.properties | 7 ++--- .../0001-conf-brand-server-to-petal.patch | 8 +++--- .../0002-feat-async-path-processing.patch | 28 +++++++++++-------- .../0003-feat-multithreaded-tracker.patch | 19 +++++++------ ...educe-work-done-by-game-event-system.patch | 4 +-- .../server/0005-feat-reduce-sensor-work.patch | 10 +++---- 6 files changed, 41 insertions(+), 35 deletions(-) diff --git a/gradle.properties b/gradle.properties index b9167c0..58f3be6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,6 @@ org.gradle.caching=true org.gradle.vfs.watch=false group=host.bloom.petal -version=1.19-R0.1-SNAPSHOT -mcVersion=1.19 -packageVersion=1_19_R1 -purpurRef=2b3486efc2478cb2be0a0b3eaeedbee9154303cc +version=1.19.1-R0.1-SNAPSHOT +mcVersion=1.19.1 +purpurRef=30e10eea6bb751ae3b26e989b9d0cc174bedec6e diff --git a/patches/server/0001-conf-brand-server-to-petal.patch b/patches/server/0001-conf-brand-server-to-petal.patch index f34e77e..826d8a1 100644 --- a/patches/server/0001-conf-brand-server-to-petal.patch +++ b/patches/server/0001-conf-brand-server-to-petal.patch @@ -84,10 +84,10 @@ index fba5dbdb7bcbb55400ef18342c9b54612972a718..3f9aa4292ff45c6b6af0ddfeecb645f8 switch (distance) { case -1: diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java -index 2ece154b5e7daaa3e0b128145fc5e1d452125f72..36854f0c3be5b17b771d73c3863e45adf3267933 100644 +index d678c6e0109dabe93485fb214622a0213c790f26..ba6e40eeea7a19c616bdef8905ef7fa59bf0320a 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java -@@ -913,7 +913,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop> positions, float followRange, int distance, float rangeMultiplier) { + // readd the profiler code for sync - profiler.push("find_path"); - profiler.markForCharting(MetricCategory.PATH_FINDING); + //profiler.push("find_path"); // Purpur + //profiler.markForCharting(MetricCategory.PATH_FINDING); // Purpur + + try { + return this.processPath(this.nodeEvaluator, startNode, positions, followRange, distance, rangeMultiplier); @@ -1049,7 +1053,7 @@ index d23481453717f715124156b5d83f6448f720d049..57bac2a4a8b2e4249daf3905dfa03559 // Set set = positions.keySet(); startNode.g = 0.0F; startNode.h = this.getBestH(startNode, positions); // Paper - optimize collection -@@ -91,7 +128,7 @@ public class PathFinder { +@@ -91,7 +132,7 @@ public class PathFinder { } if (!(node.distanceTo(startNode) >= followRange)) { @@ -1058,7 +1062,7 @@ index d23481453717f715124156b5d83f6448f720d049..57bac2a4a8b2e4249daf3905dfa03559 for(int l = 0; l < k; ++l) { Node node2 = this.neighbors[l]; -@@ -123,9 +160,14 @@ public class PathFinder { +@@ -123,9 +164,14 @@ public class PathFinder { if (best == null || comparator.compare(path, best) < 0) best = path; } diff --git a/patches/server/0003-feat-multithreaded-tracker.patch b/patches/server/0003-feat-multithreaded-tracker.patch index 73e97c1..7c0332d 100644 --- a/patches/server/0003-feat-multithreaded-tracker.patch +++ b/patches/server/0003-feat-multithreaded-tracker.patch @@ -172,10 +172,10 @@ index 47b5f75d9f27cf3ab947fd1f69cbd609fb9f2749..85882eeb86d7b74db0219aa65783946d public ChunkHolder.FullChunkStatus status; diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java -index 2daef87d5c1de8e6f9a8c7c6a7753d980b05178f..345f4ddee48da851cbabd9de878642fc57a2d7b0 100644 +index 6b35d839669489a48ac063f291b5b90d6b4b710d..e0f4e2fb75efa4ca47fdadee032d28621ecdc889 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java -@@ -2082,8 +2082,26 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2079,8 +2079,27 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider entity.tracker = null; // Paper - We're no longer tracked } @@ -199,14 +199,17 @@ index 2daef87d5c1de8e6f9a8c7c6a7753d980b05178f..345f4ddee48da851cbabd9de878642fc + } + // petal end + - this.level.timings.tracker1.startTiming(); ++ this.level.timings.tracker1.startTiming(); + //this.level.timings.tracker1.startTiming(); // Purpur try { for (TrackedEntity tracker : this.entityMap.values()) { -@@ -2276,10 +2294,10 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2272,11 +2291,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider + public class TrackedEntity { - public final ServerEntity serverEntity; // Purpur -> package -> public +- final ServerEntity serverEntity; - final Entity entity; ++ public final ServerEntity serverEntity; // petal -> public + public final Entity entity; // petal -> public private final int range; SectionPos lastSectionPos; @@ -215,7 +218,7 @@ index 2daef87d5c1de8e6f9a8c7c6a7753d980b05178f..345f4ddee48da851cbabd9de878642fc public TrackedEntity(Entity entity, int i, int j, boolean flag) { this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit -@@ -2291,7 +2309,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2288,7 +2307,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // Paper start - use distance map to optimise tracker com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet lastTrackerCandidates; @@ -224,7 +227,7 @@ index 2daef87d5c1de8e6f9a8c7c6a7753d980b05178f..345f4ddee48da851cbabd9de878642fc com.destroystokyo.paper.util.misc.PooledLinkedHashSets.PooledObjectLinkedOpenHashSet oldTrackerCandidates = this.lastTrackerCandidates; this.lastTrackerCandidates = newTrackerCandidates; -@@ -2363,7 +2381,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2360,7 +2379,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void removePlayer(ServerPlayer player) { @@ -233,7 +236,7 @@ index 2daef87d5c1de8e6f9a8c7c6a7753d980b05178f..345f4ddee48da851cbabd9de878642fc if (this.seenBy.remove(player.connection)) { this.serverEntity.removePairing(player); } -@@ -2371,7 +2389,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider +@@ -2368,7 +2387,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider } public void updatePlayer(ServerPlayer player) { diff --git a/patches/server/0004-feat-reduce-work-done-by-game-event-system.patch b/patches/server/0004-feat-reduce-work-done-by-game-event-system.patch index 9966323..0ccc877 100644 --- a/patches/server/0004-feat-reduce-work-done-by-game-event-system.patch +++ b/patches/server/0004-feat-reduce-work-done-by-game-event-system.patch @@ -8,10 +8,10 @@ Subject: [PATCH] feat: reduce work done by game event system 2. euclideangameeventdispatcher is not used concurrently so we ban that usage for improved performance with allays diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java -index 0d82ca8ba9f2b11213cfe1ab01dc6ef3f2f510c9..bad88fddd25a99fdbe35285f7694fed26f943296 100644 +index c50dc34a731477c76315d8ef6b59b8539b76c7e3..56b454400d317c807a9d550a5ff6d152db7eddaa 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java -@@ -1672,6 +1672,7 @@ public class ServerLevel extends Level implements WorldGenLevel { +@@ -1673,6 +1673,7 @@ public class ServerLevel extends Level implements WorldGenLevel { if (chunk != null) { for (int j2 = k; j2 <= j1; ++j2) { flag |= chunk.getEventDispatcher(j2).walkListeners(event, emitterPos, emitter, (gameeventlistener, vec3d1) -> { diff --git a/patches/server/0005-feat-reduce-sensor-work.patch b/patches/server/0005-feat-reduce-sensor-work.patch index d63f6bb..0ec2257 100644 --- a/patches/server/0005-feat-reduce-sensor-work.patch +++ b/patches/server/0005-feat-reduce-sensor-work.patch @@ -7,7 +7,7 @@ this patch is focused around the sensors used for ai delete the line of sight cache less often and use a faster nearby comparison diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java -index 411593b1b105d62440d76b7bd1b8c74b701e3e75..aec8b3e33dd41978d3542634567a0ad6996f9647 100644 +index cd414a9275e6d9f8c704854763b18f4ee43b67b7..5e181f7a3126350310c564ca9501e97db2eef096 100644 --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java @@ -1012,20 +1012,22 @@ public abstract class LivingEntity extends Entity { @@ -38,7 +38,7 @@ index 411593b1b105d62440d76b7bd1b8c74b701e3e75..aec8b3e33dd41978d3542634567a0ad6 // Purpur start if (entity instanceof LivingEntity entityliving) { diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java -index 34db1bd524bb97fbbe0f86b088a2ac343e730f5e..1df1e912194c4d2b934859d999e6d09e802a5978 100644 +index b75243eca01cae108093368e426ea2d6b6ef1057..e8ef413abb0b771742591c513a070a41af35ec5d 100644 --- a/src/main/java/net/minecraft/world/entity/Mob.java +++ b/src/main/java/net/minecraft/world/entity/Mob.java @@ -878,10 +878,10 @@ public abstract class Mob extends LivingEntity { @@ -46,11 +46,11 @@ index 34db1bd524bb97fbbe0f86b088a2ac343e730f5e..1df1e912194c4d2b934859d999e6d09e } // Paper end + int i = this.level.getServer().getTickCount() + this.getId(); // petal - move up - this.level.getProfiler().push("sensing"); + //this.level.getProfiler().push("sensing"); // Purpur - this.sensing.tick(); + if (i % 10 == 0) this.sensing.tick(); // petal - only refresh line of sight cache every half second - this.level.getProfiler().pop(); + //this.level.getProfiler().pop(); // Purpur - int i = this.level.getServer().getTickCount() + this.getId(); if (i % 2 != 0 && this.tickCount > 1) { - this.level.getProfiler().push("targetSelector"); + //this.level.getProfiler().push("targetSelector"); // Purpur