# 奖励配置

rewards 选项有一丢丢复杂，所有单独一个页面介绍一下。

插件只认 2 种奖励：原版物品和第三方插件的挂钩物品。

## 原版物品

原版物品的奖励有如下选项：

* material: 奖励物品的物品ID，例如 `STONE`.
* cmd: 奖励物品的 Custom Model Data 值，例如 `1000`. **(可选)**
* display: 奖励物品的显示名称，例如 `&eTest Item`. **(可选)**
* lore: 奖励物品的Lore，例如:

```
  - '&fLine 1 Lore'
  - '&fLine 2 Lore'
```

**(可选)**

**看不懂？来个示例:**

```
  1:
    # 这是钻石
    material: DIAMOND
    cmd: 0
    display: '&eA Reward'
    lore:
      - '&fLine1'
      - '&fLine2'
    commands:
      - 'help'
    # 如果你只想要单独的指令奖励，把 give-item 设置为 false
    # 否则玩家既可以获得你设置的物品，又可以获得这个指令给的东西
    give-item: true
    # 随机数量.
    amount: 1~10
    chance: 20
```

## 已保存物品

已保存物品的奖励有如下选项:

* material: 你可以使用 /s2w save <文件名称> 以保存自定义物品，material 选项与文件名称一致。

已保存物品实际上还是原版物品，我们只是自动读取它的各种信息而已。

**看不懂？来个示例:**

```
  2:
    material: SuperSword
    give-item: false
    commands:
      - 'help'
    amount: 10
    # v2 的几率可以设置变量和数学符号在里面了！
    chance: '%player_health*5'
    edge: rare
```

## 第三方插件挂钩物品

第三方插件挂钩物品有如下选项:

* hook-plugin: 挂钩的插件，目前支持 `EcoItems, EcoArmor, MMOItems, ItemsAdder, Oraxen, MythicMobs`.
* hook-item: 挂钩的物品，不同插件写法略有不同：
* 对于 `EcoItems, Oraxen, MythicMobs`，直接填写物品ID就好了。
* 对于 `ItemsAdder`，你应该填写 `namespace:物品 id`。
* 对于 `EcoArmor`，你应该填写 `armor set id;;armor slot`（盔甲套装ID;;盔甲位置）。 `armor slot` （也就是盔甲位置）可以是 **BOOTS, CHESTPLATE, ELYTRA, HELMET, LEGGINGS**。
* 对于 `MMOItems`，你应该填写 `item type id;;item id`（物品类型;;物品ID）。

**看不懂？来个示例:**

```
  1:
    hook-plugin: MMOItems
    hook-item: SWORD;;BASIC_SWORD
    amount: 10
    chance: 20
```

## 通用选项

这些选项是这两种奖励都可以使用的选项，除了 rate（或者rates，旧版本配置写为 chance，v2 也可以使用 chance 选项替代 rate 选项）外，其余选项都是可选的。

* amount: 该奖励物品的数量，例如1，你也可以使用 "1\~5" 表示在这个区间内随机取值，默认值: `1`。
* commands: 获得该奖励后执行的指令。

格式如下:

```
 - "[c] give xxx"
 - "[p] say xxx"
 - "xxx"
```

`[c]` 开头则代表这个指令是通过控制台方式执行的，`[p]` 开头则代表是玩家自己。

* times: 设置指令执行的次数，例如1，你也可以使用 "1\~5" 表示在这个区间内随机取值，默认值: `1`。
* give-item: 是否给予玩家对应的奖励物品，如果是单独的指令奖励（例如给玩家 500 点券），那么需要改成 `false`，默认值: `true`.
* rate: 该奖励的权重，实际获得该奖励的几率为该奖励的权重除以所有奖励的权重。

v2 新增了动态权重（几率），使用 rates 选项即可做到。

```
rates:
  default: 0.1
  group.vip: 0.2
  group.mvp: 0.3
  one_rates_condition: 0.4
```

rates 选项下由多个 key: value 组成，其中 key 可以是：

* default：也是必须的，当以下所有 rates 的 key 都不能满足，那么将会使用 default 的值，例如这里是 0.1。
* ~~权限节点：当玩家满足这个权限节点以后，将会使用对应权限节点的值，例如这里有 group.vip 权限节点的玩家是 0.2。~~(新版本已删除)
* 条件ID：当玩家满足 rates-conditions 选项中某个条件ID 后，将会使用对应条件 ID 的值，例如这里满足 one\_rates\_condition 条件的玩家将会使用 0.4。

你也可以在这里使用 PlaceholderAPI 和数学符号，如果使用数学符号，需要在 config.yml 打开 check-math 选项。

* rates-conditions:&#x20;

```
rates-conditions:
  one_rates_condition:
    - 'world: OneWorld'
```

`one_rates_condition` 就是条件ID，底下是条件，可在条件一节查看具体信息。

* announcement: 玩家获得该奖励时的公告。

<figure><img src="https://content.gitbook.com/content/lZa8qg7GyuZPlsNnz1EO/blobs/4grZLigVVrvo9bu1Lf6L/%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%202023-07-10%20225520.png" alt=""><figcaption></figcaption></figure>
