EcoX 物品语法学习

与其他插件不同,EcoX 系列插件有自己的一套表达物品的语法格式。

基础语法格式

原版物品

你只需要填写这个原版物品的 material(物品英语ID)即可。例如 apple 代表原版里的 苹果

EcoX 物品

我们需要表达 EcoX 系列插件内的某个物品时,可以使用 插件名称:物品id 的格式来表达它,例如 ecoitems:superior_sword 就表示 EcoItems 里,id为 superior_sword 的一个物品。

第三方插件物品

使用 namespace:id 的格式,以 ItemsAdder 为例,如 itemsadder:test_sword。本篇教程提及的插件几乎用不到,因为它们本身就是修改物品的插件,这往往是 EcoCrate(该作者的抽奖箱插件)会用到的语法格式。

NBT 的原版物品

需要满足 json 格式。例如:{id:"stone",Count:3,tag:{Name:"your name"}}

修饰符

位于基础语法格式的后面,用于补充物品的相关信息。我们可以将添加的信息称之为修饰符,各个修饰符之间用空格隔开,修饰符可以在上述所有基础语法格式后使用。有如下几种的修饰符:

附魔

格式为 附魔id:附魔等级,可以通过使用多个附魔修饰符来实现该物品同时多个附魔。

头颅材质

格式为 texture:头颅 base64 码,需要原版物品为 player_head

如何获取头颅 base64 码?

我推荐你前往 Minecraft Player Head 网站查找 自定义头颅(Custom Head),你可以在这里找到它的 meta(注意是自定义头颅不是玩家头颅!):

然后将它复制到你的头颅材质修饰符中。

重铸词条

使得该物品自带某个重铸词条,格式为 reforge:重铸id

物品名称

使得该物品名称修改为你所设置的值,本篇教程提及的插件几乎用不到,因为它们普遍自带物品名称修改功能,这往往是 EcoCrate(该作者的抽奖箱插件)会用到的修饰符。

物品标签

包括:

  • HIDE_ATTRIBUTES:隐藏物品的属性信息(如+1攻击)。

  • HIDE_DESTROYS:隐藏物品可以破坏的方块信息(在服务器中我们几乎不会用到这个,所以可以忽视)。

  • HIDE_DYE:隐藏物品的染色(如染色后的皮革盔甲)。

  • HIDE_ENCHANTS:隐藏物品的附魔信息。

  • HIDE_PLACED_ON:隐藏方块可以放置到什么上面信息(同样在服务器中几乎用不到)。

  • HIDE_POTION_EFFECTS:隐藏药水信息(如1:00生命回复2)。

  • HIDE_UNBREAKABLE:隐藏不可破坏(无限耐久)信息。

以上物品标签在实际填写时建议小写以增加整体配置美观感。

不可破坏

格式为:unbreakable。顾名思义,添加该修饰符后物品无耐久消耗。

CustomModelData

如果你不知道这是什么,建议别乱搞了。格式为:custom-model-data:id

你能说说下面这个物品语法的含义吗?

ecoitems:enlightened_blade razor:4 unbreaking:3 criticals:2 fire_aspect:2 reforge:mighty unbreakable hide_attributes custom-model-data:2

何处会用到?

合成配方

在涉及物品的 EcoX 插件配置中,往往会有合成配方的选项,此时指代合成配方内的合成材料即需要使用此物品语法格式。

例如:

recipe:
    - ""
    - "ecoitems:toughened_string"
    - ""
    - ""
    - "netherite_chestplate"
    - ""
    - "ecoitems:arachnid_oculus"
    - ""
    - "ecoitems:arachnid_oculus"

其中,ecoitems:toughened_stringecoitems:arachnid_oculus 很明显是 EcoX 物品,而 netherite_chestplate 为原版的下界合金胸甲物品。辨别它们的方法其实也很简单,只需要看看它们有没有 : 符号即可。

目标文件(target.yml)

部分不涉及物品内容的插件有该文件,用于指定某个附魔、重铸等只能在某个物品上使用。

以下是一个 target.yml 的示例:

pickaxe:
  slot: hands
  items: 
    - wooden_pickaxe
    - stone_pickaxe
    - iron_pickaxe
    - golden_pickaxe
    - diamond_pickaxe
    - netherite_pickaxe
    - ecoitems:rookie_pickaxe

其中,pickaxe 键为一个目标选择器的id,以此格式可以添加无数多的目标选择器。在此键下面还有如下子键(选项):

  • slot:指代这个目标选择器在物品于何处时处于成功验证的状态。可以填写 hands(在手上,包括主手和副手),armor(在身上,盔甲栏)。

  • items:以 List 类型填写我们已经学习的 EcoX 物品语法格式以指代该附魔或者重铸等可以在哪些物品上使用。

重要:在原版物品id格式前面添加 * 符号即可指代所有这种原版物品,无需再单独填写自定义物品。

高级语法格式

以下高级语法格式只能在合成配方处使用。

指代数量

在物品语法格式的后面添加一个空格,再在空格后写上一个数字即可为其指代数量。例如 string 64 代表 64 个线。

保护性措施

一行合成材料可以包含多个合成材料,在它们中间用两个空格隔开,再在两个空格中间输入 ? 符号即可为其添加保护性措施,这样如果前面的物品不存在,那么插件将会用后面的物品。这个语法格式实际上对于服主并没有什么用,只是为了方便开发者提供默认配置而已。例如 ecoitems:arachnid_oculus ? nether_star 2 代表如果 ecoitems:arachnid_oculus 不存在,那么将这个合成材料转变为后面的 2 个下界之星。

保护性措施 几乎一致,但是中间输入 || 符号隔开,这样只要满足多个合成材料中的其中一个,即可视为该合成材料是满足的。例如 netherite_chestplate || diamond_chestplate 代表下界合金胸甲和钻石胸甲都是可以用于该格的合成材料。

在 ShopGUIPlus 中售卖或者回收 EcoX 系列插件的物品

type: item
item:
  eco: "ecoitems:holy_flesh"
  quantity: 1
sellPrice: 7500
slot: 27

Last updated