diff --git a/Paper b/Paper index 8522e7b27..d78cbb855 160000 --- a/Paper +++ b/Paper @@ -1 +1 @@ -Subproject commit 8522e7b274a5e2e0cb063cbfe4c80f3d8f4a06c2 +Subproject commit d78cbb85531bd905ffc37691ff31d1f399fd9dfb diff --git a/current-paper b/current-paper index 96aceb486..0a4c73063 100644 --- a/current-paper +++ b/current-paper @@ -1 +1 @@ -1.16.1--60c274b0bdfbddf76123182f724083092e5b1fdc +1.16.1--9df7694b152e9bdeb20c3f122f82f06d23ddc2dc diff --git a/patches/server/0096-PaperPR-Remove-some-streams-from-structures.patch b/patches/server/0096-PaperPR-Remove-some-streams-from-structures.patch deleted file mode 100644 index 3f11d3e06..000000000 --- a/patches/server/0096-PaperPR-Remove-some-streams-from-structures.patch +++ /dev/null @@ -1,121 +0,0 @@ -From ae05c0006b43c2b1663a8f3cd1caf54fa23d2b4c Mon Sep 17 00:00:00 2001 -From: JRoy -Date: Mon, 29 Jun 2020 17:03:06 -0400 -Subject: [PATCH] PaperPR - Remove some streams from structures - -This showed up a lot in the spark profiler, should have a low-medium performance improvement. -Fix compile ---- - .../java/net/minecraft/server/BiomeBase.java | 8 ++-- - .../server/ChunkGeneratorAbstract.java | 5 +-- - .../minecraft/server/StructureManager.java | 38 +++++++++++++++---- - 3 files changed, 37 insertions(+), 14 deletions(-) - -diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java -index 30aeb45d6..db198811d 100644 ---- a/src/main/java/net/minecraft/server/BiomeBase.java -+++ b/src/main/java/net/minecraft/server/BiomeBase.java -@@ -339,9 +339,11 @@ public class BiomeBase { - int j1 = l << 4; - - try { -- structuremanager.a(SectionPosition.a(blockposition), structuregenerator).forEach((structurestart) -> { -- structurestart.a(generatoraccessseed, structuremanager, chunkgenerator, seededrandom, new StructureBoundingBox(i1, j1, i1 + 15, j1 + 15), new ChunkCoordIntPair(k, l)); -- }); -+ // Paper start - remove structure streams -+ for (StructureStart structureStart : structuremanager.getFeatureStarts(SectionPosition.a(blockposition), structuregenerator)) { -+ structureStart.a(generatoraccessseed, structuremanager, chunkgenerator, seededrandom, new StructureBoundingBox(i1, j1, i1 + 15, j1 + 15), new ChunkCoordIntPair(k, l)); -+ } -+ // Paper end - } catch (Exception exception) { - CrashReport crashreport = CrashReport.a(exception, "Feature placement"); - -diff --git a/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java b/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java -index 733c6244e..04f70e29b 100644 ---- a/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java -+++ b/src/main/java/net/minecraft/server/ChunkGeneratorAbstract.java -@@ -417,7 +417,7 @@ public final class ChunkGeneratorAbstract extends ChunkGenerator { - while (iterator.hasNext()) { - StructureGenerator structuregenerator = (StructureGenerator) iterator.next(); - -- structuremanager.a(SectionPosition.a(chunkcoordintpair, 0), structuregenerator).forEach((structurestart) -> { -+ for (StructureStart structurestart : structuremanager.getFeatureStarts(SectionPosition.a(chunkcoordintpair, 0), structuregenerator)) { // Paper - remove structure streams - Iterator iterator1 = structurestart.d().iterator(); - - while (iterator1.hasNext()) { -@@ -448,8 +448,7 @@ public final class ChunkGeneratorAbstract extends ChunkGenerator { - } - } - } -- -- }); -+ } // Paper - remove structure streams - } - - double[][][] adouble = new double[2][this.p + 1][this.o + 1]; -diff --git a/src/main/java/net/minecraft/server/StructureManager.java b/src/main/java/net/minecraft/server/StructureManager.java -index c434427ce..6c7804ac0 100644 ---- a/src/main/java/net/minecraft/server/StructureManager.java -+++ b/src/main/java/net/minecraft/server/StructureManager.java -@@ -6,7 +6,7 @@ import javax.annotation.Nullable; - - public class StructureManager { - -- private final GeneratorAccess a; -+ private final GeneratorAccess a; public GeneratorAccess getLevel() { return a; } // Paper - OBFHELPER - private final GeneratorSettings b; - - public StructureManager(GeneratorAccess generatoraccess, GeneratorSettings generatorsettings) { -@@ -32,6 +32,20 @@ public class StructureManager { - }); - } - -+ // Paper start - remove structure streams -+ public java.util.List> getFeatureStarts(SectionPosition sectionPosition, StructureGenerator structureGenerator) { -+ java.util.List> list = new it.unimi.dsi.fastutil.objects.ObjectArrayList<>(); -+ for (Long curLong: getLevel().getChunkAt(sectionPosition.a(), sectionPosition.c(), ChunkStatus.STRUCTURE_REFERENCES).b(structureGenerator)) { -+ SectionPosition sectionPosition1 = SectionPosition.a(new ChunkCoordIntPair(curLong), 0); -+ StructureStart structurestart = a(sectionPosition1, structureGenerator, getLevel().getChunkAt(sectionPosition1.a(), sectionPosition1.c(), ChunkStatus.STRUCTURE_STARTS)); -+ if (structurestart != null && structurestart.e()) { -+ list.add(structurestart); -+ } -+ } -+ return list; -+ } -+ // Paper end -+ - @Nullable - public StructureStart a(SectionPosition sectionposition, StructureGenerator structuregenerator, IStructureAccess istructureaccess) { - return istructureaccess.a(structuregenerator); -@@ -50,13 +64,21 @@ public class StructureManager { - } - - public StructureStart a(BlockPosition blockposition, boolean flag, StructureGenerator structuregenerator) { -- return (StructureStart) DataFixUtils.orElse(this.a(SectionPosition.a(blockposition), structuregenerator).filter((structurestart) -> { -- return structurestart.c().b((BaseBlockPosition) blockposition); -- }).filter((structurestart) -> { -- return !flag || structurestart.d().stream().anyMatch((structurepiece) -> { -- return structurepiece.g().b((BaseBlockPosition) blockposition); -- }); -- }).findFirst(), StructureStart.a); -+ // Paper start - remove structure streams -+ for (StructureStart structurestart : getFeatureStarts(SectionPosition.a(blockposition), structuregenerator)) { -+ if (structurestart.c().b(blockposition)) { -+ if (!flag) { -+ return structurestart; -+ } -+ for (StructurePiece structurepiece : structurestart.d()) { -+ if (structurepiece.g().b(blockposition)) { -+ return structurestart; -+ } -+ } -+ } -+ } -+ return StructureStart.a; -+ // Paper end - } - - // Spigot start --- -2.26.2 -