mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-02 13:07:06 +01:00
d413dca4ee
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 333b9f02 SPIGOT-5422: Add support for 3-dimensional biomes 170d7386 Fix bad link in deprecated FlowerPot MaterialData class CraftBukkit Changes:16dc5758
SPIGOT-5449: Fix issue with projectilesfd25653f
SPIGOT-5448: Shulker Boxes collapse empty slots when picked upb97d581a
SPIGOT-5443: BEE_NEST BlockState73698cf8
SPIGOT-5442: Fix issue with fire chargesbeff9fb9
SPIGOT-5437: Fix CustomChunkGenerator.CustomBiomeGrid ignoring the y value for biomesf777640e
SPIGOT-5425: Prevent empty/air loot (again?)db0dafb1
SPIGOT-5422: Add support for 3-dimensional biomes4633e6c5
Fix crash with disabled worlds Spigot Changes: f39a89ef SPIGOT-5423: Remove covariant type change to give better chance of Java downgrades working
38 lines
1.6 KiB
Diff
38 lines
1.6 KiB
Diff
From 7249cb6d35502af578c780638266144a4cfffd84 Mon Sep 17 00:00:00 2001
|
|
From: wea_ondara <wea_ondara@alpenblock.net>
|
|
Date: Thu, 10 Oct 2019 11:29:42 +0200
|
|
Subject: [PATCH] Performance improvement for Chunk.getEntities
|
|
|
|
This patch aims to reduce performance cost used by collecting the
|
|
entities of a chunk. Previously the entitySlices were copied into an
|
|
extra array with List.toArray() with is a costly and unneccessary
|
|
operation. This patch will reduce the load of plugins which for example
|
|
implement custom moblimits and depend on Chunk.getEntities().
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
index 91f2066b1..9cff8b88b 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftChunk.java
|
|
@@ -112,14 +112,14 @@ public class CraftChunk implements Chunk {
|
|
Entity[] entities = new Entity[count];
|
|
|
|
for (int i = 0; i < 16; i++) {
|
|
-
|
|
- for (Object obj : chunk.entitySlices[i].toArray()) {
|
|
- if (!(obj instanceof net.minecraft.server.Entity)) {
|
|
+ // Paper start - speed up (was with chunk.entitySlices[i].toArray() and cast checks which costs a lot of performance if called often)
|
|
+ for (net.minecraft.server.Entity entity : chunk.entitySlices[i]) {
|
|
+ if (entity == null) {
|
|
continue;
|
|
}
|
|
-
|
|
- entities[index++] = ((net.minecraft.server.Entity) obj).getBukkitEntity();
|
|
+ entities[index++] = entity.getBukkitEntity();
|
|
}
|
|
+ // Paper end
|
|
}
|
|
|
|
return entities;
|
|
--
|
|
2.24.1
|
|
|