Sayfalandırma hizmeti
Tüyo
Hizmetlerin ne olduğuna dair temel bir kavrama için, önce şurayı :doc:`../services`okuyun.
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.
Sayfalandırma Liste Oluşturucu
Önce bir PaginationList.Builder
örneğini edinin:
import org.spongepowered.api.service.pagination.PaginationList;
PaginationList.Builder builder = PaginationList.builder();
Sayfalık listenin içeriğini belirlemek için iki farklı yol vardır:
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);Not
Iterable
birList
ise, o zaman çift yönlü navigasyon desteklenir. Aksi takdirde, yalnızca ileri navigasyon desteklenir.
With an array of
Component
s
builder.contents(Component.text("Item 1"), Component.text("Item 2"), Component.text("Item 3"));
Ayrıca, başlık, üstbilgi, altbilgi ve dolgu gibi sayfalandırılmış bir listenin diğer bileşenlerini de belirtebilirsiniz. Aşağıdaki şema, sayfa sıralı listesinin her bölümünde hangi bileşen görüntülendiğini gösterir. Aşağıdaki diyagramda dolgu dize ‘p’ harfi ile gösterilir.
pppppppppppppppppppppppp Title pppppppppppppppppppppppp
Header
Item 1
Item 2
Item 3
...
ppppppppppppppppppppppp < 2/3 > ppppppppppppppppppppppp
Footer
Önceki çıktıyı elde etmek için aşağıdaki oluşturucu desenini kullanabiliriz:
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"));
Not
İçerikler haricinde, sayfalandırılmış listenin tüm bileşenleri isteğe bağlıdır. Bununla birlikte, bir başlık şiddetle tavsiye edilir.
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);