> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/cn-er/pei-zhi/triggers.md).

# 能力触发器

触发器是附魔 `powers` 下的一个配置部分，用于决定能力何时执行，并创建供能力条件、能力修改器和能力使用的上下文。

```yaml
powers:
  on-attack:
    conditions: {}
    modifiers: {}
    abilities: {}
```

EnchantmentReform 目前注册了 **61 个内置触发器**。

## 参考页面

* [Tick 与生命周期触发器](/cn-er/pei-zhi/triggers/lifecycle.md)
* [战斗、伤害与死亡触发器](/cn-er/pei-zhi/triggers/combat.md)
* [投射物与远程触发器](/cn-er/pei-zhi/triggers/projectiles.md)
* [方块与交互触发器](/cn-er/pei-zhi/triggers/blocks-interactions.md)
* [物品、附魔与装备触发器](/cn-er/pei-zhi/triggers/items-equipment.md)
* [移动与输入触发器](/cn-er/pei-zhi/triggers/movement-input.md)
* [效果、空气、食物与经验触发器](/cn-er/pei-zhi/triggers/player-state.md)
* [钓鱼与交易触发器](/cn-er/pei-zhi/triggers/fishing-trading.md)
* [目标选择与特殊实体触发器](/cn-er/pei-zhi/triggers/targeting-special.md)

## 通用上下文

每个触发器都会创建一个 `TriggerData` 上下文。各角色的实际含义取决于所使用的触发器。

| 上下文                             | 含义                         |
| ------------------------------- | -------------------------- |
| `PLAYER`                        | 提供当前激活附魔物品的玩家。此上下文始终存在。    |
| `SOURCE`                        | 对事件负责的行为主体或所有者。            |
| `SKILL`                         | 直接载体或中间实体，例如投射物、鱼钩、烟花或监守者。 |
| `TARGET`                        | 最终受到影响或被检查的实体。             |
| `BLOCK`                         | 触发器提供的事件方块。                |
| `LOCATION`                      | 供位置相关条件和能力使用的主要事件位置。       |
| `FROM` / `TO`                   | 触发器提供的移动起点和终点。             |
| `TRIGGER_ITEM` / `TRIGGER_SLOT` | 选中当前激活附魔的物品和槽位。            |
| `EVENT`                         | 底层 Bukkit/Paper 事件。        |
| `TICK`                          | 周期性触发器使用的运行时 Tick。         |

`SOURCE`、`SKILL`、`TARGET`、`BLOCK`、移动位置和触发物品数据均为可选上下文。需要某个缺失上下文的条件或能力会安全失败或被跳过。

{% hint style="info" %}
不要假设同一个选择器在所有触发器中都具有相同含义。例如，`on-attack` 使用 `SOURCE` 表示发起攻击的玩家，使用 `SKILL` 表示直接造成伤害的投射物或伤害来源；而 `on-damage` 使用 `TARGET` 表示正在受到伤害的附魔玩家。
{% endhint %}

## 触发器列表

### Tick 与生命周期触发器

* [`on-tick`](/cn-er/pei-zhi/triggers/lifecycle.md#on-tick)
* [`on-target-tick`](/cn-er/pei-zhi/triggers/lifecycle.md#on-target-tick)
* [`on-spawn`](/cn-er/pei-zhi/triggers/lifecycle.md#on-spawn)
* [`on-respawn`](/cn-er/pei-zhi/triggers/lifecycle.md#on-respawn)
* [`on-activate`](/cn-er/pei-zhi/triggers/lifecycle.md#on-activate)
* [`on-deactivate`](/cn-er/pei-zhi/triggers/lifecycle.md#on-deactivate)

### 战斗、伤害与死亡触发器

* [`on-attack`](/cn-er/pei-zhi/triggers/combat.md#on-attack)
* [`on-melee-attack`](/cn-er/pei-zhi/triggers/combat.md#on-melee-attack)
* [`on-damage`](/cn-er/pei-zhi/triggers/combat.md#on-damage)
* [`on-damage-by-entity`](/cn-er/pei-zhi/triggers/combat.md#on-damage-by-entity)
* [`on-kill`](/cn-er/pei-zhi/triggers/combat.md#on-kill)
* [`on-death`](/cn-er/pei-zhi/triggers/combat.md#on-death)
* [`on-regain`](/cn-er/pei-zhi/triggers/combat.md#on-regain)
* [`on-combust`](/cn-er/pei-zhi/triggers/combat.md#on-combust)
* [`on-knockback`](/cn-er/pei-zhi/triggers/combat.md#on-knockback)
* [`on-attempt-smash-attack`](/cn-er/pei-zhi/triggers/combat.md#on-attempt-smash-attack)
* [`on-lunge`](/cn-er/pei-zhi/triggers/combat.md#on-lunge)
* [`on-shield-block`](/cn-er/pei-zhi/triggers/combat.md#on-shield-block)
* [`on-shield-disable`](/cn-er/pei-zhi/triggers/combat.md#on-shield-disable)

### 投射物与远程触发器

* [`on-shoot`](/cn-er/pei-zhi/triggers/projectiles.md#on-shoot)
* [`on-shoot-bow`](/cn-er/pei-zhi/triggers/projectiles.md#on-shoot-bow)
* [`on-load-crossbow`](/cn-er/pei-zhi/triggers/projectiles.md#on-load-crossbow)
* [`on-projectile-launch`](/cn-er/pei-zhi/triggers/projectiles.md#on-projectile-launch)
* [`on-projectile-tick`](/cn-er/pei-zhi/triggers/projectiles.md#on-projectile-tick)
* [`on-projectile-hit`](/cn-er/pei-zhi/triggers/projectiles.md#on-projectile-hit)
* [`on-riptide`](/cn-er/pei-zhi/triggers/projectiles.md#on-riptide)

### 方块与交互触发器

* [`on-block-break`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-block-break)
* [`on-block-damage`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-block-damage)
* [`on-block-break-progress-update`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-block-break-progress-update)
* [`on-block-drop-item`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-block-drop-item)
* [`on-block-place`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-block-place)
* [`on-inside-block`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-inside-block)
* [`on-interact`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-interact)
* [`on-consume`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-consume)
* [`on-name-entity`](/cn-er/pei-zhi/triggers/blocks-interactions.md#on-name-entity)

### 物品、附魔与装备触发器

* [`on-item-damage`](/cn-er/pei-zhi/triggers/items-equipment.md#on-item-damage)
* [`on-item-group-cooldown`](/cn-er/pei-zhi/triggers/items-equipment.md#on-item-group-cooldown)
* [`on-item-held`](/cn-er/pei-zhi/triggers/items-equipment.md#on-item-held)
* [`on-swap-hand`](/cn-er/pei-zhi/triggers/items-equipment.md#on-swap-hand)
* [`on-enchant-item`](/cn-er/pei-zhi/triggers/items-equipment.md#on-enchant-item)
* [`on-elytra-boost`](/cn-er/pei-zhi/triggers/items-equipment.md#on-elytra-boost)

### 移动与输入触发器

* [`on-move`](/cn-er/pei-zhi/triggers/movement-input.md#on-move)
* [`on-input`](/cn-er/pei-zhi/triggers/movement-input.md#on-input)
* [`on-jump`](/cn-er/pei-zhi/triggers/movement-input.md#on-jump)
* [`on-toggle-flight`](/cn-er/pei-zhi/triggers/movement-input.md#on-toggle-flight)
* [`on-toggle-sneak`](/cn-er/pei-zhi/triggers/movement-input.md#on-toggle-sneak)

### 效果、空气、食物与经验触发器

* [`on-effect-tick`](/cn-er/pei-zhi/triggers/player-state.md#on-effect-tick)
* [`on-potion-effect`](/cn-er/pei-zhi/triggers/player-state.md#on-potion-effect)
* [`on-exhaustion`](/cn-er/pei-zhi/triggers/player-state.md#on-exhaustion)
* [`on-food-level-change`](/cn-er/pei-zhi/triggers/player-state.md#on-food-level-change)
* [`on-air-change`](/cn-er/pei-zhi/triggers/player-state.md#on-air-change)
* [`on-exp-change`](/cn-er/pei-zhi/triggers/player-state.md#on-exp-change)
* [`on-pickup-experience`](/cn-er/pei-zhi/triggers/player-state.md#on-pickup-experience)

### 钓鱼与交易触发器

* [`on-fish`](/cn-er/pei-zhi/triggers/fishing-trading.md#on-fish)
* [`on-purchase`](/cn-er/pei-zhi/triggers/fishing-trading.md#on-purchase)
* [`on-trade`](/cn-er/pei-zhi/triggers/fishing-trading.md#on-trade)

### 目标选择与特殊实体触发器

* [`on-target`](/cn-er/pei-zhi/triggers/targeting-special.md#on-target)
* [`on-untag`](/cn-er/pei-zhi/triggers/targeting-special.md#on-untag)
* [`on-creeper-explode`](/cn-er/pei-zhi/triggers/targeting-special.md#on-creeper-explode)
* [`on-phantom-pre-spawn`](/cn-er/pei-zhi/triggers/targeting-special.md#on-phantom-pre-spawn)
* [`on-warden-anger-change`](/cn-er/pei-zhi/triggers/targeting-special.md#on-warden-anger-change)

## 选择兼容的条件和修改器

应先选择触发器，再打开对应的分类页面确认它提供哪些上下文。

例如：

* `damage` 修改器需要触发器提供可修改的伤害数据；
* `item_damage` 需要使用 `on-item-damage`；
* 钓鱼结果修改器需要使用 `on-fish`，并处于对应的钓鱼状态；
* 交易修改器需要使用 `on-purchase` 或 `on-trade`；
* `warden_anger` 需要使用 `on-warden-anger-change`；
* 方块条件需要触发器提供 `BLOCK`；
* 以实体为目标的能力必须使用该触发器实际提供的选择器。

## 扩展触发器

其他插件可以通过 EnchantmentReform API 注册自定义触发器。自定义触发器的键及其上下文由扩展插件定义，因此不会列入本页面的内置触发器清单。
