# 物品语句

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

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

## 合成配方

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

例如：

```yaml
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 的物品。支持哪些插件可以在 [兼容插件](https://docs.superiormc.cn/auxilor-plugins/tong-yong-xin-xi/jian-rong-cha-jian) 一节查看。**如果来自第三方的插件（如ItemsAdder）中的物品ID有 : 符号，请务必仔细阅读下文对此的特别介绍。**
* 使用原版 json 格式的 NBT物品：例如 `{id:"stone",Count:3,tag:{Name:"神奇石头"}}` 代表一个显示名称为 神奇石头 的石头。

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

* 在两个物品之间使用 `?` 符号，则代表前面的物品如果不存在，则使用后面的物品。
* 在两个物品之间使用 `||` 符号，则代表前面的物品和后面的物品都可以使用。

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

## 修饰

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

* 附魔：给物品添加附魔，可以通过使用多个附魔修饰来实现该物品同时多个附魔。格式为 `附魔id:附魔等级`。
* 头颅材质：设置头颅的自定义材质，需要原版物品为 `player_head`。格式为 `texture:头颅 base64 码`。

{% hint style="info" %}
**如何获取头颅 base64 码？**

我推荐你前往 [Minecraft Player Head](https://minecraft-heads.com/custom-heads) 网站查找 **自定义头颅（Custom Head）**，你可以在这里找到它的 **meta**（注意是自定义头颅不是玩家头颅！）:

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

![](https://3147728479-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FzI4IWT4LcIuTsOKXzl4o%2Fuploads%2FN43A5sxgrC3XbTndMYG9%2F%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202022-03-22%20123913.png?alt=media\&token=4dad6457-7ec6-44d5-b0a8-58ab4551c725)

* \*头颅玩家：设置头颅的材质为正版玩家的皮肤，需要原版物品为 `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](https://docs.superiormc.cn/auxilor-plugins/tong-yong-xin-xi/guan-yu-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>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          &#x20;

## 第三方插件主动兼容

### ShopGUIPlus

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

例如：

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

### \*MythicMobs

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

例如：

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