header
KubeJS + CC: Tweaked avatar

KubeJS + CC: Tweaked

Credits go to Amygdaloideae (Prunoideae on GitHub). Original mod here
Big thanks to richie3366 for helping to make the port work!
Mod icon made by FooterMan16

Suggestion? Bug report? Go here: https://github.com/wolfieboy09/KubeJS-CC-Tweaked/issues/ (I will see it a lot faster then CurseForge comments)

Go to Modrinth for a better experience!

supported versions required sides

Available on both Curseforge and Modrinth

CurseForge: CurseForge Downloads
Modrinth: Modrinth Downloads

Adds support for KubeJS to add peripherals to any block.

GO VISIT THE WIKI HERE! All things are there!

Example of methods you could add to furnaces:

// priority: 0
// The following code was last updated: April 30th 2024

// Visit the wiki for more info - https://kubejs.com/
ComputerCraftEvents.peripheral(event => {
    // First Param: peripheral type
    // Second Param: What block it goes to
    // Note: you can use regex for the second param
    
    event.registerPeripheral("furnace", "minecraft:furnace")
        // This limits the method to 1 call/tick,
        // as the method is scheduled on main thread.
        // The main thread is synced with the block
        .mainThreadMethod("burnTime", (container, direction, arguments) => {
            // This custom method returns the current
            // remaining burntime the furnace has.
            return container.entityData.getInt("BurnTime")
        })
        .mainThreadMethod("cookingProgress", (container) => {
            // This custom method returns the percentage
            // of the current cooking process going on.
            // A progress of 0 returned during two consecutive
            // ticks means that there is no cooking happening.
            let data = container.entityData
            let cookTime = data.getInt('CookTime')
            let cookTimeTotal = data.getInt('CookTimeTotal')
            if (!cookTimeTotal) return 0;
            return (cookTime / cookTimeTotal) * 100
        })


        // This has no limit on calling
        // however, the method can't access most of the in-world data.
        // For example, it couldn't access the NBT of a tile entity
        .method("say_hi", (container, direction, arguments) => {
            container.up.set("diamond_block")
            return "hi, here's your diamond block"
        })
})