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 4b3ba795bc18417f983600f1edbc1895ccb7deab..16bec10543419b3010af414f1b6d12068c3a4ea7 100644 --- a/net/minecraft/world/entity/ai/sensing/TemptingSensor.java +++ b/net/minecraft/world/entity/ai/sensing/TemptingSensor.java @@ -36,15 +36,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 EntityTargetLivingEntityEvent event = CraftEventFactory.callEntityTargetLivingEvent(entity, player, EntityTargetEvent.TargetReason.TEMPT);