跳到主要内容

配置项

ID

所有物品都应该有一个ID,如下格式:

物品ID:
# 具体的配置项, 以物品材质为例
material: STONE

材质

即,物品是石头还是木头还是钻石剑

物品1:
# 这个物品是石头
material: STONE
物品2:
# 这个物品是钻石
material: DIAMOND

ID都有哪些,见下方链接

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html

如果你看着 ID 不知道它对应什么物品。。。

一般来讲,你可以在游戏中同时按下 F3+H,启用高级显示框,这样物品下方就会出现对应的ID。

如上图所示,minecraft:stone 对应 STONE

对于 mod 物品,前缀不能省略。

比如一个名称为mod:test的物品,对应的 ID 应为 MOD_TEST

但是啊但是,你有没有看上面啊?

/ni save是万物起源。别搁这儿看ID了,保存一下什么都有了,看个锤子看。

物品名

具体配置如下

有名字的铁剑:
material: IRON_SWORD
name: 我有名字

物品Lore

具体配置如下

有Lore的铁剑:
material: IRON_SWORD
lore:
- 我有lore
- 我真有lore
- 信我

你可以通过换行符\n换行, 在一行中书写多行lore

值得一提的是, 在yaml语法中, 双引号包裹的"\n"才代表换行符

单引号包裹的'\n'只代表一段形似\n的字符

例:

有Lore的铁剑:
material: IRON_SWORD
lore:
- "我有lore\n我真有lore\n信我"

子ID/损伤值

在 1.12.2 及以下的版本中,某些物品存在“子ID”。

比如 WOOL 是白色羊毛,而子ID为 1 的 WOOL 是橙色羊毛。

对应配置方法如下

白色羊毛:
material: WOOL
橙色羊毛:
material: WOOL
# 子ID为1
damage: 1

而对于有耐久的物品,damage对应损伤值,即,物品消耗了几点耐久。

铁剑:
material: IRON_SWORD
用了一下的铁剑:
material: IRON_SWORD
# 消耗了1点耐久
damage: 1

CustomModelData

对于 1.14+ 的服务器,物品有了一个新的属性,CustomModelData。

一般人们用它搭配材质包制作自定义材质物品。

对应配置方法如下

铁剑:
material: IRON_SWORD
# CustomModelData 为 1
custommodeldata: 1

附魔

附魔名称列表,应前往以下链接查看

https://hub.spigotmc.org/javadocs/spigot/org/bukkit/enchantments/Enchantment.html

具体配置方法如下

有附魔的铁剑:
material: IRON_SWORD
enchantments:
# 锋利5
DAMAGE_ALL: 5

啥?你说全是英文你根本看不懂哪个对哪个?

/ni save干什么用的

无法破坏

具体配置如下

无法破坏的铁剑:
material: IRON_SWORD
unbreakable: true

隐藏属性

有的物品明明无法破坏,物品信息里却看不到。

有的物品明明有附魔,物品信息里却看不到。

具体配置方法如下

啥都看不到的铁剑:
material: IRON_SWORD
hideflags:
# 隐藏物品属性
- HIDE_ATTRIBUTES
# 隐藏物品可破坏方块
- HIDE_DESTROYS
# 隐藏物品染料颜色
- HIDE_DYE
# 隐藏物品附魔
- HIDE_ENCHANTS
# 隐藏物品可放置方块
- HIDE_PLACED_ON
# 隐藏物品药水效果
- HIDE_POTION_EFFECTS
# 隐藏物品无法破坏
- HIDE_UNBREAKABLE

物品颜色

药水和皮革护甲可以拥有自定义颜色,具体配置方法如下

有颜色的皮革头盔1:
material: LEATHER_HELMET
color: 'ABCDEF'
有颜色的皮革头盔2:
material: LEATHER_HELMET
color: 666666

如上所示,你可以用十进制和十六进制两种方式配置物品颜色。

如果你想要以十进制表示颜色,那么color必须配置一个数字(不被引号包裹)

如果你想要以十六进制表示颜色,那么color必须是一个字符串(被引号包裹)

比如,color: '666666' 表示的是十六进制,等价于 color: 6710886

自定义NBT

许多插件会向物品中插入一些自定义NBT,用来记录某些信息。

NeigeItems也允许你这样做。

你可以通过插入自定义NBT,兼容一些基于NBT的插件,比如

超猛镐子:
material: IRON_PICKAXE
nbt:
MMOITEMS_ATTACK_DAMAGE: (Double) 1000000

如果你装了MMOItems,那这个镐子现在应该有100万攻击力了。

你可能注意到,1000000前面有一个(Double)

这个前缀代表,生成这条NBT的时候,会以 Double 类型生成(写的时候不要忘记括号后面的空格)。

如果你不写的话,生成时这条NBT很有可能就变成了Int类型或者Long类型。

这种用于转换类型的前缀应该应用于数值类型的NBT

具体有以下类型可以选择

# Byte 类型的 1
(Byte) 1
# Short 类型的 1
(Short) 1
# Int 类型的 1
(Int) 1
# Long 类型的 1
(Long) 1
# Float 类型的 1
(Float) 1
# Double 类型的 1
(Double) 1

使用类型转换前缀,一定要加空格

但是啊但是,别搁这儿看了,你直接/ni save一下,自动就都出来了。

额外选项

使用次数,物品光效,掉落技能什么的,都属于额外选项。

具体配置如下

嗯叠BUFF的铁剑:
material: IRON_SWORD
options:
charge: 10
color: GOLD

options下面的就是额外选项。

具体内容请查看额外选项

模板继承

你可以让一个配置继承其他配置的部分或全部内容

具体内容请查看模板继承

随机节点

私有节点应直接配置与物品下方,比如

随机名称的铁剑:
material: IRON_SWORD
name: <weight-1>
sections:
weight-1:
type: weight
values:
- 5::名字1
- 4::名字2
- 3::名字3
- 2::名字4
- 1::名字5

有关私有节点的各个类型,具体请查看私有/全局节点

全局节点引用

你可以在物品配置中引用全局节点。

插件会在初始化的时候检查各个物品是否引用全局节点,如果引用了,就将所有引用到的节点加载到物品配置中,当做私有节点解析和调用。(当然,这个过程不会反应到物品配置上)

具体调用方式如下

铁剑:
material: IRON_SWORD
globalsections:
# 引用 ExampleSection.yml 文件中的全部全局节点
- ExampleSection.yml
# 引用名为 global-strings-1 的全局节点
- global-strings-1