3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-11-17 05:20:05 +01:00

[Bleeding] Implemented World.getEntitiesByClass(Class<T>... classes)

Dieser Commit ist enthalten in:
Mike Primm 2011-12-11 17:27:53 -06:00 committet von Erik Broes
Ursprung 29096577b6
Commit f7585e552d

Datei anzeigen

@ -8,6 +8,7 @@ import org.bukkit.entity.*;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import java.util.concurrent.ConcurrentMap; import java.util.concurrent.ConcurrentMap;
import java.util.List; import java.util.List;
@ -525,6 +526,32 @@ public class CraftWorld implements World {
return list; 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() { public List<Player> getPlayers() {
List<Player> list = new ArrayList<Player>(); List<Player> list = new ArrayList<Player>();