Vistas del Libro

Una BookView es la representación del GUI del libro del cliente. La BookView no está asociada con un ItemStack real y es solo para mostrar :javadoc:`Texto` a través de un libro del jugador. Tenga en cuenta que un BookView es solo de lectura, debido a que es imposible decirle al cliente que abra un libro sin firmar.

Para crear una BookView, simplemente necesitamos obtener un BookView.Builder, el cual es proporcionado a través del método BookView#builder(). Utilizando el constructor, podemos especificar el título, el autor y las páginas de la BookView. Entonces para utilizar la vista, tenemos que enviarla a un Viewer. Un ejemplo de esto es mostrado a continuación:

import org.spongepowered.api.effect.Viewer;
import org.spongepowered.api.text.BookView;
import org.spongepowered.api.text.Text;

BookView bookView = BookView.builder()
        .title(Text.of("Story Mode"))
        .author(Text.of("Notch"))
        .addPage(Text.of("There once was a Steve..."))
        .build();
viewer.sendBookView(bookView);

Esto mostrará un libro del cliente con una sola página que contiene el texto especificado en el método BookView.Builder#addPage(Text). Por supuesto, no tiene que llamar a addPage(Text) por cada página que desee agregar. La clase BookView.Builder proporciona un método BookView.Builder#addPages(Collection<Text>) que acepta múltiples Texts.

La clase BookView.Builder también proporciona el BookView.Builder#insertPage(int, Text) y los correspondientes métodos BookView.Builder#insertPages(int, Collection<Text>) para insertar un página o varias página a cualquier índice dado.

También puede eliminar páginas de una BookView ya sea proporcionando el Texto de la página o especificando el índice de la página que desea eliminar. Simplemente necesita utilizar los métodos correspondiente BookView.Builder#removePage(Text), BookView.Builder#removePage(int) o BookView.Builder#removePages(Collection<Text>).