mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-02-23 07:41:42 +01:00
Ensure Chunk.getEntitySlices is not used in code
Use Chunk.getAsSlices instead to save some cpu time. getEntitySlices needs to be kept like that to ensure some plugins working properly, otherwise we'd have server owners crying
This commit is contained in:
parent
ab272cc991
commit
22da8648e3
@ -848,6 +848,24 @@ index 018972007c7c36f96102ff22423dc7c45369eaa0..450d5fabba6cbcc3443f049b2e980b31
|
||||
|
||||
@Override
|
||||
public NBTTagCompound i(BlockPosition blockposition) {
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 1bc8b11d999e9af16a44fe1cb62f5785afa82462..30d4589c9cdad11809fc09cb51235d6da8e03195 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -503,8 +503,11 @@ public class ChunkRegionLoader {
|
||||
|
||||
chunk.d(false);
|
||||
|
||||
- for (int j = 0; j < chunk.getEntitySlices().length; ++j) {
|
||||
- Iterator iterator1 = chunk.getEntitySlices()[j].iterator();
|
||||
+ // Yatopia start
|
||||
+ EntitySlice<Entity>[] entitySlices = chunk.getAsSlices();
|
||||
+ for (int j = 0; j < entitySlices.length; ++j) {
|
||||
+ Iterator iterator1 = entitySlices[j].iterator();
|
||||
+ // Yatopia end
|
||||
|
||||
while (iterator1.hasNext()) {
|
||||
Entity entity = (Entity) iterator1.next();
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index e0381ed6945f734f8802d07b8cbd6b27852db449..220d5273543ea0b143cf9c894c89cabea25c29d6 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
@ -1029,7 +1047,7 @@ index 882b82d8952d34f6e3c639404d1a1521dedf1bb0..ccf1416000354b78ccef78b072062ce0
|
||||
|
||||
default EntityHuman findNearbyPlayer(Entity entity, double d0, @Nullable Predicate<Entity> predicate) { return this.findNearbyPlayer(entity.locX(), entity.locY(), entity.locZ(), d0, predicate); } // Paper
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index 1f7a8694f69345288c53df0f3a1845f2721f6c7b..2c5c224e90f85d0c5a99daf4fcf5a49d5abcc299 100644
|
||||
index 1f7a8694f69345288c53df0f3a1845f2721f6c7b..841dd0cbd771d878d53292adbd590a1ecffc367e 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
@@ -1334,11 +1334,11 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@ -1046,6 +1064,15 @@ index 1f7a8694f69345288c53df0f3a1845f2721f6c7b..2c5c224e90f85d0c5a99daf4fcf5a49d
|
||||
Iterator iterator = entityslice.iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1619,7 +1619,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
|
||||
// CraftBukkit - decompile error
|
||||
csvwriter.a(chunkcoordintpair.x, chunkcoordintpair.z, playerchunk.getTicketLevel(), optional.isPresent(), optional.map(IChunkAccess::getChunkStatus).orElse(null), optional1.map(Chunk::getState).orElse(null), a(playerchunk.c()), a(playerchunk.a()), a(playerchunk.b()), this.chunkDistanceManager.c(entry.getLongKey()), !this.isOutsideOfRange(chunkcoordintpair), optional1.map((chunk) -> {
|
||||
- return Stream.of(chunk.getEntitySlices()).mapToInt(List::size).sum(); // Spigot
|
||||
+ return Stream.of(chunk.getAsSlices()).mapToInt(EntitySlice::size).sum(); // Spigot // Yatopia
|
||||
}).orElse(0), optional1.map((chunk) -> {
|
||||
return chunk.getTileEntities().size();
|
||||
}).orElse(0));
|
||||
diff --git a/src/main/java/net/minecraft/server/VoxelShapes.java b/src/main/java/net/minecraft/server/VoxelShapes.java
|
||||
index 4bdadffee07c54f6f538ba09db72d562d05cb337..eb358d4453fce1de7f15f38b32e594fa63e4deb5 100644
|
||||
--- a/src/main/java/net/minecraft/server/VoxelShapes.java
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Replace some hot streams
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 1bc8b11d999e9af16a44fe1cb62f5785afa82462..257745d56e54cc8442be97b475d84e7f3991ebf5 100644
|
||||
index 30d4589c9cdad11809fc09cb51235d6da8e03195..bf7d5394a59186aa516497e8eaae8e5000db6a62 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -430,9 +430,20 @@ public class ChunkRegionLoader {
|
||||
@ -29,7 +29,7 @@ index 1bc8b11d999e9af16a44fe1cb62f5785afa82462..257745d56e54cc8442be97b475d84e7f
|
||||
// Paper start - async chunk save for unload
|
||||
NibbleArray nibblearray; // block light
|
||||
NibbleArray nibblearray1; // sky light
|
||||
@@ -725,6 +736,8 @@ public class ChunkRegionLoader {
|
||||
@@ -728,6 +739,8 @@ public class ChunkRegionLoader {
|
||||
while (iterator.hasNext()) {
|
||||
String s = (String) iterator.next();
|
||||
|
||||
@ -38,7 +38,7 @@ index 1bc8b11d999e9af16a44fe1cb62f5785afa82462..257745d56e54cc8442be97b475d84e7f
|
||||
map.put(StructureGenerator.a.get(s.toLowerCase(Locale.ROOT)), new LongOpenHashSet(Arrays.stream(nbttagcompound1.getLongArray(s)).filter((i) -> {
|
||||
ChunkCoordIntPair chunkcoordintpair1 = new ChunkCoordIntPair(i);
|
||||
|
||||
@@ -735,6 +748,22 @@ public class ChunkRegionLoader {
|
||||
@@ -738,6 +751,22 @@ public class ChunkRegionLoader {
|
||||
return true;
|
||||
}
|
||||
}).toArray()));
|
||||
|
Loading…
Reference in New Issue
Block a user