diff options
author | Mike Primm <mike@primmhome.com> | 2011-12-11 17:27:53 -0600 |
---|---|---|
committer | Erik Broes <erikbroes@grum.nl> | 2012-01-17 19:44:35 +0100 |
commit | f7585e552d2ff2cf5fbec7a255b6358d60d2513a (patch) | |
tree | c8310678dd1faa7a4c87f17b6468d1f9200a077f /src/main/java | |
parent | 29096577b64abdfdc2b12abf2787a480176138a1 (diff) | |
download | craftbukkit-f7585e552d2ff2cf5fbec7a255b6358d60d2513a.tar craftbukkit-f7585e552d2ff2cf5fbec7a255b6358d60d2513a.tar.gz craftbukkit-f7585e552d2ff2cf5fbec7a255b6358d60d2513a.tar.lz craftbukkit-f7585e552d2ff2cf5fbec7a255b6358d60d2513a.tar.xz craftbukkit-f7585e552d2ff2cf5fbec7a255b6358d60d2513a.zip |
[Bleeding] Implemented World.getEntitiesByClass(Class<T>... classes)
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 41090e77..dd5388e4 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -8,6 +8,7 @@ import org.bukkit.entity.*; import org.bukkit.entity.Entity; import java.util.ArrayList; +import java.util.Collection; import java.util.HashSet; import java.util.concurrent.ConcurrentMap; import java.util.List; @@ -525,6 +526,32 @@ public class CraftWorld implements World { return list; } + @SuppressWarnings("unchecked") + public <T extends Entity> Collection<T> getEntitiesByClass(Class<T>... classes) { + Collection<T> list = new ArrayList<T>(); + + for (Object entity: world.entityList) { + if (entity instanceof net.minecraft.server.Entity) { + Entity bukkitEntity = ((net.minecraft.server.Entity) entity).getBukkitEntity(); + + if (bukkitEntity == null) { + continue; + } + + Class<?> bukkitClass = bukkitEntity.getClass(); + + for (Class<?> clazz : classes) { + if (clazz.isAssignableFrom(bukkitClass)) { + list.add((T) bukkitEntity); + break; + } + } + } + } + + return list; + } + public List<Player> getPlayers() { List<Player> list = new ArrayList<Player>(); |