> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cakestudio.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# Торговые абонементы

> Настройка предметов со скидкой на комиссию аукциона в settings/passes.yml.

Торговые абонементы — предметы, временно снижающие комиссию аукциона для игрока при активации.

Конфигурация абонементов находится в `settings/passes.yml`.

## Выдача абонементов

Команда для выдачи предмета игроку:

```bash theme={null}
/ah admin givepass <игрок> <ключ> [количество]
```

Пример: `/ah admin givepass Steve vip_pass 2`

## Конфигурация

Абонементы объявляются в секции `passes`:

```yaml theme={null}
passes:
  example_pass:
    material: PAPER
    name: "<green>Абонемент на скидку 10%"
    lore:
      - "<gray>Дает скидку 10% на комиссию аукциона"
      - "<gray>Длительность: 1 час"
      - ""
      - "<yellow>Нажмите ПКМ, чтобы активировать"
    percent: 10.0
    duration: "1h"
    glow: true
    custom-model-data: 0
    hide-flags: true
    click-type: "RIGHT"
    custom-pdc:
      - "myapp:special_id;STRING;pass_10"
      - "myapp:level;INTEGER;1"

  vip_pass:
    material: GOLD_INGOT
    name: "<gold>VIP Абонемент (50%)"
    lore:
      - "<gray>Дает скидку 50% на комиссию аукциона"
      - "<gray>Длительность: 24 часа"
      - ""
      - "<yellow>Нажмите Shift+ПКМ, чтобы активировать"
    percent: 50.0
    duration: "24h"
    glow: true
    hide-flags: true
    click-type: "SHIFT_RIGHT"
```

### Параметры

| Параметр            | Описание                                                                                                                                                     |
| :------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `material`          | Ванильный материал (`PAPER`, `GOLD_INGOT`) или ID предмета из ItemsAdder, Oraxen, Nexo.                                                                      |
| `name`              | Отображаемое имя (поддерживает MiniMessage и цвета).                                                                                                         |
| `lore`              | Описание предмета.                                                                                                                                           |
| `percent`           | Процент скидки на налог аукциона (`10.0` = 10%).                                                                                                             |
| `duration`          | Длительность действия скидки (`1h`, `24h`, `7d`).                                                                                                            |
| `click-type`        | Тип клика для активации: `RIGHT`, `LEFT`, `SHIFT_RIGHT`, `SHIFT_LEFT`, `ANY_RIGHT`, `ANY_LEFT`.                                                              |
| `glow`              | Эффект зачарования (`true`/`false`).                                                                                                                         |
| `custom-model-data` | Номер CustomModelData.                                                                                                                                       |
| `hide-flags`        | Скрытие ванильных флагов предмета (`true`/`false`).                                                                                                          |
| `custom-pdc`        | Данные для записи в `PersistentDataContainer`. Формат: `namespace:key;ТИП;значение` (типы: `STRING`, `INTEGER`, `LONG`, `DOUBLE`, `FLOAT`, `BYTE`, `SHORT`). |

## Защита предметов

Предметы-абонементы защищены от изменения:

* Блокировка использования в рецептах верстака.
* Запрет переименования и сброса NBT на наковальне и точиле.
* Запрет модификации в кузнечном столе.

## Продление времени

Если игрок активирует абонемент с **таким же процентом скидки**, время действия суммируется (`текущий остаток + длительность нового абонемента`).

При активации абонемента с другим процентом скидка и таймер перезаписываются.

## События

При активации абонемента вызывается событие `AuctionPassUseEvent` и выполняются действия из секции `use_pass` файла `settings/events.yml`:

```yaml theme={null}
events:
  use_pass:
    enabled: true
    actions:
      - "[send-message] <gradient:#d4fc79:#96e6a1>Абонемент активирован!</gradient>"
      - "[play-sound] ENTITY_PLAYER_LEVELUP 1.0 1.0"
```
