e56bbcdcda
may help #284 Cleans up the lighting queue system, reducing diff and improving implementation. We no longer stop chunk unloads due to lighting updates, and instead simply flush the lighting queue. The cost of forcing the chunk (and its neighbors!) to stay loaded waiting for its lighting work to finish is much greater than simply taking the hit and doing the work. This change also helps reduce the diff and avoid bugs with missed diffs by removing duplicated logic. Also switches to a more effecient data structure (ArrayDeque instead of LinkedList) for the queue itself.
61 lines
2.2 KiB
Diff
61 lines
2.2 KiB
Diff
From 60d48a782502bf6c276124acfd412f18390a4ac7 Mon Sep 17 00:00:00 2001
|
|
From: DemonWav <demonwav@gmail.com>
|
|
Date: Wed, 30 Mar 2016 01:20:11 -0500
|
|
Subject: [PATCH] Add getEntity by UUID API
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 3d2e0b6..842e364 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -1593,4 +1593,20 @@ public abstract class MinecraftServer implements Runnable, ICommandListener, IAs
|
|
return (Bukkit.getServer() instanceof CraftServer) ? ((CraftServer) Bukkit.getServer()).getServer() : null;
|
|
}
|
|
// CraftBukkit end
|
|
+
|
|
+ // Paper start
|
|
+ public Entity getEntity(UUID uuid) {
|
|
+ Entity entity;
|
|
+ for (WorldServer world : worldServer) {
|
|
+ if (world == null) {
|
|
+ continue;
|
|
+ }
|
|
+ entity = world.getEntity(uuid);
|
|
+ if (entity != null && !entity.dead) {
|
|
+ return entity;
|
|
+ }
|
|
+ }
|
|
+ return null;
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index e957ed0..0a5301f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -46,6 +46,7 @@ import org.bukkit.configuration.serialization.ConfigurationSerialization;
|
|
import org.bukkit.conversations.Conversable;
|
|
import org.bukkit.craftbukkit.boss.CraftBossBar;
|
|
import org.bukkit.craftbukkit.command.VanillaCommandWrapper;
|
|
+import org.bukkit.craftbukkit.entity.CraftEntity;
|
|
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
|
import org.bukkit.craftbukkit.generator.CraftChunkData;
|
|
import org.bukkit.craftbukkit.help.SimpleHelpMap;
|
|
@@ -1858,5 +1859,14 @@ public final class CraftServer implements Server {
|
|
});
|
|
}
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public CraftEntity getEntity(UUID uuid) {
|
|
+ Entity entity = getHandle().getServer().getEntity(uuid);
|
|
+ if (entity == null) {
|
|
+ return null;
|
|
+ }
|
|
+ return entity.getBukkitEntity();
|
|
+ }
|
|
// Paper end
|
|
}
|
|
--
|
|
2.8.2
|
|
|