BetterStructures
BetterStructures - это сканер топологии, независимый от генератора, который находит оптимальные места размещения пользовательских структур на основе геометрии и характеристик блоков. Плагин вставляет схемы в ваш мир методами адаптации к местности, которые сохраняют естественный вид вашего мира.
Плагин использует продвинутое сканирование для измерения совместимости местности и адаптирует структуры так, чтобы они безупречно вписывались в существующие миры. Он поддерживает пьедесталы, специальные блоки и интеллектуальную вставку, которые делают структуры естественными в любой среде.
Начало работы
Требования
Обязательно:
- WorldEdit или FastAsyncWorldEdit (один должен быть установлен)
- Minecraft 1.14+ (рекомендуется Paper)
Дополнительно:
- EliteMobs (для боевых столкновений с боссами в структурах)
- WorldGuard (для защиты регионов)
- Пользовательские генераторы миров (Terralith, Iris, Terra, TerraformGenerator)
Установка
- Установите WorldEdit или FastAsyncWorldEdit на ваш сервер
- Загрузите BetterStructures и поместите его в папку plugins
- Загрузите пакеты структур:
- Бесплатные пакеты: magmaguy.itch.io (доступно 103+ структур)
- Премиум пакеты: patreon.com/magmaguy
- Распакуйте загруженные файлы структур в
~/plugins/BetterStructures/imports - Запустите ваш сервер или выполните
/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 | Доступ к команде setup | op |
betterstructures.initialize | Доступ к команде initialize | op |
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
Загрузки структур:
- Бесплатные пакеты: magmaguy.itch.io
- Премиум пакеты: patreon.com/magmaguy
Страница плагина: spigotmc.org/resources/betterstructures.103241
Поддержка: Посетите официальный репозиторий GitHub или страницу ресурса SpigotMC для поддержки и отчетов об ошибках.