Interface Book

  • All Superinterfaces:
    Buildable<Book,​Book.Builder>, net.kyori.examination.Examinable

    @NonExtendable
    public interface Book
    extends Buildable<Book,​Book.Builder>, net.kyori.examination.Examinable
    Represents the in-game interface of a book.

    Components exceeding the text limit for a page will be truncated client-side and not moved automatically to the next page.

    Since:
    4.0.0
    See Also:
    Audience.openBook(Book)
    • Method Detail

      • book

        static @NonNull Book book​(@NonNull Component title,
                                  @NonNull Component author,
                                  @NonNull Collection<Component> pages)
        Creates a book.
        Parameters:
        title - the title
        author - the author
        pages - the collection of pages
        Returns:
        a book
        Since:
        4.0.0
      • book

        static @NonNull Book book​(@NonNull Component title,
                                  @NonNull Component author,
                                  @NonNull Component @NonNull ... pages)
        Creates a book.
        Parameters:
        title - the title
        author - the author
        pages - an array of pages
        Returns:
        a book
        Since:
        4.0.0
      • builder

        static @NonNull Book.Builder builder()
        Create a new builder that will create a Book.
        Returns:
        a builder
        Since:
        4.0.0
      • title

        @NonNull Component title()
        Gets the title.
        Returns:
        the title
        Since:
        4.0.0
      • title

        @Contract(value="_ -> new",
                  pure=true)
        @NonNull Book title​(@NonNull Component title)
        Changes the book's title.
        Parameters:
        title - the title
        Returns:
        a new book with modifications
        Since:
        4.0.0
      • author

        @NonNull Component author()
        Gets the author.
        Returns:
        the author
        Since:
        4.0.0
      • author

        @Contract(value="_ -> new",
                  pure=true)
        @NonNull Book author​(@NonNull Component author)
        Changes the book's author.
        Parameters:
        author - the author
        Returns:
        a new book with modifications
        Since:
        4.0.0
      • pages

        @Unmodifiable @NonNull List<Component> pages()
        Gets the list of pages.

        The returned collection will be unmodifiable.

        Returns:
        the list of pages
        Since:
        4.0.0
      • pages

        @Contract(value="_ -> new",
                  pure=true)
        default @NonNull Book pages​(@NonNull Component @NonNull ... pages)
        Returns an updated book with the provided pages.
        Parameters:
        pages - the pages to set
        Returns:
        a new book with modifications
        Since:
        4.0.0
      • pages

        @Contract(value="_ -> new",
                  pure=true)
        @NonNull Book pages​(@NonNull List<Component> pages)
        Returns an updated book with the provided pages.
        Parameters:
        pages - the pages to set
        Returns:
        a new book with modifications
        Since:
        4.0.0