Интеграции CannonRTP с защитой
CannonRTP может проверять кандидатов на точки приземления против нескольких плагинов защиты, прежде чем поставить их в очередь использования.
Поддерживаемые интеграции
Текущие мягкие зависимости (soft dependencies):
- WorldGuard
- Towny
- Lands
- GriefPrevention
- HuskTowns
- HuskClaims
Они объявлены как softdepend в plugin.yml. CannonRTP работает без установленных плагинов; отсутствующие плагины молча пропускаются.
Как работают проверки защиты
- Адаптеры проверяются в фиксированном порядке: WorldGuard, Towny, Lands, GriefPrevention, HuskTowns, HuskClaims.
- Адаптер защиты регистрируется только тогда, когда (а) его переключатель
enabledравенtrueвprotection.ymlИ (б) плагин присутствует и загружен на сервере. - Первый адаптер, который блокирует точку, останавливает проверку и становится сообщаемой причиной.
- Если API защиты выбрасывает ошибку, CannonRTP по умолчанию блокирует это приземление (fail-closed, безопасный отказ). Это управляется параметром
failOpenOnProtectionErrorsвlanding.yml.
Глобальный переключатель безопасности при сбоях API:
failOpenOnProtectionErrors(вlanding.yml)
По умолчанию: false
Когда установлено в true, CannonRTP разрешит приземления, если плагин защиты не может быть безопасно опрошен.
Команда /wc probe
Администраторы могут встать в любой точке и выполнить /wc probe, чтобы проверить, проходит ли эта точка все включённые проверки защиты. Результат сообщает, какой плагин заблокировал точку и почему, либо подтверждает, что точка корректна.
Файл конфигурации
Все переключатели защиты находятся в plugins/CannonRTP/protection.yml. Ключи расположены на верхнем уровне (например, worldGuard.enabled, а не protection.worldGuard.enabled).
Поведение по каждому плагину
WorldGuard
Ключи конфигурации:
worldGuard.enabledworldGuard.allowGlobalRegionOnlyworldGuard.allowBuildAllowedRegionsworldGuard.allowPassthroughRegions
Поведение по умолчанию:
- включено по умолчанию
- точки, покрытые только регионом
__global__, разрешены по умолчанию - регионы с
build=ALLOWразрешены по умолчанию - регионы с
passthrough=ALLOWразрешены по умолчанию - другие совпадающие защищённые регионы блокируются
Towny
Ключи конфигурации:
towny.enabledtowny.allowWildernesstowny.allowNationZonestowny.allowClaimedTownBlocks
Поведение по умолчанию:
- включено по умолчанию
- дикая местность разрешена
- зоны наций блокируются
- застолблённые блоки городов блокируются
Lands
Ключи конфигурации:
lands.enabledlands.allowUnclaimedAreaslands.allowClaimedAreas
Поведение по умолчанию:
- включено по умолчанию
- незастолблённые области разрешены
- застолблённые области блокируются
GriefPrevention
Ключи конфигурации:
griefPrevention.enabledgriefPrevention.allowWildernessgriefPrevention.allowAdminClaimsgriefPrevention.allowPlayerClaims
Поведение по умолчанию:
- включено по умолчанию
- дикая местность разрешена
- административные клеймы блокируются
- игровые клеймы блокируются
HuskTowns
Ключи конфигурации:
huskTowns.enabledhuskTowns.allowWildernesshuskTowns.allowAdminClaimshuskTowns.allowRegularClaimshuskTowns.allowFarmClaimshuskTowns.allowPlotClaims
Поведение по умолчанию:
- включено по умолчанию
- дикая местность разрешена
- административные клеймы блокируются
- обычные городские клеймы блокируются
- фермерские клеймы блокируются
- участковые клеймы блокируются
HuskClaims
Ключи конфигурации:
huskClaims.enabledhuskClaims.allowWildernesshuskClaims.allowAdminClaimshuskClaims.allowPlayerClaims
Поведение по умолчанию:
- включено по умолчанию
- дикая местность разрешена
- административные клеймы блокируются
- игровые клеймы блокируются
Проверки за пределами защиты по-прежнему действуют
Интеграции с защитой — только одна часть проверки приземления. Точка всё равно может быть отклонена, потому что:
- она находится за границей мира
- не существует безопасной поверхности
- пространство для ног или головы заблокировано
- рельеф совпадает с настроенными списками небезопасных материалов
- слушатель
CannonRTPLocationValidationEventотклоняет её (см. API события)
Отчёт о неудачах
Когда пушка истощается (не может найти достаточно корректных точек до того, как закончатся searchTimeoutAttempts), вывод статуса и сообщения для игроков включают разбор частых причин отклонения. Если большинство отклонений пришло на защищённые территории — это сообщается. Это помогает администраторам диагностировать, не слишком ли ограничительные настройки защиты для их сервера.