Virtual Blok Perubahan

Virtual blok perubahan memungkinkan anda untuk membuatnya tampak seolah-olah blok telah berubah pada klien tanpa benar-benar mengubah setiap blok fisik di dunia.

Mengirimkan perubahan blok virtual ke klien itu semudah memanggil metode Viewer#sendBlockChange(int, int, int, BlockState). Anda perlu menetapkan koordinat blok yang ingin anda ubah, juga yang baru BlockState. Contoh ditunjukkan di bawah ini:

import org.spongepowered.api.block.BlockTypes;
import org.spongepowered.api.effect.Viewer;

viewer.sendBlockChange(0, 65, 0, BlockTypes.COMMAND_BLOCK.getDefaultState());

Ini akan membuatnya terlihat sebagaimana jika blok pada koordinat 0, 65, 0 telah berubah menjadi sebuah perintah blok. Tentunya, anda tidak akan dibatasi pada keadaan default blok, suatu BlockState diterima oleh metode sendBlockChange().

Selain melakukan spesifikasi tiga bilangan bulat untuk koordinat, kamu juga bisa melakukan spesifikasi sebuah Vector3i. sebuah contoh dari penggunaan :javadoc:`Viewer#sendBlockChange(Vector3i, BlockState)`metode ditunjukkan dibawah:

import org.spongepowered.math.vector.Vector3i;

Vector3i vector = new Vector3i(0, 65, 0);
viewer.sendBlockChange(vector, BlockTypes.COMMAND_BLOCK.getDefaultState());

Tip

If you wish to send a virtual block to all clients, you can now use BlockChangeFlags#NOTIFY_CLIENTS

Ulang Perubahan

Untuk mengubah suatu perubahan yang tekah kamu buat kepada klien pada lokasi tertentu. kamu bisa memanggil metode Viewer#resetBlockChange(int, int, int). sebagai contoh, untuk mengembalikan kerusakan dari contoh sebelumnya, kita bisa memanggil metode resetBlockChange() metode untuk melakukan spesifikasi koordinat dari sebelumnya:

viewer.resetBlockChange(0, 65, 0);

Catatan bahwa anda juga dapat menggunakan Vector3i di tempat tiga bilangan bulat dengan metode ini juga.