-
-
Notifications
You must be signed in to change notification settings - Fork 4
翻页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));
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();