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

BetterStructures

BetterStructures - это сканер топологии, независимый от генератора, который находит оптимальные места размещения пользовательских структур на основе геометрии и характеристик блоков. Плагин вставляет схемы в ваш мир методами адаптации к местности, которые сохраняют естественный вид вашего мира.

Плагин использует продвинутое сканирование для измерения совместимости местности и адаптирует структуры так, чтобы они безупречно вписывались в существующие миры. Он поддерживает пьедесталы, специальные блоки и интеллектуальную вставку, которые делают структуры естественными в любой среде.

Начало работы

Требования

Обязательно:

  • WorldEdit или FastAsyncWorldEdit (один должен быть установлен)
  • Minecraft 1.14+ (рекомендуется Paper)

Дополнительно:

  • EliteMobs (для боевых столкновений с боссами в структурах)
  • WorldGuard (для защиты регионов)
  • Пользовательские генераторы миров (Terralith, Iris, Terra, TerraformGenerator)

Установка

  1. Установите WorldEdit или FastAsyncWorldEdit на ваш сервер
  2. Загрузите BetterStructures и поместите его в папку plugins
  3. Загрузите пакеты структур:
  4. Распакуйте загруженные файлы структур в ~/plugins/BetterStructures/imports
  5. Запустите ваш сервер или выполните /betterstructures reload

Плагин автоматически обрабатывает импортированные структуры и делает их доступными для генерации.

Быстрый старт

После установки структуры появляются автоматически в вашем мире в зависимости от их настроек. Чтобы протестировать размещение структур или управлять плагином, используйте команды, указанные ниже.

Команды

Все команды используют базовую /betterstructures или псевдоним /bs.

КомандаОписаниеРазрешение
/betterstructuresОсновная командаNone
/betterstructures reloadПерезагрузить все конфигурацииbetterstructures.*
/betterstructures place <name> <type>Протестировать размещение структуры на вашем местеbetterstructures.*
/betterstructures lootifyДобавить пользовательские предметы в таблицы добычиbetterstructures.*
/betterstructures setupВыполнить процесс настройкиbetterstructures.setup
/betterstructures initializeИнициализировать плагинbetterstructures.initialize
/betterstructures generatemodulesГенерировать модульные подземелья (нормальная скорость)betterstructures.generatemodules
/betterstructures generatemodules slowlyГенерировать модульные подземелья медленно (низкое влияние на сервер)betterstructures.generatemodules.slowly
/betterstructures generatemodules instantlyГенерировать модульные подземелья мгновенно (высокое влияние на сервер)betterstructures.generatemodules.instantly
/betterstructures teleportТелепортироваться в места расположения структурbetterstructures.*
/betterstructures versionОтобразить версию плагинаNone
/betterstructures silentПереключить режим молчанияbetterstructures.*

Разрешения

Все разрешения по умолчанию установлены на op (только операторы сервера).

РазрешениеОписаниеПо умолчанию
betterstructures.setupДоступ к команде setupop
betterstructures.initializeДоступ к команде initializeop
betterstructures.generatemodulesДоступ к стандартной генерации модулейop
betterstructures.generatemodules.slowlyДоступ к медленной генерации модулейop
betterstructures.generatemodules.instantlyДоступ к мгновенной генерации модулейop

Типы структур

BetterStructures поддерживает шесть типов структур, каждый с разными правилами размещения и местами появления.

SURFACE

Размещает структуры на поверхности земли, адаптируясь к высоте местности. Плагин сканирует плоские или совместимые области и размещает структуры с автоматическим слиянием местности.

Расстояние по умолчанию: 31 блок между структурами

SKY

Размещает структуры, парящие в воздухе на больших высотах.

Диапазон высот:

  • Оверворлд: 80-120 блоков
  • End: 80-120 блоков

Расстояние по умолчанию: 95 блоков между структурами

UNDERGROUND_SHALLOW

Генерирует структуры в неглубоких подземных областях рядом с поверхностью.

Диапазон уровня Y (Оверворлд): 0 до 60

Расстояние по умолчанию: 22 блока между структурами

UNDERGROUND_DEEP

Создает структуры в глубоких подземных местоположениях, включая глубокие пещеры и пещерные системы.

Диапазон уровня Y (Оверворлд): -64 до 0

Расстояние по умолчанию: 22 блока между структурами

LIQUID_SURFACE

Размещает структуры на поверхности воды или лавы, идеально подходит для памятников океана или летающих баз.

Расстояние по умолчанию: 65 блоков между структурами

DUNGEON

Генерирует модульные процедурные подземелья с использованием алгоритма Wave Function Collapse. Эти структуры соединяют несколько модулей для создания сложных подземных систем.

Расстояние по умолчанию: 80 блоков между структурами

Конфигурация

Основная конфигурация (config.yml)

Основной файл конфигурации содержит глобальные параметры, которые применяются ко всем структурам.

Диапазоны уровней Y

Контролируйте пределы высоты для генерации структур в разных измерениях.

# Overworld/Custom Worlds
lowestYNormalCustom: -60
highestYNormalCustom: 320

# Nether
lowestYNether: 4
highestYNether: 120

# End
lowestYEnd: 0
highestYEnd: 320

Высоты воздушного строительства

Установите диапазоны высот для структур в небе.

# Overworld/Custom Worlds
normalCustomAirBuildingMinAltitude: 80
normalCustomAirBuildingMaxAltitude: 120

# End
endAirBuildMinAltitude: 80
endAirBuildMaxAltitude: 120

Расстояние между структурами

Определите минимальные расстояния между структурами каждого типа.

distanceSurface: 31        # Surface structures
distanceShallow: 22 # Shallow underground
distanceDeep: 22 # Deep underground
distanceSky: 95 # Sky structures
distanceLiquid: 65 # Liquid surface
distanceDungeon: 80 # Dungeons

Рандомизация расстояния

Добавьте случайное смещение при размещении структур, чтобы предотвратить сеточные узоры.

maxOffsetSurface: 5        # ±5 blocks for surface
maxOffsetShallow: 5 # ±5 blocks for shallow
maxOffsetDeep: 5 # ±5 blocks for deep
maxOffsetSky: 5 # ±5 blocks for sky
maxOffsetLiquid: 5 # ±5 blocks for liquid
maxOffsetDungeon: 18 # ±18 blocks for dungeons

Уведомления администраторам

warnAdminsAboutNewBuildings: true  # Notify admins when structures spawn

Конфигурация схемы

У каждой схемы есть свой файл конфигурации в ~/plugins/BetterStructures/schematics/.

Доступные параметры:

  • isEnabled: Включить или отключить эту схему (по умолчанию: true)
  • weight: Вероятность выбора при наличии нескольких схем (по умолчанию: 1.0)
  • generatorConfigFilename: Связь с конфигурацией генератора, которая контролирует, где эта структура появляется
  • pedestalMaterial: Тип блока, используемый для пьедесталов под структурой
  • treasureFile: Пользовательская конфигурация таблицы добычи для сундуков в этой структуре

Конфигурация генератора

Конфигурации генератора контролируют, где и когда появляются структуры. Файлы находятся в ~/plugins/BetterStructures/generators/.

Доступные параметры:

  • structureType: Один из шести типов (SURFACE, SKY, UNDERGROUND_SHALLOW, UNDERGROUND_DEEP, LIQUID_SURFACE, DUNGEON)
  • lowestYLevel: Минимальная высота появления (по умолчанию: -59)
  • highestYLevel: Максимальная высота появления (по умолчанию: 320)
  • validWorlds: Список названий миров, где эта структура может появиться (пусто = все миры)
  • validWorldEnvironments: Фильтр по типу среды (NORMAL, NETHER, THE_END)
  • validBiomes: Список биомов, где структура может появиться (поддерживает формат пространства имен, такой как minecraft:plains)
  • treasureFilename: Ссылка на таблицу добычи для сундуков в этой структуре

Конфигурация сокровищ

Конфигурации сокровищ определяют таблицы добычи для сундуков структур. Файлы находятся в ~/plugins/BetterStructures/treasures/.

Доступные параметры:

  • mean: Среднее количество предметов в сундуке (по умолчанию: 4.0)
  • standardDeviation: Вариация в количестве предметов (по умолчанию: 3.0)
  • rawLoot: Пулы предметов, организованные по уровню редкости
  • chestEntries: Конкретные предметы с диапазонами количества и вероятностью появления

Конфигурация чар:

Каждый материал может иметь правила чар:

  • minLevel: Минимальный уровень чар
  • maxLevel: Максимальный уровень чар
  • chance: Вероятность применения чар (0.0 до 1.0)

Специальные блоки

BetterStructures использует специальные блоки в схемах для контроля поведения вставки и добавления функциональности.

Блоки барьера

Блоки барьера говорят плагину пропустить вставку в этом месте, сохраняя исходную генерацию мира.

Случаи использования:

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

Блоки коренной породы

Блоки коренной породы гарантируют твердый пол под структурой.

Поведение:

  • Если в этом месте существует твердый блок, оставить его неизменным
  • Если блок - это воздух или жидкость, заменить его материалом пьедестала

Случаи использования:

  • Создавать определенные пути без переопределения естественной местности
  • Обеспечивать структурам прочные основания
  • Добавлять функции, такие как рельсы для вагонеток или мосты, требующие твердых блоков

Знаки появления

Знаки появления создают появления мобов в определенных местах в ваших структурах. Знаки удаляются при вставке структуры.

Ванильные мобы

[spawn]
ZOMBIE

Формат:

  • Строка 1: [spawn]
  • Строка 2: Тип сущности (используйте имена из API Spigot, такие как ZOMBIE, SKELETON, CREEPER)

Интеграция EliteMobs

[elitemobs]
boss_filename.yml

Формат:

  • Строка 1: [elitemobs]
  • Строка 2+: Имя файла конфигурации босса

Создает боевые столкновения с боссами с защитой WorldGuard. Защищенный регион остается до поражения боссом игроками.

Интеграция MythicMobs

[mythicmobs]
mob_identifier
5

Формат:

  • Строка 1: [mythicmobs]
  • Строка 2: ID моба MythicMobs
  • Строка 3: Уровень моба (дополнительно)

Интеграция плагинов

EliteMobs

BetterStructures интегрируется с EliteMobs для создания арен боссов и боевых столкновений.

Возможности:

  • Появление боссов EliteMobs в структурах с использованием знаков появления
  • Автоматическая защита региона во время боев с боссами
  • Удаление защиты при поражении босса

Конфигурация:

protectEliteMobsRegions: true  # Enable EliteMobs region protection

WorldGuard

Интеграция WorldGuard обеспечивает защиту региона и контроль размещения.

Возможности:

  • Пользовательские флаги для размещения структур
  • Возможности защиты региона
  • Совместимость с защищенными областями WorldGuard

WorldEdit / FastAsyncWorldEdit

WorldEdit или FastAsyncWorldEdit требуется для операций вставки схем.

Требования:

  • Установить один (не оба) из этих плагинов
  • Совместимость версий критична - используйте версии, соответствующие вашему серверу
  • FastAsyncWorldEdit рекомендуется для больших структур на загруженных серверах

Генераторы миров

BetterStructures работает с пользовательскими генераторами миров:

Поддерживаемые генераторы:

  • Terralith
  • Iris
  • Terra
  • TerraformGenerator

Эти интеграции позволяют генерировать структуры в пользовательских биомах и типах местности.

Настройка производительности

Настройте эти параметры в config.yml для оптимизации производительности вашего сервера.

Скорость вставки чанков

modularChunkPastingSpeed: 10

Контролирует, как быстро вставляются модульные структуры. Более высокие значения вставляют быстрее, но используют больше ресурсов сервера.

Рекомендуемые значения:

  • Малые серверы (1-10 игроков): 10-15
  • Средние серверы (10-50 игроков): 5-10
  • Большие серверы (50+ игроков): 3-5

Процент использования тика

percentageOfTickUsedForPasting: 0.2

Ограничивает процент каждого тика сервера, используемого для операций вставки. По умолчанию 0.2 (20% времени тика).

Рекомендуемые значения:

  • Высокопроизводительные серверы: 0.3-0.4 (30-40%)
  • Стандартные серверы: 0.2 (20%)
  • Загруженные серверы с проблемами TPS: 0.1-0.15 (10-15%)

Скорость генерации модулей

При использовании /betterstructures generatemodules у вас есть три варианта скорости:

Нормальная: /betterstructures generatemodules Сбалансированная скорость генерации с умеренным воздействием на сервер.

Медленно: /betterstructures generatemodules slowly Минимальное воздействие на сервер, лучше всего для загруженных серверов или во время пиковых часов.

Мгновенно: /betterstructures generatemodules instantly Максимальная скорость, высокое воздействие на сервер. Используйте только в периоды низкого трафика.

API разработчика

BetterStructures предоставляет два события для разработчиков плагинов для взаимодействия с генерацией структур.

BuildPlaceEvent

Срабатывает, когда структура вот-вот будет размещена в мире.

Пакет: com.magmaguy.betterstructures.api.BuildPlaceEvent

Тип события: Можно отменить

Случаи использования:

  • Проверить размещение структуры
  • Реализовать пользовательские проверки разрешений
  • Предотвратить размещение в определенных областях
  • Зарегистрировать генерацию структур

Важно: Не изменяйте сам объект сборки. Событие предоставляет объект FitAnything, но изменение всей сборки может привести к плохой подгонке местности. Делайте только незначительные корректировки, если необходимо.

ChestFillEvent

Срабатывает, когда сундуки в структурах заполняются добычей.

Пакет: com.magmaguy.betterstructures.api.ChestFillEvent

Тип события: Можно отменить

Случаи использования:

  • Добавить пользовательские предметы в добычу структур
  • Изменить или удалить сгенерированную добычу
  • Реализовать пользовательскую логику добычи
  • Отследить содержимое сундуков

Использование: Измените добычу, используя методы addItem() и removeItem() на снимке инвентаря. Не манипулируйте напрямую контейнером сундука.

Зависимость Maven

BetterStructures в настоящее время не имеет репозитория Maven. Чтобы использовать API, вручную импортируйте jar плагина в ваш проект.

<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>BetterStructures</artifactId>
<version>2.0.3</version>
<scope>provided</scope>
</dependency>

Добавьте jar плагина в путь сборки вашего проекта и отметьте его как предоставленную зависимость в вашем plugin.yml.

Дополнительные ресурсы

Официальная вики GitHub: github.com/MagmaGuy/BetterStructures/wiki

Загрузки структур:

Страница плагина: spigotmc.org/resources/betterstructures.103241

Поддержка: Посетите официальный репозиторий GitHub или страницу ресурса SpigotMC для поддержки и отчетов об ошибках.