EnderRealmFastGUI 文档
EnderRealmFastGUI 是一个简化 Minecraft 容器 UI(箱子、漏斗、熔炉等)创建的库,通过 Builder 模式和回调机制,让开发者专注于业务逻辑而非繁琐的事件处理。
核心特性
- Builder 模式:链式调用构建容器 UI,代码简洁易读
- 回调机制:通过 Lambda 表达式处理点击、关闭、拖拽等事件
- 细粒度权限:支持按 slot 控制可点击、可拿走、可放入、可移动
- 多容器支持:箱子、漏斗、熔炉、投掷器、酿造台等
- 自动监听器:无需手动注册事件监听器,库自动处理
文档结构
快速开始
添加依赖
kotlin
// build.gradle.kts
dependencies {
implementation(project(":EnderRealmFastGUI"))
}初始化
java
public class MyPlugin extends JavaPlugin {
@Override
public void onEnable() {
EnderRealmFastGUI.init(this);
}
}基本用法
java
import cn.enderrealm.fastgui.inventory.config.ContainerType;
import cn.enderrealm.fastgui.inventory.config.SlotPermission;
import cn.enderrealm.fastgui.inventory.core.InventoryGUI;
// 创建一个简单的商店 GUI
InventoryGUI gui = InventoryGUI.builder()
.type(ContainerType.CHEST)
.title("商店")
.rows(3)
.containerPermission(SlotPermission.READ_ONLY) // 容器区域只读
.playerInventoryPermission(SlotPermission.READ_ONLY) // 背包区域只读
// 商品(可交互)
.slot(10, new ItemStack(Material.DIAMOND), click -> {
buyItem(click.getPlayer(), "diamond");
}, SlotPermission.INTERACT_ONLY)
// 装饰(只读)
.slot(4, new ItemStack(Material.BLACK_STAINED_GLASS_PANE), SlotPermission.READ_ONLY)
.build();
// 打开给玩家
gui.open(player);权限系统
每个 slot 可以独立控制以下权限:
| 权限 | 说明 |
|---|---|
clickable | 是否可点击触发回调 |
takeable | 是否可拿走物品 |
placeable | 是否可放入物品 |
movable | 是否可移动位置(拖拽、交换) |
预设权限
| 预设 | clickable | takeable | placeable | movable |
|---|---|---|---|---|
READ_ONLY | false | false | false | false |
INTERACT_ONLY | true | false | false | false |
TAKE_ONLY | false | true | false | false |
PLACE_ONLY | false | false | true | false |
TAKE_AND_PLACE | false | true | true | false |
FULL_ACCESS | true | true | true | true |
依赖项
- Minecraft 服务器:Paper 1.21+
- Java 21+
许可证
GPL-3.0 License