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

// --- CONFIGURAÇÃO ---
const INTERVALO_MINUTOS = 5; // Intervalo entre limpezas
const TEMPO_LIMPEZA = INTERVALO_MINUTOS * 60; // tempo total em segundos
const RAIO = 300;

// --- FUNÇÃO DE LIMPEZA ---
function limparRaio(player) {
  const dim = world.getDimension("overworld");
  const entidades = dim.getEntities();

  let removidos = 0;

  for (const ent of entidades) {
    // só remove itens dropados
    if (ent.typeId !== "minecraft:item") continue;

    const dx = ent.location.x - player.location.x;
    const dy = ent.location.y - player.location.y;
    const dz = ent.location.z - player.location.z;
    const distancia = Math.sqrt(dx*dx + dy*dy + dz*dz);

    if (distancia <= RAIO) {
      ent.remove();
      removidos++;
    }
  }

  if (removidos > 0) {
    world.sendMessage(`§e⚠ Anti-LAG: §fRemovidos §c${removidos} §fitens dropados dentro de §a${RAIO} blocos!`);
  }
}

// --- SISTEMA DE CONTAGEM REGRESSIVA ---
function iniciarContagem() {
  let tempo = TEMPO_LIMPEZA;

  const contador = system.runInterval(() => {
    if (tempo <= 10 && tempo > 0) {
      world.sendMessage(`§e⏳ Limpeza de itens em §c${tempo} §esegundos...`);
    }

    if (tempo === 0) {
      system.clearRun(contador);

      for (const player of world.getPlayers()) {
        limparRaio(player);
      }

      iniciarContagem();
    }

    tempo--;
  }, 20);
}

// --- INICIAR SISTEMA ---
iniciarContagem();