From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com> Date: Sat, 26 Oct 2024 14:04:54 +0800 Subject: [PATCH] Remove stream in YieldJobSite diff --git a/net/minecraft/world/entity/ai/behavior/YieldJobSite.java b/net/minecraft/world/entity/ai/behavior/YieldJobSite.java index 44340aa26bc89faaf8842bb36048cf61dba34314..811cbeafaf907b1fc96cc0916073c5f0100c555e 100644 --- a/net/minecraft/world/entity/ai/behavior/YieldJobSite.java +++ b/net/minecraft/world/entity/ai/behavior/YieldJobSite.java @@ -38,23 +38,26 @@ public class YieldJobSite { if (type.isEmpty()) { return true; } else { - instance.>get(nearestLivingEntities) - .stream() - .filter(nearEntity -> nearEntity instanceof Villager && nearEntity != villager) - .map(nearEntity -> (Villager)nearEntity) - .filter(LivingEntity::isAlive) - .filter(nearVillager -> nearbyWantsJobsite(type.get(), nearVillager, blockPos)) - .findFirst() - .ifPresent(nearVillager -> { - walkTarget.erase(); - lookTarget.erase(); - potentialJobSite.erase(); - if (nearVillager.getBrain().getMemory(MemoryModuleType.JOB_SITE).isEmpty()) { - BehaviorUtils.setWalkAndLookTargetMemories(nearVillager, blockPos, speedModifier, 1); - nearVillager.getBrain().setMemory(MemoryModuleType.POTENTIAL_JOB_SITE, GlobalPos.of(level.dimension(), blockPos)); - DebugPackets.sendPoiTicketCountPacket(level, blockPos); + // Leaf start - Remove stream in YieldJobSite + List mobsList = instance.get(nearestLivingEntities); + for (LivingEntity nearEntity : mobsList) { + if (nearEntity instanceof Villager nearVillager && nearEntity != villager && nearEntity.isAlive()) { + if (nearbyWantsJobsite(type.get(), nearVillager, blockPos)) { + walkTarget.erase(); + lookTarget.erase(); + potentialJobSite.erase(); + + if (nearVillager.getBrain().getMemory(MemoryModuleType.JOB_SITE).isEmpty()) { + BehaviorUtils.setWalkAndLookTargetMemories(nearVillager, blockPos, speedModifier, 1); + nearVillager.getBrain().setMemory(MemoryModuleType.POTENTIAL_JOB_SITE, GlobalPos.of(level.dimension(), blockPos)); + DebugPackets.sendPoiTicketCountPacket(level, blockPos); + } + + break; } - }); + } + } + // Leaf end - Remove stream in YieldJobSite return true; } }