BlockEvents.rightClicked(e => {
    const block = e.block.id
    const player = e.player
    const item = e.item.id
    const creative = player.isCreative()

	if (item.startsWith('tconstruct:') && stack.nbt?.tic_broken) {
	e.cancel()}

    // oil carpet + sponge
    if (block === 'kubejs:oil_carpet' && item === 'minecraft:sponge') e.cancel()

    // sculk family
    if (
        ['minecraft:sculk', 'minecraft:sculk_catalyst', 'minecraft:sculk_vein',
            'minecraft:sculk_sensor', 'minecraft:sculk_shrieker', 'kubejs:sculk_tendrils',
            'kubejs:sculk_shroom', 'kubejs:sculk_slab', 'kubejs:sculk_stairs'
        ].includes(block)
    ) {
        if (!creative) e.cancel()
    }
    if (block === 'minecraft:spawner' &&
        item !== 'tiab:time_in_a_bottle' &&
        !creative) e.cancel()

    // hyper block + enchanted book
    if (block === 'kubejs:hyper_experience_block' &&
        item === 'minecraft:enchanted_book' &&
        creative) e.cancel()

    // supplementaries cannon
    if (block === 'supplementaries:cannon') e.cancel()

    // coolers + soap
    if (e.block.hasTag('refurbished_furniture:coolers') &&
        item === 'supplementaries:soap') e.cancel()
})

ItemEvents.rightClicked(e => {
    if (item === 'minecraft:lava_bucket' && e.item.count > 1) e.cancel()
    if (item === 'botania:crafting_halo') e.cancel()
    if (item === 'botania:auto_crafting_halo') e.cancel()
    if (item === 'tconstruct:magma_bucket') e.cancel()
})