📊 理解 YAML/本维基在本插件中,配置均使用 YAML 格式。理解 YAML 语法是自定义商店配置的基础。让我们利用插件的真实示例讲解语法吧。
基础格式
YAML 语法的基础格式为 键: 值,如:
YAML
debug: false规则:
- 键名大小写敏感。
- 冒号后必须有一个空格。
- 键值包含特殊字符时(如
:或&),请用英文引号将其包裹:prefix: "\&a\[UltimateShop]" - 当键值有英文单引号
'时,再用一个引号'或反斜杠\对其转义:message: "You can''t buy this item!"
层级与缩进
层级表示 YAML 中的成员归属关系。每个层级都有两个空格作为缩进。例如:
YAML
auto-save:
hide-message: false在这里:
auto-save为父键。hide-message为子键,意味着它只在自动保存部分的设置下有效。false为值,表示我们不会在自动保存时隐藏提示消息。
以较复杂的商店配置为例:
YAML
settings:
menu: 'example-shop-menu'
buy-more: true
shop-name: '方块商店'
hide-message: false
items:
A:
price-mode: CLASSIC_ALL
product-mode: CLASSIC_ALL
products:
1:
material: GRASS_BLOCK
amount: 1
buy-prices:
1:
economy-plugin: Vault
amount: '0.63'
placeholder: '{amount}$'1️⃣ 一级(顶级)有两个根键:
settingsitems
它们各自存在于配置的最顶部。这是商店配置,因此你可以在“商店”页面找到更完整的配置解释。里面的标题会标出所有可以填入这里的配置项。

同时也有更详细的说明。


2️⃣ 二级下的键:
menubuy-moreshop-namehide-message
这些都是settings的子键。
它们都是商店的设置。放在其他地方。
在 items 下:
A是表示商店类别或一组物品的子键。A表示商品的 ID 是A,所有其下的配置都只会对它生效。
YAML
items:
buy-prices: # 无效
1:
economy-plugin: Vault
amount: '0.63'
placeholder: '{amount}$'
A:
menu: 'example-shop-menu' ## 无效。
buy-more: true ## 无效。
shop-name: 'Blocks Shop' ## 无效。
hide-message: false ## 无效。
price-mode: CLASSIC_ALL ## 仅对 A 有效。
product-mode: CLASSIC_ALL ## 仅对 A 有效。
products: # 仅对 A 有效。
1:
material: GRASS_BLOCK
amount: 13️⃣ A -> 位于物品中的配置:
price-modeproduct-modeproductsbuy-prices- 等内容
都是A的子键,这些都只对 A 生效。且不应填到其他地方。

这是商品配置,你可以在“商品”章节浏览各个设置的详细信息。
yaml
items: # 有效。
B: # 有效。
products: # 有效。
1: # 有效。
material: APPLE ## 有效。
amount: 64 ## 有效。
give-actions: # 有效。
1: # 有效。
multi-once: true ## 有效。
type: message ## 有效。
message: 'eco give {player} {amount}' ## 有效。4️⃣ products 下的四级键:
1表示它是第一个定义的商品。位于buy-prices。1也表示第一个定义的价格组。- 你可以设置数量不限的价格和物品。所有选项都可以在“单条目”章节详细浏览。
5️⃣ products -> 1 下的五级键:
material: GRASS_BLOCK-> 物品类型。amount: 1-> 物品数量。
这里使用的是“物品格式”。
在 buy-prices -> 1 下:
economy-plugin: Vault-> 使用的经济类型。amount: '0.63'-> 价格。placeholder: '{amount}$'-> 价格展示样式。
这里使用的是“经济格式”和价格部分的变量选项。

结构树状图
txt
settings
│
├─ menu
├─ buy-more
├─ shop-name
└─ hide-message
items
└─ A
├─ price-mode
├─ product-mode
├─ products
│ └─ 1
│ ├─ material
│ └─ amount
└─ buy-prices
└─ 1
├─ economy-plugin
├─ amount
└─ placeholder列表
当一个键需要多个元素时,这种数据类型即为列表。
示例:
YAML
menu:
secret-shop-items:
- diamond_sword
- netherite_pickaxe
- enchanted_golden_apple每个 - 都必须在父键的基础上再缩进两个空格。
空值与默认值
空列表的格式如下:
YAML
menu:
secret-shop-items: [][] 表示空列表,插件则会使用默认设置。
这行配置可以安全删除。
SnowCutieOwO