import { world, system } from "@minecraft/server";

// Идентификатор вашего моба
const targetIdentifier = "mebesm:miss_delight";

system.runInterval(() => {
    const players = world.getPlayers();

    // Проходим по всем мобам с нужным идентификатором, чтобы контролировать их состояние
    const targetEntities = world.getDimension("overworld").getEntities({ type: targetIdentifier });

    for (const target of targetEntities) {
        let isBeingLookedAt = false;

        for (const player of players) {
            try {
                // Трассировка луча от игрока
                const entitiesInView = player.getEntitiesFromViewDirection({
                    maxDistance: 32,
                    ignoreInsaneValues: true
                });

                if (entitiesInView) {
                    for (const entityHit of entitiesInView) {
                        // Проверяем, смотрит ли игрок именно на текущего моба из цикла
                        if (entityHit.entity.id === target.id) {
                            isBeingLookedAt = true;
                            break;
                        }
                    }
                }
            } catch (e) {
                // Игнорируем ошибки
            }
            if (isBeingLookedAt) break;
        }

        // Если моб находится в поле зрения игрока, накладываем эффект на моба
        if (isBeingLookedAt) {
            try {
                target.addEffect("slowness", 20, { // 20 тиков = 1 секунда
                    amplifier: 255,
                    showParticles: false
                });
            } catch (e) {
                // Игнорируем ошибки
            }
        } else {
            // Если игрок отвёл взгляд, убираем эффект с моба
            try {
                target.removeEffect("slowness");
            } catch (e) {
                // Игнорируем ошибки
            }
        }
    }
}, 5);