BetterStructures
BetterStructures 是一个与生成器无关的地形扫描器,可根据几何形状和方块特性找到自定义结构的最佳放置位置。该插件使用地形自适应方法将原理图粘贴到您的世界中,保持世界的自然外观。
该插件使用先进的扫描来测量地形兼容性,并自适应结构以无缝融入现有世界。它支持基座、特殊方块和智能粘贴,使结构在任何环境中看起来都很自然。
快速开始
需求
必需:
- WorldEdit 或 FastAsyncWorldEdit(必须安装其中之一)
- Minecraft 1.14+ (推荐使用 Paper)
可选:
- EliteMobs(用于结构中的Boss战斗)
- WorldGuard(用于区域保护)
- 自定义世界生成器(Terralith、Iris、Terra、TerraformGenerator)
安装
- 在您的服务器上安装 WorldEdit 或 FastAsyncWorldEdit
- 下载 BetterStructures 并将其放在您的插件文件夹中
- 下载结构包:
- 免费包:magmaguy.itch.io (可用 103+ 个结构)
- 高级包:patreon.com/magmaguy
- 将下载的结构文件提取到
~/plugins/BetterStructures/imports - 启动服务器或运行
/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
结构下载:
- 免费包:magmaguy.itch.io
- 高级包:patreon.com/magmaguy
插件页面: spigotmc.org/resources/betterstructures.103241
支持: 访问官方 GitHub 仓库或 SpigotMC 资源页面以获取支持和报告错误。