# Примеры слушателей

## Анимация аирдропа

<details>

<summary>слушатель</summary>

```yaml
  anim:
    description: '&fАнимация'  # Описание
    event: 'TIMER'  # Выполнение при каждом срабатывании таймера
    requirement: # Условия выполнения задачи
      check-1:
        type: 'NUMERICAL_CHECK'  # Проверка числа
        input: '{time-to-open} % 2 == 0'  # Оставляем только чётные значения
      check-2:
        type: 'LOGICAL_CHECK'  # Проверка логического выражения
        input: '{!airdrop-is-open}'  # Аирдроп не должен быть открыт
      check-3:
        type: 'LOGICAL_CHECK'  # Проверка логического выражения
        input: '{airdrop-is-start}'  # Аирдроп должен быть запущен
    commands:
      - '[SET_MATERIAL_LIME_WOOL]'  # Устанавливаем материал Лаймовой шерсти
    deny-commands: # Если в requirement хотя бы одна проверка не пройдёт
      - '[CALL-anim-2]'  # Вызываем слушатель anim-2

  anim-2:
    description: '&fАнимация'  # Описание
    event: 'NONE'  # Не вызываемый ивент
    requirement: # Условия выполнения задачи
      check-1:
        type: 'LOGICAL_CHECK'  # Проверка логического выражения
        input: '{!airdrop-is-open}'  # Аирдроп не должен быть открыт
      check-2:
        type: 'LOGICAL_CHECK'  # Проверка логического выражения
        input: '{airdrop-is-start}'  # Аирдроп должен быть запущен
    commands:
      - '[SET_MATERIAL_RED_WOOL]'  # Устанавливаем материал Красной шерсти
```

</details>

{% embed url="<https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZmRmZWQ0Mjg0ZDY2YWM5NWU5NDU5MjI0NDNjNWFkNDI0Y2JkNmNmZiZjdD1n/P27QpMcbaeyWxjfsEv/giphy.gif>" %}

## Босс-бар

<figure><img src="https://2373355983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN3p8UZfxFqFQGIJWQp91%2Fuploads%2FirwWnwYAu7Ug334EdTUe%2FScreenshot_22.png?alt=media&#x26;token=7169ea0b-44e1-437f-8b72-cd3654ced7fd" alt=""><figcaption></figcaption></figure>

<details>

<summary>слушатели</summary>

```yaml
  create_bossbar: 
    description: '&fСоздание боссбара'
    event: 'TIMER'
    requirement:
      check-1:
        type: 'NUMERICAL_CHECK'
        input: '{time-to-start} == 100'
    commands:
      - '[NEW_BOSSBAR]
      name="Boss bar {id}",
      setTitle="&aДо старта {time-to-start} x-{x}, y-{y}, z-{z}",
      BarColor=GREEN,
      BarStyle=SEGMENTED_10,
      addAll,
      setProgress=[math#{time-to-start} / 100#]'
      
  update_bossbar:
    description: '&fобновление боссбара'
    event: 'TIMER'
    requirement:
      check-1:
        type: 'NUMERICAL_CHECK'
        input: '{time-to-start} < 100'
      check-2:
        type: 'STRING_CHECK'
        input: '{airdrop-is-start} == false'
    commands:   
      - '[BOSSBAR]
      name="Boss bar {id}",
      setTitle="&aДо старта {time-to-start} x-{x}, y-{y}, z-{z}",
      setProgress=[math#{time-to-start} / 100#]'
      
  remove_bossbar:
    description: '&fУдаление босс бара'
    event: 'START_EVENT'
    commands: 
      - '[BOSSBAR]
      name="Boss bar {id}", removeAll'      
      - '[REMOVE_BOSSBAR]
      name="Boss bar {id}"'
      
  remove_bossbar1:
    description: '&fУдаление босс бара'
    event: 'UNLOAD'
    commands: 
      - '[BOSSBAR]
      name="Boss bar {id}", removeAll'      
      - '[REMOVE_BOSSBAR]
      name="Boss bar {id}"'
```

</details>

<details>

<summary>Описание</summary>

Первый блок конфигурации, **create\_bossbar**, отвечает за создание нового босс-бара.

Он будет вызван по событию **TIMER**, если **time-to-start равно 100**. Босс-бар будет иметь имя "Boss bar {id}", где {id} - это уникальный идентификатор аирдропа. Заголовок босс-бара будет содержать текст "\&aДо старта {time-to-start} x-{x}, y-{y}, z-{z}", где {time-to-start}, {x}, {y}, {z} - это переменные, которые будут заменены на соответствующие значения при выполнении команды. Цвет босс-бара будет зеленым, а стиль будет сегментированным на 10 сегментов. Босс-бар будет отображаться для всех игроков в игре.

Второй блок конфигурации, **update\_bossbar,** отвечает за обновление босс-бара.

Он будет вызван по событию **TIMER**, если time-to-start меньше 100 и airdrop-is-start равно false. Босс-бар будет иметь то же имя и заголовок, что и при создании, но его текущее значение будет обновлено на {time-to-start} / 100.

Третий блок конфигурации, remove\_bossbar, отвечает за удаление босс-бара.

Он будет вызван при запуске аирдропа. Сначала он удаляет босс-бар у всех игроков, а затем удаляет его полностью из игры.

Четвертый блок конфигурации, remove\_bossbar1, отвечает за удаление босс-бара при выгрузке аирдропа. Он также удаляет босс-бар у всех игроков и затем удаляет его полностью из игры.

</details>
