WorldCannon Configuration
WorldCannon использует один глобальный конфигурационный файл и один конфигурационный файл для каждой пушки.
File Layout
- Глобальный конфиг:
plugins/FunRTP/config.yml - Конфиги отдельных пушек:
plugins/FunRTP/custom/fun_rtps/<id>.yml
Плагин также поставляется с примером пакета пушки под названием example_world_cannon. По умолчанию он отключен.
Global Config Structure
Основной конфиг организован по разделам:
runtime.*landing.*messages.*protection.*
Runtime Settings
| Key | Default | Behavior |
|---|---|---|
runtime.scanIntervalTicks | 10 | Как часто пушки проверяют ближайших игроков |
runtime.particleIntervalTicks | 15 | Как часто отображаются частицы у неактивной пушки |
Landing Search Settings
| Key | Default | Behavior |
|---|---|---|
landing.searchAttemptsPerTick | 2 | Попытки поиска на пушку за тик во время предзагрузки |
landing.preloadedLocationsPerCannon | 5 | Сколько безопасных точек назначения плагин старается держать в очереди |
landing.searchTimeoutSeconds | 1000 | Время до того, как пушка с продолжающимся поиском будет помечена как exhausted |
landing.slowFallingSeconds | 60 | Длительность Slow Falling после прибытия (эффект снимается досрочно, когда игрок приземляется) |
landing.failOpenOnProtectionErrors | false | Если API защиты дает ошибку, приземление по умолчанию блокируется |
Landing Sounds
Следующие sound keys можно настраивать:
landing.sounds.levitationStart.soundlanding.sounds.levitationStart.volumelanding.sounds.levitationStart.pitchlanding.sounds.blastOff.soundlanding.sounds.blastOff.volumelanding.sounds.blastOff.pitch
Звуки по умолчанию: BLOCK_BEACON_ACTIVATE для подготовки и ENTITY_GENERIC_EXPLODE для взлета.
Unsafe Material Lists
WorldCannon отклоняет кандидаты на точку приземления на основе двух списков материалов:
landing.unsafeGroundMaterialslanding.unsafeBodyMaterials
Материалы земли, считающиеся опасными по умолчанию:
LAVAMAGMA_BLOCKCAMPFIRESOUL_CAMPFIRECACTUSPOWDER_SNOW
Материалы в пространстве тела, считающиеся опасными по умолчанию:
LAVAWATERFIRESOUL_FIRESWEET_BERRY_BUSHPOWDER_SNOWCOBWEB
Message Settings
Плагин предоставляет message keys и title keys в разделах:
messages.prefixmessages.helpHeadermessages.createdCannonmessages.deletedCannonmessages.movedCannonmessages.targetWorldUpdatedmessages.searchCenterUpdatedmessages.reloadmessages.noPermissionmessages.cannonDisabledmessages.queueCalibrationmessages.noValidLocationYetmessages.noValidLocationFoundmessages.invalidConfigurationmessages.statusLinemessages.probeAllowedmessages.probeBlockedmessages.unknownCommandmessages.titles.launchQueuedTitlemessages.titles.launchQueuedSubtitlemessages.titles.destinationPreviewTitlemessages.titles.destinationPreviewSubtitlemessages.titles.destinationConfirmedTitlemessages.titles.destinationConfirmedSubtitlemessages.titles.arrivalSubtitles
Ключи title управляют автоматическими сообщениями при запуске и прибытии. arrivalSubtitles — это список; плагин случайным образом выбирает одну строку при каждом запуске. В текущей реализации нет ручного окна подтверждения.
Per-Cannon Config Fields
Каждый файл пушки хранит следующие поля:
| Field | Default | Notes |
|---|---|---|
isEnabled | true для только что созданных пушек | Отключенные пушки не срабатывают |
displayName | Санитизированный id, где underscores заменены пробелами | Используется в сообщениях и выводе статуса |
cannonLocation | Обязательно | Где находится триггер пушки |
targetWorld | Текущий мир на момент создания | Должен быть загружен во время runtime |
searchCenter | Спавн текущего мира на момент создания | Если позже не задан, плагин использует спавн целевого мира |
triggerRadius | 1.75 | Радиус для обнаружения ближайших игроков |
minSearchRadius | 500 | Минимальная дистанция поиска от search center |
maxSearchRadius | 5000 | Максимальная дистанция поиска от search center |
launchWarmupSeconds | 6 | Время levitation/countdown перед запуском |
verticalBoostTicks | 45 | Количество тиков вертикального ускорения до телепорта |
verticalBoostVelocity | 1.35 | Вертикальная скорость, применяемая во время запуска |
enableParticles | true | Управляет частицами неактивной пушки |
requiredPermission | пусто | Дополнительная необязательная проверка прав для этой пушки |
Cannon Creation Defaults
Когда вы выполняете /wc create:
- id пушки переводится в lowercase, а символы, отличные от
a-z,0-9,_и-, заменяются на_ - display name по умолчанию становится санитизированным id с underscores, преобразованными в пробелы
cannonLocationустанавливается в вашу текущую точкуtargetWorldустанавливается в ваш текущий мирsearchCenterустанавливается в спавн этого мира
Runtime Validation Behavior
WorldCannon отклоняет кандидаты на точку приземления, если не проходит любая из этих проверок:
- целевой мир не загружен
- search center недействителен
- случайная точка оказывается за границей мира
- не удается найти безопасную твердую поверхность
- пространство для ног или головы заблокировано
- блоки поверхности или пространства тела совпадают с настроенными списками опасных материалов
- интеграция защиты блокирует приземление
Если пушка не может найти допустимую точку до истечения landing.searchTimeoutSeconds, она переходит в состояние exhausted и начинает возвращать настроенное сообщение об ошибке вместо запуска игроков.