Создание событий
Это руководство для EliteMobs 10 и новее
Что такое Кастомные события?
Кастомные события здесь относятся к событиям, которые происходят в игре случайным образом, будь то на основе действий игрока или по триггеру-таймеру. Плагин поставляется с рядом предзагруженных Кастомных событий, таких как событие Балрога, событие Кракена и события Гоблина сокровищ, и это лишь некоторые из них.
Эта система называется Кастомными событиями, потому что события можно не только настраивать, но и создавать с нуля. Ниже приведено руководство о том, как создавать и настраивать свои собственные события.
Создание ваших Кастомных событий
Конфигурационные файлы кастомных событий следует создавать в:
plugins/EliteMobs/customevents/
Файлы должны использовать формат .yml. Имя файла (без расширения .yml) становится идентификатором события.
Пример: my_cool_event.yml указывается как my_cool_event
Общие настройки конфигурации
Следующие настройки можно/следует использовать как для событий-действий, так и для событий по времени.
isEnabled
Задаёт, включено ли событие.
| Key | Values | Default |
|---|---|---|
isEnabled | Boolean | true |
Пример
isEnabled: true
eventType
Задаёт тип события.
| Key | Values | Default |
|---|---|---|
eventType | DEFAULT / BREAK_BLOCK / FISH / TILL_SOIL / TIMED | none |
Учтите, что BREAK_BLOCK, FISH и TILL_SOIL — это События-действия, а TIMED — это События по времени. DEFAULT предназначен для событий, вызываемых иными способами или особыми условиями.
Пример
eventType: BREAK_BLOCK
bossFilenames
Задаёт список боссов, которые будут заспавнены. Обязательно!
| Key | Values | Default |
|---|---|---|
bossFilenames | String List | none |
Пример
bossFilenames:
- balrog.yml
- my_event_boss.yml
announcementPriority
Задаёт приоритет объявлений.
| Key | Values | Default |
|---|---|---|
announcementPriority | Integer | 0 |
Пример
announcementPriority: 1
startMessage
Задаёт сообщение, отправляемое в начале события.
| Key | Values | Default |
|---|---|---|
startMessage | String | none |
Пример
startMessage: An event has started!
![]()
endMessage
Задаёт сообщение, отправляемое в конце события.
| Key | Values | Default |
|---|---|---|
endMessage | String | none |
Пример
endMessage: An event has ended!
eventStartCommands
Задаёт команды, выполняющиеся в начале события.
| Key | Values | Default |
|---|---|---|
eventStartCommands | String List | none |
Пример
eventStartCommands:
- say The event now starts!!
- "$chance=0.5$ say What a spawn!"

eventEndCommands
Задаёт команды, выполняющиеся в конце события.
| Key | Values | Default |
|---|---|---|
eventEndCommands | String List | none |
Пример
eventEndCommands:
- say The event ends, so sad.
- "$chance=0.5$ say Too slow bud!"

Пример конфигурации события
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
Полный пример события по времени
isEnabled: true
eventType: TIMED
bossFilenames:
- "my_timed_boss.yml"
announcementPriority: 3
startMessage: "A timed event has started!"
endMessage: "The timed event has ended!"
eventStartCommands:
- say The timed event began!
eventEndCommands:
- say The timed event concluded!
spawnType: "my_spawn_location.yml"
localCooldown: 120
globalCooldown: 30
weight: 100
eventDuration: 15
endEventWithBossDeath: true
minimumPlayerCount: 1
События-действия
События, у которых есть шанс запуститься, когда происходит определённое действие, например ломание блока или рыбалка.
Примечание: события-действия автоматически применяют перезарядку для каждого игрока, чтобы один и тот же игрок не запускал события многократно. Перезарядка по умолчанию равна 4 минутам и настраивается через actionEventMinimumCooldownMinutes в events.yml.
chance
Задаёт шанс того, что событие произойдёт при выполнении действия.
| Key | Values | Default |
|---|---|---|
chance | Значение между 0.0 и 1.0 | 0 |
Пример
chance: 0.001
breakableMaterials
Задаёт список материалов для проверки, если действие установлено в BREAK_BLOCK.
| Key | Values | Default |
|---|---|---|
breakableMaterials | Список материалов | none |
Пример
breakableMaterials:
- BEEHIVE
- BIRCH_WOOD
Пример конфигурации
chance: 0.001
breakableMaterials:
- COAL_ORE
Задаёт 0.1%-ный шанс запуска события при разрушении блока угольной руды, при условии что тип события — BREAK_BLOCK.
Полный пример события-действия
isEnabled: true
eventType: BREAK_BLOCK
bossFilenames:
- "mining_boss.yml"
announcementPriority: 2
startMessage: "You've awakened something..."
chance: 0.001
breakableMaterials:
- DIAMOND_ORE
- EMERALD_ORE
События по времени
События по времени — это события, которые происходят с настраиваемыми временными интервалами. Как только перезарядка события по времени заканчивается, из списка событий по времени выбирается случайное событие на основе веса события.
spawnType
Задаёт Кастомный спавн, используемый событием, который определяет, где может заспавниться босс.
| Key | Values | Default |
|---|---|---|
spawnType | Filename | none |
Пример
spawnType: nether_spawn.yml
localCooldown
Задаёт количество времени в минутах, прежде чем это событие сможет быть выбрано снова.
| Key | Values | Default |
|---|---|---|
localCooldown | Double | 0 |
Пример
localCooldown: 120
globalCooldown
Задаёт количество времени в минутах, прежде чем будет выбрано следующее событие.
| Key | Values | Default |
|---|---|---|
globalCooldown | Double | 0 |
Пример
globalCooldown: 60
weight
Задаёт вес события, влияющий на шанс того, что оно будет выбрано вместо других событий. Рекомендуется: 100.
Система весов определяет относительную вероятность выбора события. Например:
- Событие A с весом 100 против События B с весом 50 = Событие A вдвое вероятнее будет выбрано
- Выше вес = выше шанс быть выбранным
- Планировщик событий по времени запускается примерно через 5 минут после старта сервера, а затем раз в минуту проверяет, истекла ли глобальная перезарядка и можно ли выбрать событие
| Key | Values | Default |
|---|---|---|
weight | Double | 0 |
Пример
weight: 60.5
eventDuration
Задаёт максимальную длительность события в минутах.
| Key | Values | Default |
|---|---|---|
eventDuration | Double | 0 |
Пример
eventDuration: 30
endEventWithBossDeath
Задаёт, заканчивается ли событие со смертью босса.
| Key | Values | Default |
|---|---|---|
endEventWithBossDeath | Boolean | true |
Пример
endEventWithBossDeath: true
eventEndTime
Задаёт внутриигровое время (в тиках), когда событие заканчивается. Используйте систему времени Minecraft, где 0=рассвет, 6000=полдень, 12000=сумерки, 18000=полночь, 23000=поздняя ночь. Установите -1, чтобы отключить завершение по времени.
| Key | Values | Default |
|---|---|---|
eventEndTime | Integer (0-24000, -1 для отключения) | -1 |
Пример
eventEndTime: 23000
minimumPlayerCount
Задаёт минимальное количество онлайн-игроков, прежде чем событие начнётся.
| Key | Values | Default |
|---|---|---|
minimumPlayerCount | Integer | 1 |
Пример
minimumPlayerCount: 5
Учтите, что события ставятся в очередь, то есть они начнутся только когда будут выполнены условия, заданные в spawnType.
Пример конфигурации событий
isEnabled: true
bossFilenames:
- "cool_boss.yml"
- "other_cool_boss.yml"
announcementPriority: 3
startMessage: "Cool event is starting!"
endMessage: "Cool event is ending!"
eventStartCommands:
- say The event started!
eventEndCommands:
- say The event ended!
spawnType: "myCoolSpawn.yml"
localCooldown: 30
globalCooldown: 15
weight: 100
eventDuration: 20
endEventWithBossDeath: true
eventEndTime: 10000
minimumPlayerCount: 5
