Layanan Paginasi
Tip
Untuk dasar pengertian dari layanan, pastikan pertama anda membaca :doc:'../services'.
The PaginationService acts as a way to split up content into discrete pages. The service provides a PaginationList.Builder with which you can specify attributes such as title, contents, header, and padding. This is a Sponge-specific feature.
Pagination Pembangun Daftar
Memperoleh turunan pertama dari sebuah "PaginationList.Builder":
import org.spongepowered.api.service.pagination.PaginationList;
PaginationList.Builder builder = PaginationList.builder();
Ada dua cara yang berbeda untuk menentukan konten dari daftar yang diberi halaman:
With an
Iterable<Component>
import net.kyori.adventure.text.Component; import java.util.ArrayList; import java.util.List; List<Component> contents = new ArrayList<>(); contents.add(Component.text("Item 1")); contents.add(Component.text("Item 2")); contents.add(Component.text("Item 3")); builder.contents(contents);Catatan
Jika "Iterable" adalah sebuah "List", kemudian navigasi dua arah didukung. Jika tidak, hanya akan meneruskan navigasi yang didukung.
With an array of
Component
s
builder.contents(Component.text("Item 1"), Component.text("Item 2"), Component.text("Item 3"));
Anda juga dapat menentukan berbagai komponen lain dari daftar paginasi, seperti judul, header, footer, dan padding. Diagram di bawah ini menunjukkan komponen yang ditampilkan di masing-masing bagian dari daftar paginasi. Dalam diagram berikut, padding string ditampilkan sebagai huruf p.
pppppppppppppppppppppppp Title pppppppppppppppppppppppp
Header
Item 1
Item 2
Item 3
...
ppppppppppppppppppppppp < 2/3 > ppppppppppppppppppppppp
Footer
Untuk mencapai output sebelumnya, kita bisa menggunakan pola pembangun berikut ini:
builder.title(Component.text("Title"))
.contents(Component.text("Item 1"), Component.text("Item 2"), Component.text("Item 3"))
.header(Component.text("Header"))
.footer(Component.text("Footer"))
.padding(Component.text("p"));
Catatan
Dengan pengecualian isi, semua komponen dari daftar yang diberi halaman adalah opsional. Namun, Judul sangat direkomendasikan.
Finally, to send the paginated list to a player or another Audience-like object, use PaginationList.Builder#sendTo(Audience).
And that's it! To recap, a fully functional paginated list could be generated and sent to a previously defined
msgReceiver
using the following code:
PaginationList.builder()
.title(Component.text("Title"))
.contents(Component.text("Item 1"), Component.text("Item 2"), Component.text("Item 3"))
.header(Component.text("Header"))
.footer(Component.text("Footer"))
.padding(Component.text("p"))
.sendTo(msgReceiver);