Class PagedGUIBuilder<T>
java.lang.Object
top.magstar.framework.gui.utils.PagedGUIBuilder<T>
- Type Parameters:
T- 分页内容的数据类型
分页GUI构建器 - 提供流式API来配置分页GUI的各个方面
- Since:
- 1.0.0
- Version:
- 1.0.0
- Author:
- Berry_so
- See Also:
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription允许玩家背包交互allowPlayerInventory(boolean allow) 设置是否允许玩家背包交互自动计算内容区域(排除导航按钮和边框)border(org.bukkit.inventory.ItemStack item) 设置边框物品border(org.bukkit.Material material) 设置边框物品border(org.bukkit.Material material, SmartString name) 设置边框物品 - 使用SmartString名称buildChestGUI(GUIFactory factory, org.bukkit.plugin.Plugin instance, MagstarPlugin plugin) 构建基于箱子的分页GUI<P extends org.bukkit.plugin.Plugin & MagstarPlugin>
PagedGUI<T> buildChestGUI(GUIFactory factory, P instance) 构建基于箱子的分页GUIbuildPacketGUI(GUIFactory factory, org.bukkit.plugin.Plugin instance, MagstarPlugin plugin) 构建基于数据包的分页GUI<P extends org.bukkit.plugin.Plugin & MagstarPlugin>
PagedGUI<T> buildPacketGUI(GUIFactory factory, P instance) 构建基于数据包的分页GUI使用紧凑布局(5行)contentSlots(Integer... slots) 设置内容区域槽位contentSlots(List<Integer> slots) 设置内容区域槽位customFirstPageButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义首页按钮渲染器customLastPageButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义末页按钮渲染器customNextButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义下一页按钮渲染器customPageInfo(Function<PagedGUIBuilder.PageInfo, org.bukkit.inventory.ItemStack> renderer) 自定义页面信息渲染器customPreviousButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义上一页按钮渲染器使用默认6行布局fill(org.bukkit.inventory.ItemStack item) 设置填充物品fill(org.bukkit.Material material) 设置填充物品fill(org.bukkit.Material material, SmartString name) 设置填充物品 - 使用SmartString名称firstPageButton(int slot) 设置首页按钮槽位org.bukkit.inventory.ItemStack获取边框物品int[]获取内容区域槽位数组org.bukkit.inventory.ItemStack获取填充物品获取首页按钮渲染器int获取首页按钮槽位获取物品点击处理器获取物品渲染器getItems()获取物品列表int获取每页显示的物品数量获取末页按钮渲染器int获取末页按钮槽位获取下一页按钮渲染器int获取下一页按钮槽位Function<PagedGUIBuilder.PageInfo, org.bukkit.inventory.ItemStack> 获取页面信息渲染器int获取页面信息槽位获取上一页按钮渲染器int获取上一页按钮槽位intgetRows()获取GUI行数getTitle()获取GUI标题boolean检查是否允许玩家背包交互itemRenderer(Function<T, org.bukkit.inventory.ItemStack> renderer) 设置物品渲染器设置要显示的物品列表final PagedGUIBuilder<T> 设置要显示的物品列表itemsPerPage(int count) 设置每页显示的物品数量lastPageButton(int slot) 设置末页按钮槽位navigationButtons(int previous, int next, int info, int first, int last) 一次性设置所有导航按钮nextButton(int slot) 设置下一页按钮槽位onItemClick(BiConsumer<T, GUIClickEvent> handler) 设置物品点击处理器pageInfo(int slot) 设置页面信息槽位previousButton(int slot) 设置上一页按钮槽位renderWith(Function<T, ItemBuilder> builderFunction) 快速设置物品渲染器 - 使用ItemBuilderrows(int rows) 设置行数简单布局(只有上一页和下一页)设置标题title(SmartString title) 设置标题 - 支持SmartString
-
Constructor Details
-
PagedGUIBuilder
public PagedGUIBuilder()
-
-
Method Details
-
title
设置标题 - 支持SmartString- Parameters:
title- GUI标题- Returns:
- 当前构建器实例
-
title
-
rows
-
previousButton
设置上一页按钮槽位- Parameters:
slot- 槽位索引,-1表示不显示- Returns:
- 当前构建器实例
-
nextButton
设置下一页按钮槽位- Parameters:
slot- 槽位索引,-1表示不显示- Returns:
- 当前构建器实例
-
pageInfo
设置页面信息槽位- Parameters:
slot- 槽位索引,-1表示不显示- Returns:
- 当前构建器实例
-
firstPageButton
设置首页按钮槽位- Parameters:
slot- 槽位索引,-1表示不显示- Returns:
- 当前构建器实例
-
lastPageButton
设置末页按钮槽位- Parameters:
slot- 槽位索引,-1表示不显示- Returns:
- 当前构建器实例
-
defaultLayout
-
compactLayout
-
simpleLayout
-
contentSlots
设置内容区域槽位- Parameters:
slots- 槽位索引数组- Returns:
- 当前构建器实例
-
contentSlots
设置内容区域槽位- Parameters:
slots- 槽位索引列表- Returns:
- 当前构建器实例
-
autoContentArea
-
itemsPerPage
设置每页显示的物品数量- Parameters:
count- 每页物品数量- Returns:
- 当前构建器实例
-
items
-
items
设置要显示的物品列表- Parameters:
items- 物品数组- Returns:
- 当前构建器实例
-
itemRenderer
设置物品渲染器- Parameters:
renderer- 渲染器函数,接收数据对象返回ItemStack- Returns:
- 当前构建器实例
-
renderWith
快速设置物品渲染器 - 使用ItemBuilder- Parameters:
builderFunction- 构建器函数,接收数据对象返回ItemBuilder- Returns:
- 当前构建器实例
-
onItemClick
设置物品点击处理器- Parameters:
handler- 点击处理器,接收数据对象和点击事件- Returns:
- 当前构建器实例
-
customPreviousButton
public PagedGUIBuilder<T> customPreviousButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义上一页按钮渲染器- Parameters:
renderer- 渲染器函数,接收是否可用返回ItemStack- Returns:
- 当前构建器实例
-
customNextButton
public PagedGUIBuilder<T> customNextButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义下一页按钮渲染器- Parameters:
renderer- 渲染器函数,接收是否可用返回ItemStack- Returns:
- 当前构建器实例
-
customPageInfo
public PagedGUIBuilder<T> customPageInfo(Function<PagedGUIBuilder.PageInfo, org.bukkit.inventory.ItemStack> renderer) 自定义页面信息渲染器- Parameters:
renderer- 渲染器函数,接收页面信息返回ItemStack- Returns:
- 当前构建器实例
-
customFirstPageButton
public PagedGUIBuilder<T> customFirstPageButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义首页按钮渲染器- Parameters:
renderer- 渲染器函数,接收是否可用返回ItemStack- Returns:
- 当前构建器实例
-
customLastPageButton
public PagedGUIBuilder<T> customLastPageButton(Function<Boolean, org.bukkit.inventory.ItemStack> renderer) 自定义末页按钮渲染器- Parameters:
renderer- 渲染器函数,接收是否可用返回ItemStack- Returns:
- 当前构建器实例
-
allowPlayerInventory
-
allowPlayerInventory
设置是否允许玩家背包交互- Parameters:
allow- true表示允许,false表示禁止- Returns:
- 当前构建器实例
-
fill
设置填充物品 - 使用SmartString名称- Parameters:
material- 填充材料name- 物品显示名称- Returns:
- 当前构建器实例
-
fill
设置填充物品- Parameters:
material- 填充材料- Returns:
- 当前构建器实例
-
fill
设置填充物品- Parameters:
item- 填充物品- Returns:
- 当前构建器实例
-
border
设置边框物品 - 使用SmartString名称- Parameters:
material- 边框材料name- 物品显示名称- Returns:
- 当前构建器实例
-
border
设置边框物品- Parameters:
material- 边框材料- Returns:
- 当前构建器实例
-
border
设置边框物品- Parameters:
item- 边框物品- Returns:
- 当前构建器实例
-
buildChestGUI
public <P extends org.bukkit.plugin.Plugin & MagstarPlugin> PagedGUI<T> buildChestGUI(GUIFactory factory, P instance) 构建基于箱子的分页GUI- Type Parameters:
P- 插件类型- Parameters:
factory- GUI工厂instance- 插件实例(需同时实现Plugin和MagstarPlugin)- Returns:
- 创建的分页GUI实例
-
buildPacketGUI
public <P extends org.bukkit.plugin.Plugin & MagstarPlugin> PagedGUI<T> buildPacketGUI(GUIFactory factory, P instance) 构建基于数据包的分页GUI- Type Parameters:
P- 插件类型- Parameters:
factory- GUI工厂instance- 插件实例(需同时实现Plugin和MagstarPlugin)- Returns:
- 创建的分页GUI实例
-
buildPacketGUI
public PagedGUI<T> buildPacketGUI(GUIFactory factory, org.bukkit.plugin.Plugin instance, MagstarPlugin plugin) 构建基于数据包的分页GUI- Parameters:
factory- GUI工厂instance- 插件实例plugin- Magstar插件实例- Returns:
- 创建的分页GUI实例
-
buildChestGUI
public PagedGUI<T> buildChestGUI(GUIFactory factory, org.bukkit.plugin.Plugin instance, MagstarPlugin plugin) 构建基于箱子的分页GUI- Parameters:
factory- GUI工厂instance- 插件实例plugin- Magstar插件实例- Returns:
- 创建的分页GUI实例
-
getTitle
-
getRows
public int getRows()获取GUI行数- Returns:
- GUI行数
-
getPreviousButtonSlot
public int getPreviousButtonSlot()获取上一页按钮槽位- Returns:
- 上一页按钮槽位
-
getNextButtonSlot
public int getNextButtonSlot()获取下一页按钮槽位- Returns:
- 下一页按钮槽位
-
getPageInfoSlot
public int getPageInfoSlot()获取页面信息槽位- Returns:
- 页面信息槽位
-
getFirstPageSlot
public int getFirstPageSlot()获取首页按钮槽位- Returns:
- 首页按钮槽位
-
getLastPageSlot
public int getLastPageSlot()获取末页按钮槽位- Returns:
- 末页按钮槽位
-
getContentSlots
public int[] getContentSlots()获取内容区域槽位数组- Returns:
- 内容区域槽位数组
-
getItemsPerPage
public int getItemsPerPage()获取每页显示的物品数量- Returns:
- 每页物品数量
-
getItems
-
getItemRenderer
-
getItemClickHandler
-
getPreviousButtonRenderer
-
getNextButtonRenderer
-
getPageInfoRenderer
获取页面信息渲染器- Returns:
- 页面信息渲染器函数
-
getFirstPageButtonRenderer
-
getLastPageButtonRenderer
-
isAllowPlayerInventory
public boolean isAllowPlayerInventory()检查是否允许玩家背包交互- Returns:
- true表示允许,false表示禁止
-
getFillItem
public org.bukkit.inventory.ItemStack getFillItem()获取填充物品- Returns:
- 填充物品
-
getBorderItem
public org.bukkit.inventory.ItemStack getBorderItem()获取边框物品- Returns:
- 边框物品
-