/* // Função para procurar o upgrade na mochila
function procurarUpgrade(mochila) {
    if (mochila && mochila.tag && mochila.tag.renderInfo && mochila.tag.renderInfo.upgradeItems) {
        let upgrades = mochila.tag.renderInfo.upgradeItems;
        for (let i = 0; i < upgrades.length; i++) {
            let upgrade = upgrades[i];
            if (upgrade.id === 'sophisticatedbackpacks:tank_upgrade') {
                return i;
            }
        }
    }
    return -1;
}

// Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;

    // Verifica se o item é uma mochila 'sophisticatedbackpacks:backpack'
    if (item.id === 'sophisticatedbackpacks:backpack') {
        console.log(`Jogador ${player.name.string} clicou com o botão direito segurando a mochila.`);

        // Procura o upgrade na mochila
        let upgradeSlot = procurarUpgrade(item);

        if (upgradeSlot !== -1) {
            player.tell(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);
            console.log(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);
        } else {
            player.tell("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
            console.log("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
        }
    }
});

// Inclui o script de detecção do upgrade
// Coloque o conteúdo do script de detecção do upgrade aqui

// Função para verificar o fluido dentro do upgrade
function verificarFluidoNoUpgrade(upgrade) {
    if (upgrade && upgrade.tag && upgrade.tag.contents) {
        let fluido = upgrade.tag.contents.FluidName;
        let quantidade = upgrade.tag.contents.Amount;
        return { fluido: fluido, quantidade: quantidade };
    }
    return null;
}

// Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;

    // Verifica se o item é uma mochila 'sophisticatedbackpacks:backpack'
    if (item.id === 'sophisticatedbackpacks:backpack') {
        console.log(`Jogador ${player.name.string} clicou com o botão direito segurando a mochila.`);

        // Procura o upgrade na mochila
        let upgradeSlot = procurarUpgrade(item);

        if (upgradeSlot !== -1) {
            player.tell(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);
            console.log(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);

            // Verifica o fluido dentro do upgrade
            let upgrade = item.tag.renderInfo.upgradeItems[upgradeSlot];
            let fluidoInfo = verificarFluidoNoUpgrade(upgrade);

            if (fluidoInfo) {
                player.tell(`O upgrade contém ${fluidoInfo.quantidade} mB de ${fluidoInfo.fluido}.`);
                console.log(`O upgrade contém ${fluidoInfo.quantidade} mB de ${fluidoInfo.fluido}.`);
            } else {
                player.tell("O upgrade não contém fluido ou está vazio.");
                console.log("O upgrade não contém fluido ou está vazio.");
            }
        } else {
            player.tell("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
            console.log("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
        }
    }
});


*/

// Função para procurar o upgrade na mochila
function procurarUpgrade(mochila) {
    if (mochila && mochila.tag && mochila.tag.renderInfo && mochila.tag.renderInfo.upgradeItems) {
        let upgrades = mochila.tag.renderInfo.upgradeItems;
        for (let i = 0; i < upgrades.length; i++) {
            let upgrade = upgrades[i];
            if (upgrade.id === 'sophisticatedbackpacks:tank_upgrade') {
                return i;
            }
        }
    }
    return -1;
}

// Função para verificar o fluido dentro do upgrade
function verificarFluidoNoUpgrade(upgrade) {
    if (upgrade && upgrade.tag && upgrade.tag.contents) {
        let fluido = upgrade.tag.contents.FluidName;
        let quantidade = upgrade.tag.contents.Amount;
        return { fluido: fluido, quantidade: quantidade };
    }
    return null;
}

// Função para drenar 100 mB do fluido dentro do upgrade
function drenarFluido(upgrade, quantidade) {
    if (upgrade && upgrade.tag && upgrade.tag.contents && upgrade.tag.contents.Amount >= quantidade) {
        upgrade.tag.contents.Amount -= quantidade;
        return true;
    }
    return false;
}

// Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;

    // Verifica se o item é uma mochila 'sophisticatedbackpacks:backpack'
    if (item.id === 'sophisticatedbackpacks:backpack') {
        console.log(`Jogador ${player.name.string} clicou com o botão direito segurando a mochila.`);

        // Procura o upgrade na mochila
        let upgradeSlot = procurarUpgrade(item);

        if (upgradeSlot !== -1) {
            player.tell(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);
            console.log(`Upgrade 'sophisticatedbackpacks:tank_upgrade' encontrado no slot ${upgradeSlot} da mochila.`);

            // Verifica o fluido dentro do upgrade
            let upgrade = item.tag.renderInfo.upgradeItems[upgradeSlot];
            let fluidoInfo = verificarFluidoNoUpgrade(upgrade);

            if (fluidoInfo) {
                player.tell(`O upgrade contém ${fluidoInfo.quantidade} mB de ${fluidoInfo.fluido}.`);
                console.log(`O upgrade contém ${fluidoInfo.quantidade} mB de ${fluidoInfo.fluido}.`);

                // Tenta drenar 100 mB do fluido
                if (drenarFluido(upgrade, 100)) {
                    player.tell("100 mB de fluido drenados do upgrade.");
                    console.log("100 mB de fluido drenados do upgrade.");

                    // Atualiza o NBT do upgrade diretamente
                    item.tag.renderInfo.upgradeItems[upgradeSlot] = upgrade;
                    item.markDirty(); // Método para garantir que o NBT do item seja atualizado
                    player.tell(`Quantidade de fluido atualizada: ${upgrade.tag.contents.Amount} mB de ${upgrade.tag.contents.FluidName}`);
                    console.log(`Quantidade de fluido atualizada: ${upgrade.tag.contents.Amount} mB de ${upgrade.tag.contents.FluidName}`);
                } else {
                    player.tell("Não há fluido suficiente para drenar 100 mB do upgrade.");
                    console.log("Não há fluido suficiente para drenar 100 mB do upgrade.");
                }
            } else {
                player.tell("O upgrade não contém fluido ou está vazio.");
                console.log("O upgrade não contém fluido ou está vazio.");
            }
        } else {
            player.tell("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
            console.log("Upgrade 'sophisticatedbackpacks:tank_upgrade' não encontrado na mochila.");
        }
    }
});



