aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch')
-rw-r--r--Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch82
1 files changed, 82 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch b/Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch
new file mode 100644
index 0000000000..796ed803a9
--- /dev/null
+++ b/Spigot-Server-Patches/0312-World-EntityHuman-Lookup-Optimizations.patch
@@ -0,0 +1,82 @@
+From df9635bc942ea00aedd136fdea9d06027e38b337 Mon Sep 17 00:00:00 2001
+From: willies952002 <[email protected]>
+Date: Mon, 30 Jul 2018 02:42:49 -0400
+Subject: [PATCH] World EntityHuman Lookup Optimizations
+
+
+diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
+index 5d60b36678..3acea908c2 100644
+--- a/src/main/java/net/minecraft/server/World.java
++++ b/src/main/java/net/minecraft/server/World.java
+@@ -76,6 +76,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ private final List<TileEntity> c = Lists.newArrayList();
+ private final Set<TileEntity> tileEntityListUnload = com.google.common.collect.Sets.newHashSet(); // Paper
+ public final List<EntityHuman> players = Lists.newArrayList();
++ public final Map<String, EntityHuman> playersByName = Maps.newHashMap(); // Paper - World EntityHuman Lookup Optimizations
+ public final List<Entity> k = Lists.newArrayList();
+ protected final IntHashMap<Entity> entitiesById = new IntHashMap<>();
+ private final long F = 16777215L;
+@@ -1030,6 +1031,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ EntityHuman entityhuman = (EntityHuman) entity;
+
+ this.players.add(entityhuman);
++ this.playersByName.put(entityhuman.getName(), entityhuman);
++ // Paper end
+ this.everyoneSleeping();
+ }
+
+@@ -1072,6 +1075,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ entity.die();
+ if (entity instanceof EntityHuman) {
+ this.players.remove(entity);
++ this.playersByName.remove(entity.getName()); // Paper - World EntityHuman Lookup Optimizations
+ // Spigot start
+ for ( WorldPersistentData worldData : worldMaps.worldMap.values() )
+ {
+@@ -1105,6 +1109,7 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ entity.die();
+ if (entity instanceof EntityHuman) {
+ this.players.remove(entity);
++ this.playersByName.remove(entity.getName()); // Paper - World EntityHuman Lookup Optimizations
+ this.everyoneSleeping();
+ }
+
+@@ -2667,6 +2672,8 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+
+ @Nullable
+ public EntityHuman a(String s) {
++ // Paper start - World EntityHuman Lookup Optimizations
++ /*
+ for (int i = 0; i < this.players.size(); ++i) {
+ EntityHuman entityhuman = (EntityHuman) this.players.get(i);
+
+@@ -2676,10 +2683,15 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ }
+
+ return null;
++ */
++ return this.playersByName.get(s);
++ // Paper end
+ }
+
+ @Nullable
+ public EntityHuman b(UUID uuid) {
++ // Paper start - World EntityHuman Lookup Optimizations
++ /*
+ for (int i = 0; i < this.players.size(); ++i) {
+ EntityHuman entityhuman = (EntityHuman) this.players.get(i);
+
+@@ -2689,6 +2701,10 @@ public abstract class World implements IEntityAccess, GeneratorAccess, IIBlockAc
+ }
+
+ return null;
++ */
++ Entity entity = ((WorldServer)this).entitiesByUUID.get(uuid);
++ return entity instanceof EntityHuman ? (EntityHuman) entity : null;
++ // Paper end
+ }
+
+ public void checkSession() throws ExceptionWorldConflict {
+--
+2.21.0
+