const woods = [
    { log: 'minecraft:oak_log', planks: 'minecraft:oak_planks' },
{ log: 'minecraft:birch_log', planks: 'minecraft:birch_planks' },
{ log: 'minecraft:jungle_log', planks: 'minecraft:jungle_planks' },
{ log: 'minecraft:spruce_log', planks: 'minecraft:spruce_planks' },
{ log: 'minecraft:acacia_log', planks: 'minecraft:acacia_planks' },
{ log: 'minecraft:dark_oak_log', planks: 'minecraft:dark_oak_planks' },
{ log: 'minecraft:mangrove_log', planks: 'minecraft:mangrove_planks' },
{ log: 'minecraft:cherry_log', planks: 'minecraft:cherry_planks' },
{ log: 'botania:livingwood_log', planks: 'botania:livingwood_planks' },
{ log: 'botania:dreamwood_log', planks: 'botania:dreamwood_planks' },
{ log: 'vampirism:dark_spruce_log', planks: 'vampirism:dark_spruce_planks' },
{ log: 'vampirism:cursed_spruce_log', planks: 'vampirism:cursed_spruce_planks' },
{ log: 'werewolves:jacaranda_log', planks: 'werewolves:jacaranda_planks' },
{ log: 'werewolves:magic_log', planks: 'werewolves:magic_planks' },
{ log: 'minecraft:crimson_stem', planks: 'minecraft:crimson_planks' },
{ log: 'minecraft:warped_stem', planks: 'minecraft:warped_planks' }
]

ServerEvents.recipes(event => {
    woods.forEach(wood => {
        event.custom({
            type: 'minecraft:crafting_shapeless',
            ingredients: [
                { item: wood.log },
                Item.of('kubejs:saw').withNBT({ Damage: 0 }).toJson()
            ],
            result: {
                item: wood.planks,
                count: 3
            }
        }).id(`kubejs:${wood.planks.replace(':', '_')}_from_log`)
    })
})

ItemEvents.crafted(event => {
    if (!event.recipe.id.toString().startsWith('kubejs:')) return

        const grid = event.inventory
        for (let i = 0; i < grid.size(); i++) {
            const stack = grid.get(i)
            if (stack && stack.item.id === 'kubejs:saw') {
                stack.damage(1, event.player)
                break
            }
        }
})
