KeineAhnung4u / Move Blocks

// ==UserScript==
// @name         Move Blocks
// @namespace    https://openuserjs.org/user/KeineAhnung4u
// @version      1.0
// @description  Allows users to move blocks
// @author       KeineAhnung4u
// @match        https://craftnite.io/*
// @run-at       document-start
// @license      MIT
// @copyright 2025, KeineAhnung4u (https://openuserjs.org/users/KeineAhnung4u)
// ==/UserScript==


// Koordinatları iç pozisyona dönüştüren fonksiyon
function coordsToInsidePos(worldCoords, chunkCoords) {
    const [chunkX, chunkY, chunkZ] = chunkCoords;

    const x = Math.floor(worldCoords.x / 5) - chunkX * 32;
    const y = Math.floor(worldCoords.y / 5) - chunkY * 32;
    const z = Math.floor(worldCoords.z / 5) - chunkZ * 32;

    const insidePos = x + y * 32 + z * 32 * 32;

    return insidePos;
}

// Blok ekleme fonksiyonu
function addBlock(x, y, z, blockId) {
    let pkt = new a234();
    pkt.i = Math.floor(x / 160);
    pkt.e = Math.floor(y / 160);
    pkt.o = Math.floor(z / 160);
    pkt.v = coordsToInsidePos({ x: x, y: y, z: z }, [pkt.i, pkt.e, pkt.o]);
    pkt.u = blockId;

    G.socket.send(pkt.a614());
}

// Blokların ID'leri
const stoneBlockId = 256;
const airBlockId = 0;
const flowerIds = [
    9729, // Blue Orchid
    9733, // Tulip Orange
    9734, // Tulip White
    9735, // Tulip Pink
    9731, // Houstonia
    9732  // Tulip Red
];

// Rastgele çiçek ID'si seçen fonksiyon
function getRandomFlowerId() {
    const randomIndex = Math.floor(Math.random() * flowerIds.length);
    return flowerIds[randomIndex];
}

// Blokları hareket ettiren fonksiyon
function simulateMovingStoneBlock() {
    // Bulunduğunuz koordinatları her seferinde yeniden elde edin
    const currentPosition = GAME.a865.player.position.clone();
    let distance = 0;
    let goingForward = true;
    const maxDistance = 10; // İleriye gitmek için maksimum mesafe
    const intervalTime = 200; // 200ms aralık

    function moveBlock() {
        // Önceki bloğu ve çiçeği hava bloğuna çevir
        const prevX = currentPosition.x + distance * 5;
        addBlock(prevX, currentPosition.y, currentPosition.z, airBlockId);
        addBlock(prevX, currentPosition.y + 1, currentPosition.z, airBlockId);

        // Taş bloğunu ileri veya geri hareket ettir
        if (goingForward) {
            distance++;
        } else {
            distance--;
        }

        // Yeni bloğun konumunu ayarla
        const newX = currentPosition.x + distance * 5;
        addBlock(newX, currentPosition.y, currentPosition.z, stoneBlockId);
        addBlock(newX, currentPosition.y + 1, currentPosition.z, getRandomFlowerId());

        // 10 blok ileriye gittikten sonra geri gelmeye başla
        if (distance === maxDistance) {
            goingForward = false;
        }

        // Başlangıç noktasına geri döndüğünde ileri gitmeye başla
        if (!goingForward && distance === 0) {
            goingForward = true;
        }
    }

    // 200ms aralıklarla hareket ettir
    setInterval(moveBlock, intervalTime);
}

// 0 tuşuna basıldığında hareket ettir
document.addEventListener('keydown', function(event) {
    if (event.key === '0') {
        simulateMovingStoneBlock();
    }
});

console.log('Press 0 to start moving the stone block with a random flower.');