Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / SensorNearestPlayers.java
package net.minecraft.server;

import com.google.common.collect.ImmutableSet;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class SensorNearestPlayers extends Sensor<EntityLiving> {

    public SensorNearestPlayers() {}

    @Override
    protected void a(WorldServer worldserver, EntityLiving entityliving) {
        Stream stream = worldserver.getPlayers().stream().filter(IEntitySelector.f).filter((entityplayer) -> {
            return entityliving.h((Entity) entityplayer) < 256.0D;
        });

        entityliving.getClass();
        List<EntityHuman> list = (List) stream.sorted(Comparator.comparingDouble(entityliving::h)).collect(Collectors.toList());
        BehaviorController<?> behaviorcontroller = entityliving.getBehaviorController();

        behaviorcontroller.setMemory(MemoryModuleType.NEAREST_PLAYERS, (Object) list);
        MemoryModuleType memorymoduletype = MemoryModuleType.NEAREST_VISIBLE_PLAYER;
        Stream stream1 = list.stream();

        entityliving.getClass();
        behaviorcontroller.setMemory(memorymoduletype, stream1.filter(entityliving::hasLineOfSight).findFirst());
    }

    @Override
    public Set<MemoryModuleType<?>> a() {
        return ImmutableSet.of(MemoryModuleType.NEAREST_PLAYERS, MemoryModuleType.NEAREST_VISIBLE_PLAYER);
    }
}