物品语句

不同于其他插件的物品配置选项相对固定,eco 提供了物品语句,你可以在需要填写物品的地方使用物品语句来“形容”你想要的物品。物品语句旨在尽可能简单的让你能够快速匹配出自己想要的物品,同时提供互联的作用。

*在何种地方该使用物品语句全凭你的感觉,只要你觉得这个地方应该填写物品的地方,那就多尝试用物品语句吧!

合成配方

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

例如:

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

这看似很复杂,实则不然,我们都知道,游戏内的合成是 9 格,这正好有 9 行的配置,每一行配置都代表对应的格子。前三行配置就是游戏中第一行的 3 个格子,以此类推,中间三行就是游戏中第二行的 3 个格子,后面三行就是游戏中第三行的 3 个格子。

主体

一个物品语句由空格分开的多个字符串组成,第一个字符串就是物品语句的主体。

主体有三种格式:

  • Minecraft 游戏中原版的物品:例如 golden_apple 代表金苹果。

  • *Minecraft 游戏中原版的物品前面再加上 * 符号,表示只要是这个原版物品都会认定为语句正确。例如在价格中使用 *apple,如果玩家手中的苹果是有自定义名称、Lore等情况,如果未带 * 则判定玩家没有足够的价格,如果带则有足够的价格。即模糊匹配。

  • 来自其他插件的物品:例如 ecoitems:packmaster_tear 代表 EcoItems 中的一个此 ID 的物品。支持哪些插件可以在 兼容插件 一节查看。如果来自第三方的插件(如ItemsAdder)中的物品ID有 : 符号,请务必仔细阅读下文对此的特别介绍。

  • 使用原版 json 格式的 NBT物品:例如 {id:"stone",Count:3,tag:{Name:"神奇石头"}} 代表一个显示名称为 神奇石头 的石头。

在主体中可以有多个物品,可以使用如下修饰符来分隔各个物品,并代表不同的意思:

  • 在两个物品之间使用 ? 符号,则代表前面的物品如果不存在,则使用后面的物品。

  • 在两个物品之间使用 || 符号,则代表前面的物品和后面的物品都可以使用。

在一个主体的后面可以添加数字,代表这个物品的数量,例如 string 64 代表 64 个线。

修饰

在主体后面跟着的就是物品的修饰,每个修饰之间使用空格分开,修饰仅能上文介绍的 3 种物品中的前 2 种使用,这个限制同样包括上文介绍的主体修饰符。修饰的作用在于给物品添加更多的详细信息,例如给头颅添加我需要的材质,给物品添加附魔等。

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

  • 头颅材质:设置头颅的自定义材质,需要原版物品为 player_head。格式为 texture:头颅 base64 码

如何获取头颅 base64 码?

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

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

  • *头颅玩家:设置头颅的材质为正版玩家的皮肤,需要原版物品为 player_head。格式为 head:玩家ID

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

  • 名称:使得该物品名称修改为你所设置的值。格式为 name:物品名称

  • 物品标签:给物品添加原版的物品标签,包括:HIDE_ATTRIBUTES:隐藏物品的属性信息(如+1攻击)。HIDE_DESTROYS:隐藏物品可以破坏的方块信息(在服务器中我们几乎不会用到这个,所以可以忽视)。 HIDE_DYE:隐藏物品的染色(如染色后的皮革盔甲)。HIDE_ENCHANTS:隐藏物品的附魔信息。 HIDE_PLACED_ON:隐藏方块可以放置到什么上面信息(同样在服务器中几乎用不到)。 HIDE_POTION_EFFECTS:隐藏药水信息(如1:00生命回复2)。HIDE_UNBREAKABLE:隐藏不可破坏(无限耐久)信息。

  • 不可破坏:添加该修饰后物品无耐久消耗。格式为:unbreakable

  • 自定义模型:设置物品的自定义模型。格式为:custom-model-data:id

  • *皮革颜色:设置皮革的颜色,需要原版物品为皮革系列。格式为 color:颜色码

  • *盔甲纹饰:设置盔甲的纹饰,需要原版物品为盔甲。格式为 trim:物品ID:纹饰ID

例如:ecoitems:enlightened_blade razor:4 unbreaking:3 criticals:2 fire_aspect:2 reforge:mighty unbreakable hide_attributes custom-model-data:2 中,每个字符串的作用如下:

  • 第一个为主体,代表 EcoItems 插件中的某个物品。

  • 第二个、第三个、第四个和第五个都是附魔,例如 unbreaking:3 代表耐久 3。

  • 第六个为重铸,该物品会自带 ID 为 mighty 的重铸。

  • 第七个为不可破坏。

  • 第八个为隐藏物品属性信息的原版标签。

  • 第九个为自定义模型是2。

自定义物品

上文示例中使用了 EcoItems 作为物品主体,当使用其他插件时,可能存在物品ID中需要有 : 符号,这时候请将 : 符号替换为 __ (两个 _ 符号)。最典型的例子就是 ItemsAdder 了,例如 itemsadder:namespace__key。eco 支持很多自定义插件,你可以在 关于 eco 一节查看。

*eco 物品

在其他插件(如 CustomCrafting)中,如果插件和 eco 兼容的话,是可以使用 eco 的物品语句的,就例如上文给了一个超级复杂的一个 EcoItems 的物品。对于开发者而言,可以直接通过 Items.lookup() 方法获得 TestableItem 对象,此对象又包括能够获得 ItemStack 对象的物品,非常好使用。

同时,eco 系列的插件的物品也会自己注册新的物品主体,除了上文所示的 EcoItems 外,还包括:

  • Talisman:直接填写护身符 ID 即可。

  • EcoArmor:不同的物品格式不同: 盔甲:set_套装ID_部位ID 高级盔甲:set_套装ID_部位ID_advanced 升级水晶:shard_水晶ID

  • Reforges:格式为 stone_重铸ID,官方版本的有问题,可以尝试此 PR 修复。https://github.com/Auxilor/Reforges/pull/34

第三方插件主动兼容

ShopGUIPlus

你可以在 ShopGUIPlus 中出售物品语句表达的物品。

例如:

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

*MythicMobs

你可以在 MythicMobs 设置掉落物品语句表达的物品。

例如:

Drops:
  - eco{item=ecoitems:enchanted_rotten_flesh} 1 0.07

最后更新于