import { ActionFormData } from "@minecraft/server-ui";
import { VILAS_DATA, VILLAGES } from "../config.js"; 
import { openGeneroMenu } from "./genero.js"; 

const vilaState = {};

export function openVilaMenu(player) {
    if (!vilaState[player.id]) vilaState[player.id] = 0;

    const lista = VILAS_DATA;
    const index = vilaState[player.id];
    const atual = lista[index];

    const form = new ActionFormData()
        .title(":zenkai_clan_selector:§fVila")
        .body(`${atual.cor}${atual.nome}`);

    form.button("§p§r§e§v§i§o§u§s"); // voltar
    form.button("§s§e§l§e§c§t§aSelecionar", atual.icon || "textures/items/diamond"); // selecionar
    form.button("§n§e§x§t"); // avançar

    form.show(player).then(res => {
        if (res.canceled) {
            // Se o jogador fechar o menu, reabre de onde parou
            openVilaMenu(player);
            return;
        }

        if (res.selection === 0) { 
            vilaState[player.id] = (index - 1 + lista.length) % lista.length;
            openVilaMenu(player);
        }
        else if (res.selection === 2) {
            vilaState[player.id] = (index + 1) % lista.length;
            openVilaMenu(player);
        }
        else if (res.selection === 1) { 
            // Remove tags de vilas anteriores
            lista.forEach(v => player.removeTag(v.maskTag));
            Object.values(VILLAGES).forEach(v => player.removeTag(v.tag));

            // Adiciona a tag da vila escolhida
            player.addTag(atual.maskTag);

            // Adiciona a tag geral "Shinobi"
            player.addTag("Shinobi");

            // Adiciona também a tag da vila (ex.: "folha", "areia", etc.)
            const vilaInfo = VILLAGES[atual.nome];
            if (vilaInfo) {
                player.addTag(vilaInfo.tag);
            }

            // Mensagens de confirmação
            player.sendMessage(`§aVocê escolheu a Vila da ${atual.cor}${atual.nome}§a!`);
            player.sendMessage("§7(Sua bandana foi desbloqueada no menu de Equipamentos)");

            // Abre o menu de gênero
            openGeneroMenu(player);
        }
    });
}