mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-15 07:01:36 +08:00
57dd397155
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: b999860d SPIGOT-2304: Add LootGenerateEvent CraftBukkit Changes:77fd87e4
SPIGOT-2304: Implement LootGenerateEventa1a705ee
SPIGOT-5566: Doused campfires & fires should call EntityChangeBlockEvent41712edd
SPIGOT-5707: PersistentDataHolder not Persistent on API dropped Item
48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
From 7cd937068c4806c38ef0b721fe5029baf4932ac3 Mon Sep 17 00:00:00 2001
|
|
From: Spottedleaf <Spottedleaf@users.noreply.github.com>
|
|
Date: Sat, 11 Jan 2020 21:50:56 -0800
|
|
Subject: [PATCH] Optimise IEntityAccess#getPlayerByUUID
|
|
|
|
Use the world entity map instead of iterating over all players
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IEntityAccess.java b/src/main/java/net/minecraft/server/IEntityAccess.java
|
|
index d5c284cdd1..4157e50e4d 100644
|
|
--- a/src/main/java/net/minecraft/server/IEntityAccess.java
|
|
+++ b/src/main/java/net/minecraft/server/IEntityAccess.java
|
|
@@ -219,6 +219,12 @@ public interface IEntityAccess {
|
|
|
|
@Nullable
|
|
default EntityHuman b(UUID uuid) {
|
|
+ // Paper start - allow WorldServer to override
|
|
+ return this.getPlayerByUUID(uuid);
|
|
+ }
|
|
+ @Nullable
|
|
+ default EntityHuman getPlayerByUUID(UUID uuid) {
|
|
+ // Paper end
|
|
for (int i = 0; i < this.getPlayers().size(); ++i) {
|
|
EntityHuman entityhuman = (EntityHuman) this.getPlayers().get(i);
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index 06d693ca2c..62fabb7ad5 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -82,6 +82,15 @@ public class WorldServer extends World {
|
|
return new Throwable(entity + " Added to world at " + new java.util.Date());
|
|
}
|
|
|
|
+ // Paper start - optimise getPlayerByUUID
|
|
+ @Nullable
|
|
+ @Override
|
|
+ public EntityHuman getPlayerByUUID(UUID uuid) {
|
|
+ Entity player = this.entitiesByUUID.get(uuid);
|
|
+ return (player instanceof EntityHuman) ? (EntityHuman)player : null;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
// Paper start - Asynchronous IO
|
|
public final com.destroystokyo.paper.io.PaperFileIOThread.ChunkDataController poiDataController = new com.destroystokyo.paper.io.PaperFileIOThread.ChunkDataController() {
|
|
@Override
|
|
--
|
|
2.26.2
|
|
|