跳到主要内容

BetterStructures

BetterStructures 是一个与生成器无关的地形扫描器,可根据几何形状和方块特性找到自定义结构的最佳放置位置。该插件使用地形自适应方法将原理图粘贴到您的世界中,保持世界的自然外观。

该插件使用先进的扫描来测量地形兼容性,并自适应结构以无缝融入现有世界。它支持基座、特殊方块和智能粘贴,使结构在任何环境中看起来都很自然。

快速开始

需求

必需:

  • WorldEdit 或 FastAsyncWorldEdit(必须安装其中之一)
  • Minecraft 1.14+ (推荐使用 Paper)

可选:

  • EliteMobs(用于结构中的Boss战斗)
  • WorldGuard(用于区域保护)
  • 自定义世界生成器(Terralith、Iris、Terra、TerraformGenerator)

安装

  1. 在您的服务器上安装 WorldEdit 或 FastAsyncWorldEdit
  2. 下载 BetterStructures 并将其放在您的插件文件夹中
  3. 下载结构包:
  4. 将下载的结构文件提取到 ~/plugins/BetterStructures/imports
  5. 启动服务器或运行 /betterstructures reload

该插件会自动处理导入的结构并使其可用于生成。

快速开始

安装后,结构会根据其配置的设置在您的世界中自动生成。要测试结构放置或管理插件,请使用下面列出的命令。

命令

所有命令都使用基础 /betterstructures 或别名 /bs

命令描述权限
/betterstructures主命令
/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显示插件版本
/betterstructures silent切换静默模式betterstructures.*

权限

所有权限默认为 op (仅限服务器管理员)。

权限描述默认值
betterstructures.setup访问设置命令op
betterstructures.initialize访问初始化命令op
betterstructures.generatemodules访问标准模块生成op
betterstructures.generatemodules.slowly访问缓慢模块生成op
betterstructures.generatemodules.instantly访问即时模块生成op

结构类型

BetterStructures 支持六种结构类型,每种都有不同的放置规则和生成位置。

SURFACE

在地面表面生成结构,自适应地形高度。该插件扫描平坦或兼容区域,并使用自动地形混合放置结构。

默认间距: 结构之间相隔 31 个方块

SKY

在高空处放置浮动结构。

高度范围:

  • 主世界:80-120 方块
  • 末路之地:80-120 方块

默认间距: 结构之间相隔 95 个方块

UNDERGROUND_SHALLOW

在地表附近的浅地下区域生成结构。

Y 级范围(主世界): 0 到 60

默认间距: 结构之间相隔 22 个方块

UNDERGROUND_DEEP

在深层地下位置创建结构,包括深层洞穴和地下洞穴。

Y 级范围(主世界): -64 到 0

默认间距: 结构之间相隔 22 个方块

LIQUID_SURFACE

在水或岩浆表面生成结构,非常适合海洋纪念碑或浮动基地。

默认间距: 结构之间相隔 65 个方块

DUNGEON

使用波函数坍缩算法生成模块化程序地牢。这些结构连接多个模块以创建复杂的地下系统。

默认间距: 结构之间相隔 80 个方块

配置

主配置 (config.yml)

主配置文件包含应用于所有结构的全局设置。

Y 级范围

控制不同维度中的结构生成高度限制。

# 主世界/自定义世界
lowestYNormalCustom: -60
highestYNormalCustom: 320

# 下界
lowestYNether: 4
highestYNether: 120

# 末路之地
lowestYEnd: 0
highestYEnd: 320

空气建筑高度

为基于天空的结构设置高度范围。

# 主世界/自定义世界
normalCustomAirBuildingMinAltitude: 80
normalCustomAirBuildingMaxAltitude: 120

# 末路之地
endAirBuildMinAltitude: 80
endAirBuildMaxAltitude: 120

结构间距

定义每种类型结构之间的最小距离。

distanceSurface: 31        # 地表结构
distanceShallow: 22 # 浅地下
distanceDeep: 22 # 深地下
distanceSky: 95 # 天空结构
distanceLiquid: 65 # 液体表面
distanceDungeon: 80 # 地牢

间距随机化

向结构放置添加随机偏移以防止网格图案。

maxOffsetSurface: 5        # 地表 ±5 方块
maxOffsetShallow: 5 # 浅地下 ±5 方块
maxOffsetDeep: 5 # 深地下 ±5 方块
maxOffsetSky: 5 # 天空 ±5 方块
maxOffsetLiquid: 5 # 液体 ±5 方块
maxOffsetDungeon: 18 # 地牢 ±18 方块

管理员通知

warnAdminsAboutNewBuildings: true  # 结构生成时通知管理员

原理图配置

每个原理图在 ~/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 行:实体类型(使用 Spigot API 名称,如 ZOMBIE、SKELETON、CREEPER)

EliteMobs 集成

[elitemobs]
boss_filename.yml

格式:

  • 第 1 行:[elitemobs]
  • 第 2 行+:Boss 配置文件名

使用 WorldGuard 保护创建 Boss 战斗遭遇。受保护的区域保持到玩家击败 Boss 为止。

MythicMobs 集成

[mythicmobs]
mob_identifier
5

格式:

  • 第 1 行:[mythicmobs]
  • 第 2 行:MythicMobs 生物 ID
  • 第 3 行:生物等级(可选)

插件集成

EliteMobs

BetterStructures 与 EliteMobs 集成以创建 Boss 竞技场和战斗遭遇。

功能:

  • 使用生成标志在结构中生成 EliteMobs Boss
  • Boss 战斗期间自动区域保护
  • Boss 被击败时移除保护

配置:

protectEliteMobsRegions: true  # 启用 EliteMobs 区域保护

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

Tick 使用百分比

percentageOfTickUsedForPasting: 0.2

限制每个服务器 Tick 用于粘贴操作的百分比。默认值为 0.2(Tick 时间的 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 Wiki: github.com/MagmaGuy/BetterStructures/wiki

结构下载:

插件页面: spigotmc.org/resources/betterstructures.103241

支持: 访问官方 GitHub 仓库或 SpigotMC 资源页面以获取支持和报告错误。