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

        @NotNull
        static @NotNull Book book​(@NotNull
                                  @NotNull Component title,
                                  @NotNull
                                  @NotNull Component author,
                                  @NotNull
                                  @NotNull 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

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

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

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

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

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

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

        @NotNull
        @Unmodifiable @NotNull 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)
        @NotNull
        default @NotNull Book pages​(@NotNull
                                    @NotNull Component @NotNull ... 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)
        @NotNull
        @NotNull Book pages​(@NotNull
                            @NotNull 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