Перейти к основному содержимому

Интеграции 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:

  • failOpenOnProtectionErrorslanding.yml)

По умолчанию: false

Когда установлено в true, CannonRTP разрешит приземления, если плагин защиты не может быть безопасно опрошен.

Команда /wc probe

Администраторы могут встать в любой точке и выполнить /wc probe, чтобы проверить, проходит ли эта точка все включённые проверки защиты. Результат сообщает, какой плагин заблокировал точку и почему, либо подтверждает, что точка корректна.

Файл конфигурации

Все переключатели защиты находятся в plugins/CannonRTP/protection.yml. Ключи расположены на верхнем уровне (например, worldGuard.enabled, а не protection.worldGuard.enabled).

Поведение по каждому плагину

WorldGuard

Ключи конфигурации:

  • worldGuard.enabled
  • worldGuard.allowGlobalRegionOnly
  • worldGuard.allowBuildAllowedRegions
  • worldGuard.allowPassthroughRegions

Поведение по умолчанию:

  • включено по умолчанию
  • точки, покрытые только регионом __global__, разрешены по умолчанию
  • регионы с build=ALLOW разрешены по умолчанию
  • регионы с passthrough=ALLOW разрешены по умолчанию
  • другие совпадающие защищённые регионы блокируются

Towny

Ключи конфигурации:

  • towny.enabled
  • towny.allowWilderness
  • towny.allowNationZones
  • towny.allowClaimedTownBlocks

Поведение по умолчанию:

  • включено по умолчанию
  • дикая местность разрешена
  • зоны наций блокируются
  • застолблённые блоки городов блокируются

Lands

Ключи конфигурации:

  • lands.enabled
  • lands.allowUnclaimedAreas
  • lands.allowClaimedAreas

Поведение по умолчанию:

  • включено по умолчанию
  • незастолблённые области разрешены
  • застолблённые области блокируются

GriefPrevention

Ключи конфигурации:

  • griefPrevention.enabled
  • griefPrevention.allowWilderness
  • griefPrevention.allowAdminClaims
  • griefPrevention.allowPlayerClaims

Поведение по умолчанию:

  • включено по умолчанию
  • дикая местность разрешена
  • административные клеймы блокируются
  • игровые клеймы блокируются

HuskTowns

Ключи конфигурации:

  • huskTowns.enabled
  • huskTowns.allowWilderness
  • huskTowns.allowAdminClaims
  • huskTowns.allowRegularClaims
  • huskTowns.allowFarmClaims
  • huskTowns.allowPlotClaims

Поведение по умолчанию:

  • включено по умолчанию
  • дикая местность разрешена
  • административные клеймы блокируются
  • обычные городские клеймы блокируются
  • фермерские клеймы блокируются
  • участковые клеймы блокируются

HuskClaims

Ключи конфигурации:

  • huskClaims.enabled
  • huskClaims.allowWilderness
  • huskClaims.allowAdminClaims
  • huskClaims.allowPlayerClaims

Поведение по умолчанию:

  • включено по умолчанию
  • дикая местность разрешена
  • административные клеймы блокируются
  • игровые клеймы блокируются

Проверки за пределами защиты по-прежнему действуют

Интеграции с защитой — только одна часть проверки приземления. Точка всё равно может быть отклонена, потому что:

  • она находится за границей мира
  • не существует безопасной поверхности
  • пространство для ног или головы заблокировано
  • рельеф совпадает с настроенными списками небезопасных материалов
  • слушатель CannonRTPLocationValidationEvent отклоняет её (см. API события)

Отчёт о неудачах

Когда пушка истощается (не может найти достаточно корректных точек до того, как закончатся searchTimeoutAttempts), вывод статуса и сообщения для игроков включают разбор частых причин отклонения. Если большинство отклонений пришло на защищённые территории — это сообщается. Это помогает администраторам диагностировать, не слишком ли ограничительные настройки защиты для их сервера.