Views d’un Livre

Un BookView est la représentation du GUI du livre sur le client. Le BookView n’est pas associé à un ItemStack et est seulement pour affichager un Text à travers un livre au joueur. Notez qu’un BookView est en lecture seule, puisqu’il est impossible de dire au client d’ouvrir un livre non signé.

Pour créer un BookView, nous devons simplement obtenir un BookView.Builder, qui est fournit à travers la méthode BookView#builder(). En utilisant le builder, nous pouvons spécifier le titre, l’auteur et les pages du BookView. Ensuite pour utiliser la vue, nous devons l’envoyer à un Viewer. Un exemple de ceci est illustré ci-dessous :

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);

Ceci va afficher un livre au client avec une seule page qui contient le texte spécifié dans la méthode BookView.Builder#addPage(Text). Bien sûr, vous ne devez pas appeler la méthode addPage(Text) pour chaque page que vous souhaitez ajouter. La classe BookView.Builder fournit une méthode BookView.Builder#addPages(Collection<Text>) qui accepte plusieurs Texts.

La classe BookView.Builder fournit aussi les méthodes BookView.Builder#insertPage(int, Text) et BookView.Builder#insertPages(int, Collection<Text>) pour insérer une ou plusieurs pages à un index donné.

Vous pouvez également supprimer des pages d’un BookView en fournissant soit le Text de la page, ou en spécifiant l’index de la page que vous souhaitez supprimer. Vous devez simplement utilisant la méthode correspondante BookView.Builder#removePage(Text), BookView.Builder#removePage(int), ou BookView.Builder#removePages(Collection<Text>).