模板概述

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:
  # ...

创建自定义模板

  1. 复制一个现有模板文件
  2. 重命名为 my-template.yml
  3. 修改配置内容
  4. 执行 /as reload
  5. 在商店配置中使用 gui-template: "my-template"