#Placing a block after a `BlockEvents.drops` event

4 messages · Page 1 of 1 (latest)

west sapphire
#

Hello, i'd like to have a block that respawns when mined (infinite ore node).

This is what i have, the console log is triggered in the chat, however no block is being placed, how can i do that?

BlockEvents.drops((event) => {
    let id = event.block.getId();

    if (id == "kubejs:regenerating_iron_ore") {
        console.log("replacing block...");
        event
            .getLevel()
            .setBlockAndUpdate(
                event.block.getPos(),
                event.block.getBlockState(),
            );
    }
});
half mountainBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

west sapphire
#

Got it to work! https://discord.com/channels/303440391124942858/1468288974232748219
the trick is you have to set a delay

BlockEvents.drops((event) => {
    const {
        block,
        block: { pos, id, properties },
        server,
        level,
        player,
    } = event;

    if (id == "kubejs:regenerating_iron_ore") {
        server.scheduleInTicks(6, (scheduleEvent) => {
            block.set("kubejs:regenerating_iron_ore");
        });
    }
});
#

7 ticks seems to be perfect for create drills