Skip to content

翻页Gui

huanmeng_qwq edited this page Dec 29, 2024 · 4 revisions

默认翻页

ArrayList<Button> allButtons = new ArrayList<>();
List<ItemStack> items = IntStream.range(1, 64)
        .mapToObj(i -> new ItemStack(Material.values()[i]))
        .collect(Collectors.toList());
allButtons.addAll(Button.ofItemStacks(items));
GuiPage guiPage = new GuiPage(context.getPlayer(), allButtons, /*每页显示的数量*/27,/*使用预设的界面样式*/Slots.PATTERN_LINE_PAGE_DEFAULT);
guiPage.title("翻页");
guiPage.line(4);
// 使用默认的翻页样式: 将翻页按钮自动填充在界面的左下角和右下角,详情看下面的图
// `PageSettings` 也提供了更多方法支持更改相关的内容,当然你依然可以实现 `PageSetting` 接口来使用
guiPage.pageSetting(PageSettings.normal(guiPage));

Page

多个翻页

CustomGuiPage page = new CustomGuiPage(context.getPlayer());
page.line(5);
List<ItemStack> items = IntStream.range(1, 64)
        .mapToObj(i -> new ItemStack(Material.values()[i]))
        .collect(Collectors.toList());
ArrayList<Button> allButtons = new ArrayList<>(Button.ofItemStacks(items));
PageArea pageArea = page.pageArea(new PageArea().elementsPerPage(27).items(allButtons));
pageArea.pageSetting(PageSettings.normal(page, pageArea));
PageArea pageArea2 = page.pageArea(new PageArea().elementsPerPage(5).slots(Slots.range(29, 34)).items(allButtons));
Button pre = Button.of(player ->
        new ItemBuilder(Material.ARROW, "§a上一页2").build()
);
Button next = Button.of(player ->
        new ItemBuilder(Material.ARROW, "§a下一页2").build()
);
Slot page2PreSlot = Slot.ofGame(2, 5);
Slot page2NextSlot = Slot.ofGame(8, 5);
pageArea2.pageSetting(PageSettings.normal(page, pageArea2, pre, next, PageSlot.of(page2PreSlot), PageSlot.of(page2NextSlot)));
page.draw()
        .set(Slot.ofGame(3, 5), Button.of(new ItemBuilder(Material.RED_BED, "刷新Page1").build(), PlayerSimpleCancelUpdateAllInterface.class, p -> {
            Collections.shuffle(items);
            pageArea.items(Button.ofItemStacks(items));
        }))
        .set(Slot.ofGame(4, 5), Button.of(new ItemBuilder(Material.LIME_BED, "刷新Page2").build(), PlayerSimpleCancelUpdateAllInterface.class, p -> {
            Collections.shuffle(items);
            pageArea2.items(Button.ofItemStacks(items));
        }))
;
page.openGui();

PixPin_2024-12-28_18-45-39