From 651753d3708d105fdf19f46c709de4171b6dbb65 Mon Sep 17 00:00:00 2001 From: Brokkonaut Date: Tue, 3 Jul 2018 16:16:01 +0200 Subject: [PATCH] Add World.getEntity(UUID) API This is the best way to get an entity when the world and its UUID are known. It is faster than Server.getEntity(UUID) because it does not have to iterate all worlds --- .../Add-World.getEntity-UUID-API.patch | 28 +++++++++++++++++++ .../Implement-World.getEntity-UUID-API.patch | 26 +++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 Spigot-API-Patches/Add-World.getEntity-UUID-API.patch create mode 100644 Spigot-Server-Patches/Implement-World.getEntity-UUID-API.patch diff --git a/Spigot-API-Patches/Add-World.getEntity-UUID-API.patch b/Spigot-API-Patches/Add-World.getEntity-UUID-API.patch new file mode 100644 index 0000000000..edfb22a13d --- /dev/null +++ b/Spigot-API-Patches/Add-World.getEntity-UUID-API.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Brokkonaut +Date: Tue, 3 Jul 2018 16:07:16 +0200 +Subject: [PATCH] Add World.getEntity(UUID) API + + +diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java +index 4ed7d2dc..4441a8e0 100644 +--- a/src/main/java/org/bukkit/World.java ++++ b/src/main/java/org/bukkit/World.java +@@ -0,0 +0,0 @@ public interface World extends PluginMessageRecipient, Metadatable { + */ + public Collection getNearbyEntities(Location location, double x, double y, double z); + ++ // Paper start - getEntity by UUID API ++ /** ++ * Gets an entity in this world by its UUID ++ * ++ * @param uuid the UUID of the entity ++ * @return the entity with the given UUID, or null if it isn't found ++ */ ++ public Entity getEntity(UUID uuid); ++ // Paper end ++ + /** + * Gets the unique name of this world + * +-- \ No newline at end of file diff --git a/Spigot-Server-Patches/Implement-World.getEntity-UUID-API.patch b/Spigot-Server-Patches/Implement-World.getEntity-UUID-API.patch new file mode 100644 index 0000000000..704ddbda8e --- /dev/null +++ b/Spigot-Server-Patches/Implement-World.getEntity-UUID-API.patch @@ -0,0 +1,26 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Brokkonaut +Date: Tue, 3 Jul 2018 16:08:14 +0200 +Subject: [PATCH] Implement World.getEntity(UUID) API + + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +index e2da30d88..210e3bc4e 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +@@ -0,0 +0,0 @@ public class CraftWorld implements World { + return list; + } + ++ // Paper start - getEntity by UUID API ++ public Entity getEntity(UUID uuid) { ++ Validate.notNull(uuid, "UUID cannot be null"); ++ net.minecraft.server.Entity entity = world.getEntity(uuid); ++ return entity == null ? null : entity.getBukkitEntity(); ++ } ++ // Paper end ++ + public void save() { + // Spigot start + save(true); +-- \ No newline at end of file