Interface BookMeta

All Superinterfaces:
Book, Buildable<Book,Book.Builder>, Cloneable, ConfigurationSerializable, net.kyori.examination.Examinable, ItemMeta, PersistentDataHolder

public interface BookMeta extends ItemMeta, Book
Represents a book (Material.WRITABLE_BOOK or Material.WRITTEN_BOOK) that can have a title, an author, and pages.
  • Method Details

    • hasTitle

      boolean hasTitle()
      Checks for the existence of a title in the book.
      Returns:
      true if the book has a title
    • getTitle

      Gets the title of the book.

      Plugins should check that hasTitle() returns true before calling this method.

      Returns:
      the title of the book
    • setTitle

      boolean setTitle(@Nullable @Nullable String title)
      Sets the title of the book.

      Limited to 32 characters. Removes title when given null.

      Parameters:
      title - the title to set
      Returns:
      true if the title was successfully set
    • hasAuthor

      boolean hasAuthor()
      Checks for the existence of an author in the book.
      Returns:
      true if the book has an author
    • getAuthor

      Gets the author of the book.

      Plugins should check that hasAuthor() returns true before calling this method.

      Returns:
      the author of the book
    • setAuthor

      void setAuthor(@Nullable @Nullable String author)
      Sets the author of the book. Removes author when given null.
      Parameters:
      author - the author to set
    • hasGeneration

      boolean hasGeneration()
      Checks for the existence of generation level in the book.
      Returns:
      true if the book has a generation level
    • getGeneration

      Gets the generation of the book.

      Plugins should check that hasGeneration() returns true before calling this method.

      Returns:
      the generation of the book
    • setGeneration

      void setGeneration(@Nullable @Nullable BookMeta.Generation generation)
      Sets the generation of the book. Removes generation when given null.
      Parameters:
      generation - the generation to set
    • hasPages

      boolean hasPages()
      Checks for the existence of pages in the book.
      Returns:
      true if the book has pages
    • title

      Gets the title of the book.

      Plugins should check that hasTitle() returns true before calling this method.

      Specified by:
      title in interface Book
      Returns:
      the title of the book
    • title

      @Contract(value="_ -> this", pure=false) @NotNull @NotNull BookMeta title(@Nullable Component title)
      Sets the title of the book.

      Limited to 32 characters. Removes title when given null.

      Specified by:
      title in interface Book
      Parameters:
      title - the title to set
      Returns:
      the same BookMeta instance
    • author

      Gets the author of the book.

      Plugins should check that hasAuthor() returns true before calling this method.

      Specified by:
      author in interface Book
      Returns:
      the author of the book
    • author

      @Contract(value="_ -> this", pure=false) @NotNull @NotNull BookMeta author(@Nullable Component author)
      Sets the author of the book. Removes author when given null.
      Specified by:
      author in interface Book
      Parameters:
      author - the author to set
      Returns:
      the same BookMeta instance
    • page

      @NotNull Component page(int page)
      Gets the specified page in the book. The page must exist.

      Pages are 1-indexed.

      Parameters:
      page - the page number to get, in range [1, getPageCount()]
      Returns:
      the page from the book
    • page

      void page(int page, @NotNull Component data)
      Sets the specified page in the book. Pages of the book must be contiguous.

      The data can be up to 256 characters in length, additional characters are truncated.

      Pages are 1-indexed.

      Parameters:
      page - the page number to set, in range [1, getPageCount()]
      data - the data to set for that page
    • addPages

      void addPages(@NotNull Component @NotNull ... pages)
      Adds new pages to the end of the book. Up to a maximum of 50 pages with 256 characters per page.
      Parameters:
      pages - A list of strings, each being a page
    • toBuilder

      Description copied from interface: net.kyori.adventure.inventory.Book
      Create a new builder initialized with the attributes of this book.
      Specified by:
      toBuilder in interface Book
      Specified by:
      toBuilder in interface Buildable<Book,Book.Builder>
      Returns:
      the builder
    • getPage

      @NotNull @Deprecated @NotNull String getPage(int page)
      Deprecated.
      in favour of page(int)
      Gets the specified page in the book. The given page must exist.

      Pages are 1-indexed.

      Parameters:
      page - the page number to get, in range [1, getPageCount()]
      Returns:
      the page from the book
    • setPage

      @Deprecated void setPage(int page, @NotNull @NotNull String data)
      Sets the specified page in the book. Pages of the book must be contiguous.

      The data can be up to 256 characters in length, additional characters are truncated.

      Pages are 1-indexed.

      Parameters:
      page - the page number to set, in range [1, getPageCount()]
      data - the data to set for that page
    • getPages

      Deprecated.
      in favour of Book.pages()
      Gets all the pages in the book.
      Returns:
      list of all the pages in the book
    • setPages

      @Deprecated void setPages(@NotNull @NotNull List<String> pages)
      Deprecated.
      in favour of Book.pages(List)
      Clears the existing book pages, and sets the book to use the provided pages. Maximum 100 pages with 256 characters per page.
      Parameters:
      pages - A list of pages to set the book to use
    • setPages

      @Deprecated void setPages(@NotNull @NotNull String... pages)
      Clears the existing book pages, and sets the book to use the provided pages. Maximum 50 pages with 256 characters per page.
      Parameters:
      pages - A list of strings, each being a page
    • addPage

      @Deprecated void addPage(@NotNull @NotNull String... pages)
      Adds new pages to the end of the book. Up to a maximum of 50 pages with 256 characters per page.
      Parameters:
      pages - A list of strings, each being a page
    • getPageCount

      int getPageCount()
      Gets the number of pages in the book.
      Returns:
      the number of pages in the book
    • clone

      Specified by:
      clone in interface ItemMeta
    • spigot