/* // Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;
    console.log(`Evento de clique direito detectado por ${player.name.string}.`);

    // Verifica se o item é uma mochila 'travelersbackpack:standard'
    if (item.id === 'travelersbackpack:standard') {
        console.log('O item clicado é uma mochila.');

        let nbt = item.nbt;

        // Verifica se o NBT existe
        if (nbt) {
            console.log('NBT da mochila:', JSON.stringify(nbt));

            // Verifica se a mochila contém 'Upgrades'
            if (nbt.contains('Upgrades')) {
                console.log('A mochila contém a tag "Upgrades".');
                let upgrades = nbt.getCompound('Upgrades');

                // Verifica se 'Upgrades' contém 'Items'
                if (upgrades.contains('Items')) {
                    console.log('A tag "Upgrades" contém "Items".');
                    let items = upgrades.getList('Items', 10); // 10 é o tipo NBT para compostos
                    console.log(`Número de upgrades na mochila: ${items.size()}`);

                    // Itera sobre cada item de upgrade na mochila
                    for (let i = 0; i < items.size(); i++) {
                        console.log(`Verificando upgrade ${i + 1} de ${items.size()}.`);
                        let upgradeItem = items.getCompound(i);

                        // Verifica se o upgrade é um 'travelersbackpack:tanks_upgrade'
                        let upgradeId = upgradeItem.getString('id');
                        console.log(`ID do upgrade: ${upgradeId}`);

                        if (upgradeId === 'travelersbackpack:tanks_upgrade') {
                            console.log('Upgrade é um "tanks_upgrade".');

                            // Verifica se o upgrade possui a tag 'tag' com 'Fluids'
                            if (upgradeItem.contains('tag') && upgradeItem.getCompound('tag').contains('Fluids')) {
                                let fluids = upgradeItem.getCompound('tag').getCompound('Fluids');
                                console.log('Conteúdo do tanks_upgrade acessado.');

                                // Verifica se 'Fluids' contém 'leftFluidStack'
                                if (fluids.contains('leftFluidStack')) {
                                    let leftFluidStack = fluids.getCompound('leftFluidStack');

                                    // Verifica se 'leftFluidStack' contém 'Amount' e 'FluidName'
                                    if (leftFluidStack.contains('Amount') && leftFluidStack.contains('FluidName')) {
                                        let amount = leftFluidStack.getInt('Amount');
                                        let fluidName = leftFluidStack.getString('FluidName');

                                        // Envia uma mensagem ao jogador com as informações
                                        player.tell(`O leftFluidStack da mochila contém ${amount} mB de '${fluidName}'.`);
                                        console.log(`Jogador ${player.name.string} verificou o leftFluidStack: ${amount} mB de '${fluidName}'.`);

                                        // Diminui a quantidade de água em 500 mB
                                        let newAmount = amount - 500;
                                        if (newAmount < 0) newAmount = 0;

                                        // Atualiza o Amount no NBT
                                        leftFluidStack.putInt('Amount', newAmount);
                                        console.log(`Quantidade de água no leftFluidStack atualizada para ${newAmount} mB.`);

                                        // Atualiza o NBT do upgradeItem
                                        fluids.put('leftFluidStack', leftFluidStack);
                                        upgradeItem.getCompound('tag').put('Fluids', fluids);
                                        items.set(i, upgradeItem);
                                        upgrades.put('Items', items);
                                        nbt.put('Upgrades', upgrades);
                                        item.setNbt(nbt);

                                        // Informa o jogador sobre a nova quantidade
                                        player.tell(`Nova quantidade de água no leftFluidStack: ${newAmount} mB.`);
                                        console.log(`Jogador ${player.name.string} recebeu nova quantidade: ${newAmount} mB de '${fluidName}'.`);
                                    } else {
                                        player.tell('O leftFluidStack não contém informações de fluido.');
                                        console.log('O "leftFluidStack" do tanks_upgrade não contém "Amount" ou "FluidName".');
                                    }
                                } else {
                                    player.tell('O upgrade de tanque não contém leftFluidStack.');
                                    console.log('O tanks_upgrade não contém "leftFluidStack".');
                                }
                            } else {
                                player.tell('O upgrade de tanque não possui conteúdo de fluido.');
                                console.log('O tanks_upgrade não contém "tag" ou "Fluids".');
                            }
                        } else {
                            console.log('Upgrade não é um "tanks_upgrade".');
                        }
                    }
                } else {
                    console.log('A tag "Upgrades" não contém "Items".');
                    player.tell('A mochila não contém upgrades.');
                }
            } else {
                console.log('A mochila não contém a tag "Upgrades".');
                player.tell('A mochila não possui informações de upgrades.');
            }
        } else {
            console.log('A mochila não contém dados NBT.');
            player.tell('A mochila não possui dados adicionais.');
        }
    } else {
        console.log('O item clicado não é uma mochila.');
    }
}); */

/* // Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;
    console.log(`Evento de clique direito detectado por ${player.name.string}.`);

    // Verifica se o item é uma mochila 'travelersbackpack:standard'
    if (item.id === 'travelersbackpack:standard') {
        console.log('O item clicado é uma mochila.');

        let nbt = item.nbt;

        // Verifica se o NBT existe
        if (nbt) {
            console.log('NBT da mochila:', JSON.stringify(nbt));

            // Verifica se a mochila contém 'Upgrades'
            if (nbt.contains('Upgrades')) {
                console.log('A mochila contém a tag "Upgrades".');
                let upgrades = nbt.getCompound('Upgrades');

                // Verifica se 'Upgrades' contém 'Items'
                if (upgrades.contains('Items')) {
                    console.log('A tag "Upgrades" contém "Items".');
                    let items = upgrades.getList('Items', 10); // 10 é o tipo NBT para compostos
                    console.log(`Número de upgrades na mochila: ${items.size()}`);

                    // Itera sobre cada item de upgrade na mochila
                    for (let i = 0; i < items.size(); i++) {
                        console.log(`Verificando upgrade ${i + 1} de ${items.size()}.`);
                        let upgradeItem = items.getCompound(i);

                        // Verifica se o upgrade é um 'travelersbackpack:tanks_upgrade'
                        let upgradeId = upgradeItem.getString('id');
                        console.log(`ID do upgrade: ${upgradeId}`);

                        if (upgradeId === 'travelersbackpack:tanks_upgrade') {
                            console.log('Upgrade é um "tanks_upgrade".');

                            // Verifica se o upgrade possui a tag 'tag' com 'Fluids'
                            if (upgradeItem.contains('tag') && upgradeItem.getCompound('tag').contains('Fluids')) {
                                let fluids = upgradeItem.getCompound('tag').getCompound('Fluids');
                                console.log('Conteúdo do tanks_upgrade acessado.');

                                // Verifica se 'Fluids' contém 'rightFluidStack'
                                if (fluids.contains('rightFluidStack')) {
                                    let rightFluidStack = fluids.getCompound('rightFluidStack');

                                    // Verifica se 'rightFluidStack' contém 'Amount' e 'FluidName'
                                    if (rightFluidStack.contains('Amount') && rightFluidStack.contains('FluidName')) {
                                        let amount = rightFluidStack.getInt('Amount');
                                        let fluidName = rightFluidStack.getString('FluidName');

                                        // Envia uma mensagem ao jogador com as informações
                                        player.tell(`O rightFluidStack da mochila contém ${amount} mB de '${fluidName}'.`);
                                        console.log(`Jogador ${player.name.string} verificou o rightFluidStack: ${amount} mB de '${fluidName}'.`);

                                        // Diminui a quantidade de água em 500 mB
                                        let newAmount = amount - 500;
                                        if (newAmount < 0) newAmount = 0;

                                        // Atualiza o Amount no NBT
                                        rightFluidStack.putInt('Amount', newAmount);
                                        console.log(`Quantidade de água no rightFluidStack atualizada para ${newAmount} mB.`);

                                        // Atualiza o NBT do upgradeItem
                                        fluids.put('rightFluidStack', rightFluidStack);
                                        upgradeItem.getCompound('tag').put('Fluids', fluids);
                                        items.set(i, upgradeItem);
                                        upgrades.put('Items', items);
                                        nbt.put('Upgrades', upgrades);
                                        item.setNbt(nbt);

                                        // Informa o jogador sobre a nova quantidade
                                        player.tell(`Nova quantidade de água no rightFluidStack: ${newAmount} mB.`);
                                        console.log(`Jogador ${player.name.string} recebeu nova quantidade: ${newAmount} mB de '${fluidName}'.`);
                                    } else {
                                        player.tell('O rightFluidStack não contém informações de fluido.');
                                        console.log('O "rightFluidStack" do tanks_upgrade não contém "Amount" ou "FluidName".');
                                    }
                                } else {
                                    player.tell('O upgrade de tanque não contém rightFluidStack.');
                                    console.log('O tanks_upgrade não contém "rightFluidStack".');
                                }
                            } else {
                                player.tell('O upgrade de tanque não possui conteúdo de fluido.');
                                console.log('O tanks_upgrade não contém "tag" ou "Fluids".');
                            }
                        } else {
                            console.log('Upgrade não é um "tanks_upgrade".');
                        }
                    }
                } else {
                    console.log('A tag "Upgrades" não contém "Items".');
                    player.tell('A mochila não contém upgrades.');
                }
            } else {
                console.log('A mochila não contém a tag "Upgrades".');
                player.tell('A mochila não possui informações de upgrades.');
            }
        } else {
            console.log('A mochila não contém dados NBT.');
            player.tell('A mochila não possui dados adicionais.');
        }
    } else {
        console.log('O item clicado não é uma mochila.');
    }
}); */

/* / Evento que é chamado quando o jogador clica com o botão direito em um item
ItemEvents.rightClicked(event => {
    let { player, item } = event;
    console.log(`Evento de clique direito detectado por ${player.name.string}.`);

    // Verifica se o item é uma mochila 'travelersbackpack:standard'
    if (item.id === 'travelersbackpack:standard') {
        console.log('O item clicado é uma mochila.');

        let nbt = item.nbt;

        // Verifica se o NBT existe
        if (nbt) {
            console.log('NBT da mochila:', JSON.stringify(nbt));

            // Verifica se a mochila contém 'Upgrades'
            if (nbt.contains('Upgrades')) {
                console.log('A mochila contém a tag "Upgrades".');
                let upgrades = nbt.getCompound('Upgrades');

                // Verifica se 'Upgrades' contém 'Items'
                if (upgrades.contains('Items')) {
                    console.log('A tag "Upgrades" contém "Items".');
                    let items = upgrades.getList('Items', 10); // 10 é o tipo NBT para compostos
                    console.log(`Número de upgrades na mochila: ${items.size()}`);

                    // Itera sobre cada item de upgrade na mochila
                    for (let i = 0; i < items.size(); i++) {
                        console.log(`Verificando upgrade ${i + 1} de ${items.size()}.`);
                        let upgradeItem = items.getCompound(i);

                        // Verifica se o upgrade é um 'travelersbackpack:tanks_upgrade'
                        let upgradeId = upgradeItem.getString('id');
                        console.log(`ID do upgrade: ${upgradeId}`);

                        if (upgradeId === 'travelersbackpack:tanks_upgrade') {
                            console.log('Upgrade é um "tanks_upgrade".');

                            // Verifica se o upgrade possui a tag 'tag' com 'Fluids'
                            if (upgradeItem.contains('tag') && upgradeItem.getCompound('tag').contains('Fluids')) {
                                let fluids = upgradeItem.getCompound('tag').getCompound('Fluids');
                                console.log('Conteúdo do tanks_upgrade acessado.');

                                // Verifica se 'Fluids' contém 'leftFluidStack'
                                if (fluids.contains('leftFluidStack')) {
                                    let leftFluidStack = fluids.getCompound('leftFluidStack');

                                    // Verifica se 'leftFluidStack' contém 'Amount' e 'FluidName'
                                    if (leftFluidStack.contains('Amount') && leftFluidStack.contains('FluidName')) {
                                        let amount = leftFluidStack.getInt('Amount');
                                        let fluidName = leftFluidStack.getString('FluidName');

                                        // Envia uma mensagem ao jogador com as informações
                                        player.tell(`O leftFluidStack da mochila contém ${amount} mB de '${fluidName}'.`);
                                        console.log(`Jogador ${player.name.string} verificou o leftFluidStack: ${amount} mB de '${fluidName}'.`);

                                        // Diminui a quantidade de água em 500 mB
                                        let newAmount = amount - 500;
                                        if (newAmount < 0) newAmount = 0;

                                        // Atualiza o Amount no NBT
                                        leftFluidStack.putInt('Amount', newAmount);
                                        console.log(`Quantidade de água no leftFluidStack atualizada para ${newAmount} mB.`);

                                        // Atualiza o NBT do upgradeItem
                                        fluids.put('leftFluidStack', leftFluidStack);
                                        upgradeItem.getCompound('tag').put('Fluids', fluids);
                                        items.set(i, upgradeItem);
                                        upgrades.put('Items', items);
                                        nbt.put('Upgrades', upgrades);
                                        item.setNbt(nbt);

                                        // Informa o jogador sobre a nova quantidade
                                        player.tell(`Nova quantidade de água no leftFluidStack: ${newAmount} mB.`);
                                        console.log(`Jogador ${player.name.string} recebeu nova quantidade: ${newAmount} mB de '${fluidName}'.`);
                                    } else {
                                        player.tell('O leftFluidStack não contém informações de fluido.');
                                        console.log('O "leftFluidStack" do tanks_upgrade não contém "Amount" ou "FluidName".');
                                    }
                                } else if {
                                    player.tell('O upgrade de tanque não contém leftFluidStack.');
                                    console.log('O tanks_upgrade não contém "leftFluidStack".');

                                }
                            } else {
                                player.tell('O upgrade de tanque não possui conteúdo de fluido.');
                                console.log('O tanks_upgrade não contém "tag" ou "Fluids".');
                            }
                        } else {
                            console.log('Upgrade não é um "tanks_upgrade".');
                        }
                    }
                } else {
                    console.log('A tag "Upgrades" não contém "Items".');
                    player.tell('A mochila não contém upgrades.');
                }
            } else {
                console.log('A mochila não contém a tag "Upgrades".');
                player.tell('A mochila não possui informações de upgrades.');
            }
        } else {
            console.log('A mochila não contém dados NBT.');
            player.tell('A mochila não possui dados adicionais.');
        }
    } else {
        console.log('O item clicado não é uma mochila.');
    }
}); */



// 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 jogador está segurando um diamante
    if (item.id === 'minecraft:diamond') {
        console.log(`Jogador ${player.name.string} clicou com o botão direito segurando um diamante.`);

        // Acessa a mochila no slot "back" do Curios
        let forgeCaps = player.persistentData.getCompound("ForgeCaps");
        if (forgeCaps.contains("curios:inventory")) {
            let curiosInventory = forgeCaps.getCompound("curios:inventory").getList("Curios", 10); // 10 é o tipo NBT para compostos

            // Itera sobre os curios para encontrar o slot "back"
            for (let i = 0; i < curiosInventory.size(); i++) {
                let curiosSlot = curiosInventory.getCompound(i);
                if (curiosSlot.getString("Identifier") === "back") {
                    let stacksHandler = curiosSlot.getCompound("StacksHandler").getCompound("Stacks");

                    // Verifica se há um item no slot "back"
                    let items = stacksHandler.getList("Items", 10); // 10 é o tipo NBT para compostos
                    if (items.size() > 0) {
                        let itemInBackSlot = items.getCompound(0);
                        console.log(`Item encontrado no slot "back": ${itemInBackSlot.getString("id")}`);
                        player.tell(`Item no slot "back": ${itemInBackSlot.getString("id")}`);
                    } else {
                        console.log('Nenhum item encontrado no slot "back".');
                        player.tell('Nenhum item encontrado no slot "back".');
                    }

                    break; // Saia do loop após encontrar o slot "back"
                }
            }
        } else {
            console.log('O jogador não possui o inventário do mod Curios.');
            player.tell('Você não possui o inventário do mod Curios.');
        }
    }
});



