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/src/main/java/net/minecraft/world/entity/ai/behavior/YieldJobSite.java b/src/main/java/net/minecraft/world/entity/ai/behavior/YieldJobSite.java index d1a9b62d3304916275dd6b4c4e783cf1563b5e21..572d266c3af268a5dbbc31272b5aa15d46442408 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/YieldJobSite.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/YieldJobSite.java @@ -38,24 +38,25 @@ public class YieldJobSite { if (optional.isEmpty()) { return true; } else { - context.>get(mobs) - .stream() - .filter(mob -> mob instanceof Villager && mob != entity) - .map(villager -> (Villager)villager) - .filter(LivingEntity::isAlive) - .filter(villager -> nearbyWantsJobsite(optional.get(), villager, blockPos)) - .findFirst() - .ifPresent(villager -> { - walkTarget.erase(); - lookTarget.erase(); - potentialJobSite.erase(); - if (villager.getBrain().getMemory(MemoryModuleType.JOB_SITE).isEmpty()) { - BehaviorUtils.setWalkAndLookTargetMemories(villager, blockPos, speed, 1); - villager.getBrain() - .setMemory(MemoryModuleType.POTENTIAL_JOB_SITE, GlobalPos.of(world.dimension(), blockPos)); - DebugPackets.sendPoiTicketCountPacket(world, blockPos); + // Leaf start - Remove stream in YieldJobSite + List mobsList = context.get(mobs); + for (LivingEntity mob : mobsList) { + if (mob instanceof Villager villager && mob != entity && villager.isAlive()) { + if (nearbyWantsJobsite(optional.get(), villager, blockPos)) { + walkTarget.erase(); + lookTarget.erase(); + potentialJobSite.erase(); + + if (villager.getBrain().getMemory(MemoryModuleType.JOB_SITE).isEmpty()) { + BehaviorUtils.setWalkAndLookTargetMemories(villager, blockPos, speed, 1); + villager.getBrain().setMemory(MemoryModuleType.POTENTIAL_JOB_SITE, GlobalPos.of(world.dimension(), blockPos)); + DebugPackets.sendPoiTicketCountPacket(world, blockPos); + } + break; } - }); + } + } + // Leaf end - Remove stream in YieldJobSite return true; } }