> 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/fishing-trading.md).

# 钓鱼与交易触发器

这些触发器会提供鱼钩、钓获对象、商人、交易结果以及可修改的奖励数据。

下方每个触发器部分都会说明当前实现所创建的运行时上下文。

| 上下文                             | 含义                                                     |
| ------------------------------- | ------------------------------------------------------ |
| `PLAYER`                        | 正在检查其激活附魔的玩家。                                          |
| `SOURCE`                        | 对事件负责的行为主体或所有者。                                        |
| `SKILL`                         | 直接载体或中间实体，例如投射物、鱼钩、烟花或监守者。                             |
| `TARGET`                        | 最终受到影响或被检查的实体。部分事件中可能不存在。                              |
| `BLOCK`                         | 触发器提供的事件方块。                                            |
| `LOCATION`                      | 供位置相关条件和能力使用的主要事件位置。                                   |
| `TRIGGER_ITEM` / `TRIGGER_SLOT` | 选中当前激活附魔的物品和装备槽位。                                      |
| `EVENT`                         | 底层 Bukkit/Paper 事件。未复制到其他字段的触发器专用状态，仍可由事件感知型实现通过该事件访问。 |

当某个角色标记为**玩家**时，它会解析为与 `PLAYER` 相同的实体。缺失的角色会解析为 `null`；需要该角色的条件或能力会安全失败或被跳过。

## `on-fish`

在 `PlayerFishEvent` 的每一种状态下执行。

| 上下文                             | 值                                               |
| ------------------------------- | ----------------------------------------------- |
| `PLAYER` / `SOURCE`             | 正在钓鱼的玩家                                         |
| `SKILL`                         | 鱼钩                                              |
| `TARGET`                        | 钓到的实体或物品实体；没有钓获对象的状态下不存在                        |
| `LOCATION`                      | 鱼钩位置                                            |
| `TRIGGER_ITEM` / `TRIGGER_SLOT` | 钓鱼竿和事件使用的手                                      |
| 额外上下文                           | `original_experience`；可修改的钓鱼经验；事件状态和钓获数据仍保留在事件中 |

当能力只应在钓到物品、上钩、收杆或失败等指定状态下执行时，请使用钓鱼状态条件。

## `on-purchase`

在 Paper 的玩家购买事件中执行。

| 上下文                             | 值                     |
| ------------------------------- | --------------------- |
| `PLAYER` / `SOURCE` / `SKILL`   | 买家                    |
| `TARGET`                        | 商人是实体时为该商人；否则不存在      |
| `LOCATION`                      | 商人是实体时为商人位置           |
| `TRIGGER_ITEM` / `TRIGGER_SLOT` | 交易结果 / `HAND`         |
| 额外上下文                           | 商人配方、使用次数和购买状态仍保留在事件中 |

## `on-trade`

在 Paper 的玩家交易事件中执行。

| 上下文                             | 值                  |
| ------------------------------- | ------------------ |
| `PLAYER` / `SOURCE` / `SKILL`   | 进行交易的玩家            |
| `TARGET`                        | 商人实体               |
| `LOCATION`                      | 商人位置               |
| `TRIGGER_ITEM` / `TRIGGER_SLOT` | 交易结果 / `HAND`      |
| 额外上下文                           | 商人配方和交易结果数据仍保留在事件中 |
