Bücher

Eine BookView repräsentiert die Buch-Oberfläche im Client. Die BookView hat nichts mit dem dazugehörenden ItemStack zu tun und wird nur verwendet, um dem Spieler durch ein Buch Text anzuzeigen. Bitte beachte, dass BookViews nicht verändert werden können, da es nicht möglich ist dem Client zu sagen, er möge ein unsigniertes Buch öffnen.

Um eine BookView zu erstellen, müssen wir einfach einen BookView.Builder holen, der von der BookView#builder() Methode bereitgestellt wird. Mit Hilfe des Builders, können wir den Titel, den Autor und die Seiten für die BookView angeben. Anschließend können wir die Ansicht an einen Viewer schicken. Ein Beispiel hierfür könnte wie folgt aussehen:

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

Dies wird ein Buch im Client anzeigen, welches eine Seite enthält, dessen Inhalt wir in der BookView.Builder#addPage(Text) Methode angeben haben. Natürlich musst du nicht für jede Seite die du hinzufügen möchtest addPage(Text) aufrufen. Die BookView.Builder Klasse bietet die BookView.Builder#addPages(Collection<Text>) Methode an, der mehrere Texte übergeben werden können.

Die BookView.Builder Klasse biete zudem die BookView.Builder#insertPage(int, Text) und die dazugehörende BookView.Builder#insertPages(int, Collection<Text>) Methoden an, mit der an der angegebenen Stelle eine bzw. mehrere Seite eingefügt werden können.

Du kannst auch Seite von einer BookView entfernen, indem du entweder den Text der Seite oder die Seitenindex angibst, die du entfernen möchtest. Du musst nur eine der BookView.Builder#removePage(Text), BookView.Builder#removePage(int) oder BookView.Builder#removePages(Collection<Text>) Methoden aufrufen.