summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorMike Primm <mike@primmhome.com>2011-12-11 17:27:53 -0600
committerErik Broes <erikbroes@grum.nl>2012-01-17 19:44:35 +0100
commitf7585e552d2ff2cf5fbec7a255b6358d60d2513a (patch)
treec8310678dd1faa7a4c87f17b6468d1f9200a077f /src/main/java
parent29096577b64abdfdc2b12abf2787a480176138a1 (diff)
downloadcraftbukkit-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.java27
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>();