GUI 模板
自定义商店界面的布局和样式
模板概述
GUI 模板定义商店界面的布局、样式和交互元素。模板文件位于 plugins/AIOShop/templates/ 目录。
内置模板
| 模板名 | 说明 | 适用场景 |
|---|---|---|
general-store | 普通商店模板 | 基础商店,无限购 |
random-shop | 随机商店模板 | 带刷新功能的随机商店 |
compact | 紧凑模板 | 商品数量较少的商店 |
advanced-flexible | 高级灵活模板 | 复杂的多功能商店 |
模板结构
# 模板基本信息
name: "普通商店模板"
description: "适合基础商店"
category: "general"
# GUI 尺寸(9/18/27/36/45/54)
size: 54
# 标题(支持变量)
title: "&2&l%shop_name%"
# 商品展示位置(slot 编号)
item-slots: [10, 11, 12, 13, 14, 15, 16, 19, 20, 21, 22, 23, 24, 25]
# 空位显示
empty:
name: "&7空位"
material: GRAY_STAINED_GLASS_PANE
lore:
- "&f该位置当前没有商品"
# 已下架商品显示
unknown:
name: "&c商品已下架"
material: RED_STAINED_GLASS_PANE
lore:
- "&c该商品信息已失效"
# 商品 lore 模板
items-lore:
- "%description%"
- "%base_lore%"
- ""
- "%price_display%"
- "%limit_display%"
# 格式化配置
formats:
price:
buy_and_sell: "&7价格: &a买入 %buy_price% %buy_currency_name% &7| &c卖出 %sell_price%"
buy_only: "&7价格: &a买入 %buy_price% %buy_currency_name%"
sell_only: "&7价格: &c卖出 %sell_price% %sell_currency_name%"
limit:
limited: "&7限购: %bought%/%limit%"
unlimited: ""
# 自定义按钮
custom-items:
close:
name: "&c&l关闭"
material: BARRIER
slots: [49]
action: "CLOSE"
lore:
- "&7点击关闭商店"
商品位置配置
Minecraft 箱子 GUI 的 slot 编号从 0 开始:
行1: [ 0][ 1][ 2][ 3][ 4][ 5][ 6][ 7][ 8]
行2: [ 9][10][11][12][13][14][15][16][17]
行3: [18][19][20][21][22][23][24][25][26]
行4: [27][28][29][30][31][32][33][34][35]
行5: [36][37][38][39][40][41][42][43][44]
行6: [45][46][47][48][49][50][51][52][53]
示例:中间区域展示商品,边框装饰
# 商品展示在中间 4x7 区域
item-slots: [10, 11, 12, 13, 14, 15, 16,
19, 20, 21, 22, 23, 24, 25,
28, 29, 30, 31, 32, 33, 34,
37, 38, 39, 40, 41, 42, 43]
自定义按钮
可用的 action 类型
| Action | 说明 |
|---|---|
CLOSE | 关闭界面 |
PREV_PAGE | 上一页 |
NEXT_PAGE | 下一页 |
REFRESH | 刷新商店(随机商店) |
NULL | 无操作(装饰用) |
按钮配置示例
custom-items:
# 关闭按钮
close:
name: "&c&l关闭"
material: BARRIER
slots: [49]
action: "CLOSE"
lore:
- "&7点击关闭商店"
# 上一页
prev_page:
name: "&e上一页"
material: ARROW
slots: [45]
action: "PREV_PAGE"
lore:
- "&7点击查看上一页"
# 下一页
next_page:
name: "&e下一页"
material: ARROW
slots: [53]
action: "NEXT_PAGE"
lore:
- "&7点击查看下一页"
# 边框装饰
border:
name: " "
material: BLACK_STAINED_GLASS_PANE
slots: [0, 1, 2, 3, 5, 6, 7, 8, 9, 17, 18, 26, 27, 35, 36, 44]
action: "NULL"
# 商店信息
info:
name: "&e&l商店信息"
material: BOOK
slots: [4]
action: "NULL"
lore:
- "&7商店类型: &a普通商店"
- "&7特点: &f无限购限制"
Lore 变量
在 items-lore 中可使用以下变量:
| 变量 | 说明 |
|---|---|
%description% | 商品描述 |
%base_lore% | 物品原始 lore |
%price_display% | 格式化后的价格显示 |
%limit_display% | 格式化后的限购显示 |
%rarity% | 稀有度名称 |
在商店中使用模板
# 商店配置文件
display-name: "&a&l我的商店"
gui-template: "general-store" # 引用模板名(不含 .yml)
items:
# ...
创建自定义模板
- 复制一个现有模板文件
- 重命名为
my-template.yml - 修改配置内容
- 执行
/as reload - 在商店配置中使用
gui-template: "my-template"