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 bir List ise, o zaman çift yönlü navigasyon desteklenir. Aksi takdirde, yalnızca ileri navigasyon desteklenir.

  • With an array of Components

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);