From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Taiyou06 Date: Mon, 12 May 2025 19:39:03 +0200 Subject: [PATCH] Remove streams in TemptingSensor diff --git a/net/minecraft/world/entity/ai/sensing/TemptingSensor.java b/net/minecraft/world/entity/ai/sensing/TemptingSensor.java index 6074c091d0df7843c9f9dc691703eba1a24a7253..5919192968d7272bbf119f248def7e96a1ea359b 100644 --- a/net/minecraft/world/entity/ai/sensing/TemptingSensor.java +++ b/net/minecraft/world/entity/ai/sensing/TemptingSensor.java @@ -28,15 +28,21 @@ public class TemptingSensor extends Sensor { protected void doTick(ServerLevel level, PathfinderMob entity) { Brain brain = entity.getBrain(); TargetingConditions targetingConditions = TEMPT_TARGETING.copy().range((float)entity.getAttributeValue(Attributes.TEMPT_RANGE)); - List list = level.players() - .stream() - .filter(EntitySelector.NO_SPECTATORS) - .filter(serverPlayer -> targetingConditions.test(level, entity, serverPlayer)) - .filter(this::playerHoldingTemptation) - .filter(serverPlayer -> !entity.hasPassenger(serverPlayer)) - .sorted(Comparator.comparingDouble(entity::distanceToSqr)) - .collect(Collectors.toList()); + // Leaf start - Remove streams in TemptingSensor + List allPlayers = level.players(); + List list = new java.util.ArrayList<>(); + for (Player serverPlayer : allPlayers) { + if (EntitySelector.NO_SPECTATORS.test(serverPlayer) && + targetingConditions.test(level, entity, serverPlayer) && + this.playerHoldingTemptation(serverPlayer) && + !entity.hasPassenger(serverPlayer)) { + list.add(serverPlayer); + } + } + // Leaf end - Remove streams in TemptingSensor + if (!list.isEmpty()) { + list.sort(Comparator.comparingDouble(entity::distanceToSqr)); // Leaf - Remove streams in TemptingSensor Player player = list.get(0); // CraftBukkit start org.bukkit.event.entity.EntityTargetLivingEntityEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetLivingEvent(