SteamWar/SpigotCore
Archiviert
13
0

Merge pull request 'Add REntityServer.getPlayers, REntityServer.getEntities and REntityServer.getEntitiesByType' (#246) from PlayersAndEntitesFromREntityServer into master
Alle Prüfungen waren erfolgreich
SteamWarCI Build successful

Reviewed-on: #246
Reviewed-by: Lixfel <lixfel@steamwar.de>
Dieser Commit ist enthalten in:
Lixfel 2023-10-22 17:23:56 +02:00
Commit 97461b198d

Datei anzeigen

@ -33,15 +33,13 @@ import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
public class REntityServer implements Listener {
@ -109,10 +107,17 @@ public class REntityServer implements Listener {
}
public void removePlayer(Player player) {
if (!viewDistance.containsKey(player)) {
return;
}
forChunkInView(player, lastLocation.remove(player), (x, z) -> removePlayerFromChunk(player, x, z));
viewDistance.remove(player);
}
public List<Player> getPlayers() {
return new ArrayList<>(viewDistance.keySet());
}
public void close() {
TinyProtocol.instance.removeFilter(useEntity, filter);
for(Player player : lastLocation.keySet().toArray(new Player[0])) {
@ -159,6 +164,14 @@ public class REntityServer implements Listener {
entityMap.remove(entity.entityId);
}
public List<REntity> getEntities() {
return new ArrayList<>(entityMap.values());
}
public <T extends REntity> List<T> getEntitiesByType(Class<T> clazz) {
return entityMap.values().stream().filter(clazz::isInstance).map(clazz::cast).collect(Collectors.toList());
}
private void addEntityToChunk(REntity entity) {
entities.computeIfAbsent(entityToId(entity), i -> new HashSet<>()).add(entity);
}