GUI 菜单系统
EMC 高级商店基于统一的箱子 GUI 框架构建所有界面,支持分页、导航、筛选和 PAPI 占位符。
主菜单
使用 /emcshop 或 /es 或 /emcs 打开主菜单,展示所有已启用模块的图标入口。
- 每个模块图标可配置材质、名称、Lore
- 点击图标进入对应模块的子菜单
- 布局通过
menu.yml完全自定义 - 未启用的模块不显示在主菜单中
GUI 框架特性
分页导航
当物品/商品列表超出一页时自动启用分页:
- 上一页/下一页按钮
- 当前页码/总页数显示
- 支持快速跳转到首页/末页
筛选与排序
支持按多种条件筛选和排序:
| 排序方式 | 说明 |
|---|---|
| 时间排序 | 按上架/创建时间排序 |
| 价格排序 | 按价格升序/降序 |
| 名称排序 | 按物品名称排序 |
| 热门排序 | 按交易量排序 |
PAPI 占位符
所有 GUI 文本均支持 PlaceholderAPI 占位符解析:
- 菜单标题
- 物品 Lore
- 消息文本
- 支持任意已安装的 PAPI 扩展
例如在 Lore 中使用 %player_name%、%vault_eco_balance% 等。
菜单间跳转
- 所有子菜单提供返回主菜单按钮
- 支持跨模块快捷跳转
- 菜单间可传递参数(如从回收站跳转到官方商店查看同物品价格)
各模块菜单
| 模块 | 配置文件 | 主要界面 |
|---|---|---|
| 主菜单 | menu.yml | 所有模块入口 |
| 官方商店 | admin-shop-menu.yml | 分类浏览、购买/出售 |
| 全球市场 | global-market-menu.yml | 浏览、上架、我的上架、交易记录 |
| 拼团购 | group-buy-menu.yml | 拼团列表、详情、发起拼团 |
| 转盘 | spin-menu.yml | 转盘主界面、奖品预览、记录 |
| 抽奖 | lottery-menu.yml | 购买彩票、开奖记录、奖池 |
| 限时特卖 | flash-sale-menu.yml | 特卖商品、倒计时 |
| 拍卖行 | auction-menu.yml | 拍卖列表、出价、我的拍卖 |
| 自定义货币商城 | currency-shop-menu.yml | 货币分类选择、商品购买 |
| 每日商店 | daily-shop-menu.yml | 今日商品、刷新倒计时 |
| 黑市 | black-market-menu.yml | 神秘商品、开放倒计时 |
| 回收站 | recycle-menu.yml | 批量回收、回收记录 |
| 玩家商店 | player-shop-menu.yml | 商店管理、上架、搜索 |
| 求购悬赏 | wtb-menu.yml | 求购列表、发布、我的求购 |
| 优惠券 | coupon-menu.yml | 券包、使用、发券 |
| 收藏夹 | favorites-menu.yml | 收藏物品、关注商店 |
| 赠送 | gift-menu.yml | 赠送界面、赠送记录 |
| NPC 商店 | npc-shop-menu.yml | NPC 绑定管理 |
| 排行榜 | leaderboard-menu.yml | 各类排行展示 |
| 租赁 | rental-menu.yml | 租赁列表、续租 |
| 邮箱 | mailbox-menu.yml | 未领取物品、一键领取 |
| 交易日志 | trade-log-menu.yml | 交易记录查询 |
菜单配置化
每个菜单的以下属性均可通过 YAML 配置:
- 标题 — 支持颜色代码和 PAPI 占位符
- 大小 — 行数(1-6 行,即 9-54 格)
- 物品位置 — 每个按钮/图标在菜单中的位置
- 条件显示 — 根据权限/VIP 等级显示不同按钮
- 音效 — 点击时播放的音效
标准菜单元素
每个模块子菜单都包含以下标准元素:
- 返回主菜单按钮 — 固定位置
- 模块主页面 — 核心功能入口
- 分页导航 — 列表超出一页时自动分页
- 筛选/排序栏 — 按价格、名称、时间排序
- 个人信息栏 — 显示玩家余额、积分等
- 帮助按钮 — 展示模块使用说明