package net.minecraft.world.entity.monster.piglin; import java.util.Optional; import net.minecraft.server.level.ServerLevel; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.ai.behavior.BehaviorControl; import net.minecraft.world.entity.ai.behavior.declarative.BehaviorBuilder; import net.minecraft.world.entity.ai.behavior.declarative.MemoryAccessor; import net.minecraft.world.entity.ai.memory.MemoryModuleType; import net.minecraft.world.entity.item.ItemEntity; public class StopAdmiringIfItemTooFarAway { public static BehaviorControl create(int p_259415_) { return BehaviorBuilder.create( p_259152_ -> p_259152_.group(p_259152_.present(MemoryModuleType.ADMIRING_ITEM), p_259152_.registered(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM)) .apply(p_259152_, (p_260178_, p_259241_) -> (p_259613_, p_259304_, p_259748_) -> { if (!p_259304_.getOffhandItem().isEmpty()) { return false; } else { Optional optional = p_259152_.tryGet(p_259241_); if (optional.isPresent() && optional.get().closerThan(p_259304_, p_259415_)) { return false; } else { p_260178_.erase(); return true; } } }) ); } }