> For the complete documentation index, see [llms.txt](https://by1337-developers.gitbook.io/bairdrop1/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://by1337-developers.gitbook.io/bairdrop1/rukovodstvo/iventy.md).

# Ивенты

Настройка ивентов это основная работа с аирдропом.

Список всех ивентов

<table><thead><tr><th width="210.33333333333331" align="center">ивент</th><th width="89" align="center">игрок</th><th align="center">вызывается</th></tr></thead><tbody><tr><td align="center"><pre><code>CLICK_CLOSE
</code></pre></td><td align="center">да</td><td align="center">Вызывается когда кто-то кликает по закрытому аирдропу</td></tr><tr><td align="center"><pre><code>CLICK_OPEN
</code></pre></td><td align="center">да</td><td align="center">Вызывается когда кто-то кликает по открытому аирдропу</td></tr><tr><td align="center"><pre><code>TIMER
</code></pre></td><td align="center">нет</td><td align="center">Вызывается самим аирдропом каждую секунду</td></tr><tr><td align="center"><pre><code>START_EVENT
</code></pre></td><td align="center">нет</td><td align="center">Вызывается когда аирдроп спавнится</td></tr><tr><td align="center"><pre><code>END_EVENT
</code></pre></td><td align="center">нет</td><td align="center">Вызывается когда аирдроп исчезает</td></tr><tr><td align="center"><pre><code>UNLOCK_EVENT
</code></pre></td><td align="center">нет</td><td align="center">Вызывается когда аирдроп открывается</td></tr><tr><td align="center"><pre><code>FIRST_OPEN
</code></pre></td><td align="center">да</td><td align="center">Вызывается когда кто-то впервый раз открывает аирдроп</td></tr><tr><td align="center"><pre><code>SUMMONER
</code></pre></td><td align="center">да</td><td align="center">Вызывается когда кто-то использует предмет призыва аирдропа</td></tr><tr><td align="center"><pre><code>ACTIVATE
</code></pre></td><td align="center">да</td><td align="center">Вызывается когда кто-то активирует аирдроп</td></tr><tr><td align="center"><pre><code>STOP_WHEN_EMPTY
</code></pre></td><td align="center">нет</td><td align="center">Вызывается когда аирдроп, заканчивается из-за опустошения</td></tr><tr><td align="center"><pre><code>NONE
</code></pre></td><td align="center">нет</td><td align="center">Невызываемый ивент также не отображается в списке слушателей</td></tr></tbody></table>

Использование

```yaml
  name:
    description: 'описание'
    type: 'START_EVENT'
    commands:
      - 'Команда'
```

"name" Может быть любым

description - стои зополнять кратко и понятно, он отображается в меню списке ивентов

type - указываеться тип ивента, а в commands команды

Вот так это выглядит из игры.

<figure><img src="https://2373355983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN3p8UZfxFqFQGIJWQp91%2Fuploads%2FfRofxgfEgpBaipiSGkZz%2FScreenshot_5.png?alt=media&amp;token=fdbdc9ac-0983-4afb-a199-dbdb03831ba3" alt=""><figcaption></figcaption></figure>

Также можно добавлять проверки

```yaml
requirement:
  check-1:
    type: 'NUMERICAL_CHECK'
    input: '{time-to-start} == 30'
```

## Типы проверок

<table><thead><tr><th width="209.33333333333331" align="center">тип</th><th width="140" align="center">описание</th><th align="center">123</th></tr></thead><tbody><tr><td align="center"><pre><code>NUMERICAL_CHECK
</code></pre></td><td align="center">Сравнение чисел</td><td align="center"><pre><code>== если числа равны 
!= если числа не равны
> если первое число больше второго
&#x3C; если первое число меньше второго
>= если первое число больше или равно второму
&#x3C;= если первое число меньше или равно второму
% остаток от деления (10 % 10 == 0)
</code></pre></td></tr><tr><td align="center"><pre><code>LOGICAL_CHECK
</code></pre></td><td align="center">Логическая</td><td align="center">Используются внутриние плейсхолдеры</td></tr><tr><td align="center"><pre><code>STRING_CHECK
</code></pre></td><td align="center">Сравнение строк</td><td align="center"><pre><code>== если строки равны                                 #
!= если строки не равны                                #
contains если строка содержит                               #
!contains если строка не содержит 
</code></pre></td></tr></tbody></table>

## Использование проверок в ивентах

```yaml
  alert-2:
    description: '&fСообщение о начале через 30сек'
    type: 'TIMER'
    requirement:
      check-1:
        type: 'NUMERICAL_CHECK'
        input: '{time-to-start} == 30'
    commands:
      - '[MESSAGE_ALL] &aАирдроп появится через 30 секунд!'
```

Ивент TIMER вызывается каждую секунду, {time-to-start} заменяется на время до старта\
и как только до старта останется 30 секунд, условие input: '30 == 30' станет верным и выполниться команда \[MESSAGE\_ALL] что отправит сообщение всем на сервере

## Математические вычисления

\[math#100 / 10#] - это заменится на итог деления 100 на 10&#x20;

синтаксис: \[math#<число> <оператор> <число>#]&#x20;

дополнения: блок math может быть только 1 на строке

## Список команд

<table><thead><tr><th width="310.3333333333333" align="center">Команда</th><th width="88" align="center">игрок</th><th align="center">описание</th></tr></thead><tbody><tr><td align="center"><pre><code>[MESSAGE]
</code></pre></td><td align="center">да</td><td align="center">Отправляет сообщение игроку</td></tr><tr><td align="center"><pre><code>[MESSAGE_ALL]
</code></pre></td><td align="center">нет</td><td align="center">Отправляет сообщение всем игрокам</td></tr><tr><td align="center"><pre><code>[TITLE]
</code></pre></td><td align="center">да</td><td align="center">Отправляет тайтл игроку</td></tr><tr><td align="center"><pre><code>[TITLE_ALL]
</code></pre></td><td align="center">нет</td><td align="center">Отправляет тайтл всем игрокам</td></tr><tr><td align="center"><pre><code>[ACTIONBAR]
</code></pre></td><td align="center">да</td><td align="center">Отправляет сообщение над хот баром игроку</td></tr><tr><td align="center"><pre><code>[ACTIONBAR_ALL]
</code></pre></td><td align="center">нет</td><td align="center">Отправляет сообщение над хот баром всем игрокам</td></tr><tr><td align="center"><pre><code>[CONSOLE]
</code></pre></td><td align="center">нет</td><td align="center">Выполняет команду от имени консоли</td></tr><tr><td align="center"><pre><code>[PLAYER]
</code></pre></td><td align="center">да</td><td align="center">Выполняет команду от имени игрока</td></tr><tr><td align="center"><pre><code>[SOUND]
</code></pre></td><td align="center">да</td><td align="center">Воиспроизводит звук игроку</td></tr><tr><td align="center"><pre><code>[SOUND_ALL]
</code></pre></td><td align="center">нет</td><td align="center">Воиспроизводит звук всем игрокам</td></tr><tr><td align="center"><pre><code>[EFFECT_START-&#x3C;NAME>-&#x3C;id>]
</code></pre></td><td align="center">нет</td><td align="center">Запускает эффект</td></tr><tr><td align="center"><pre><code>[EFFECT_STOP-&#x3C;id>]
</code></pre></td><td align="center">нет</td><td align="center">Отстанавливает эффект</td></tr><tr><td align="center"><pre><code>[EFFECT_STOP_ALL]
</code></pre></td><td align="center">нет</td><td align="center">Останавливает все эффекты</td></tr><tr><td align="center"><pre><code>[SET_MATERIAL_&#x3C;MATERIAL>]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает матерьял аирдропу</td></tr><tr><td align="center"><pre><code>[SCHEMATICS_PASTE-&#x3C;name>]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает схематику</td></tr><tr><td align="center"><pre><code>[SCHEMATICS_REMOVE]
</code></pre></td><td align="center">нет</td><td align="center">Удаляет схематику</td></tr><tr><td align="center"><pre><code> [SET_TIME_START-&#x3C;time>]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает время до старта</td></tr><tr><td align="center"><pre><code>[SET_TIME_UNLOCK-&#x3C;time>]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает время до открытия</td></tr><tr><td align="center"><pre><code>[SET_TIME_END-&#x3C;time>]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает время до окончания</td></tr><tr><td align="center"><pre><code>[SET_REGION]
</code></pre></td><td align="center">нет</td><td align="center">Устанавливает регион</td></tr><tr><td align="center"><pre><code>[SET_HOLO_TIME_TO_START]
</code></pre></td><td align="center">нет</td><td align="center">Спавнит голограму с обратным отсчётом до старта</td></tr><tr><td align="center"><pre><code>[LOGGER]
</code></pre></td><td align="center">нет</td><td align="center">Выводит лог в консоль</td></tr><tr><td align="center"><pre><code>[ERROR]
</code></pre></td><td align="center">нет</td><td align="center">Выводит ошибку в консоль</td></tr><tr><td align="center"><pre><code>[CALL-&#x3C;listener>]
</code></pre></td><td align="center">нет</td><td align="center">Вызывает слушатель. Если игрок был то вызываемый слушатель получит его</td></tr></tbody></table>

Как Вы можете заметить некоторые команды требуют чтобы в ивенте участвовал игрок
