配置项全表(92 项,28 个分类)

基本信息

属性 值
实现类 openblocks.Config(1482 行)
声明机制 OpenModsLib 的 @ConfigProperty(category=..., name=..., comment=...) 反射注册
总数 92
分类数 28
额外注解 部分项带 @OnLineModifiable,允许运行中热改(例:Config.java:541、:548、:558、:466、:470)
第二套配置 ItemHangGlider.loadConfig 自建 Configuration,键 general.BlacklistedDimensions(不在本表内)

92 这个数字经两种独立方式核对:逐条解析 @ConfigProperty 注解块计数 = 92;剥离注释后统计 @ConfigProperty 原始出现次数 = 92。一致。

分类计数

分类 数量 分类 数量 分类 数量 分类 数量
graves 10 dropblock 8 features 7 crane 6
tomfoolery 6 sprinkler 6 tanks 5 projector 5
loot 5 fan 3 sponge 3 guide 3
luggage 2 trophy 2 glasses 2 imaginary 2
debug 2 additional 2 cartographer 2 radio 2
magnet 2 hacks 1 cursor 1 scaffolding 1
egg 1 ladder 1 devnull 1 hangglider 1

合计:10+8+7+6+6+6+5+5+5+3+3+3+2+2+2+2+2+2+2+2+1+1+1+1+1+1+1+1 = 92 ✓

已确认的缺陷:重复配置键

sponge.spongeRange 被声明了两次,字段名不同但配置键完全相同:

// Config.java:466-468
@OnLineModifiable
@ConfigProperty(category = "sponge", name = "spongeRange", comment = "Sponge block range (distance from center)")
public static int spongeRange = 3;

// Config.java:470-472
@OnLineModifiable
@ConfigProperty(category = "sponge", name = "spongeRange", comment = "Sponge block range (distance from center)")
public static int spongeStickRange = 3;

连 comment 都一字不差。后果(对全仓库 grep 两个字段名的结果):

字段 配置键 外部读取点 状态
spongeRange sponge.spongeRange BlockSponge.java:53、:54、:55 可配置,但与下一项抢同一个键
spongeStickRange sponge.spongeRange(重复) ItemSpongeOnAStick.java:41、:42、:43 可配置,但键名明显应为 spongeStickRange

两个字段都有活跃的外部读取点,所以都不是死字段;问题在于配置写入时后加载的 spongeStickRange 会覆盖同一个配置键的值,用户无法为海绵方块和海绵棒分别设置半径。仓库内没有注释或提交信息说明这是有意共用一个键(例如「两者共用同一半径」),且两者的语义本应独立(一个是方块半径,一个是手持物半径)——因此报告为缺陷。

关键项速查

键 Java 字段 默认值 字段行 用途
dropblock.searchDistance elevatorTravelDistance 20 Config.java:65 电梯搜索距离
dropblock.ignoreAllBlocks elevatorIgnoreBlocks false Config.java:72 电梯忽略所有阻挡(注释自陈等价于 maxPassThrough = infinity)
dropblock.ignoreHalfBlocks elevatorIgnoreHalfBlocks false Config.java:79 电梯计数穿透方块时忽略半砖
dropblock.maxPassThrough elevatorMaxBlockPassCount 4 Config.java:86 电梯穿透方块上限
dropblock.centerOnBlock elevatorCenter false Config.java:93 电梯居中传送
dropblock.specialBlockRules elevatorRules new String[0] Config.java:100 特殊方块规则表,格式 <modId>:<blockName>:<action> 或 id:<blockId>:<action>
dropblock.elevatorXpDrainRatio elevatorXpDrainRatio 0 Config.java:107 电梯经验消耗,注释给出公式 ratio * distance
dropblock.irregularBlocksArePassable irregularBlocksArePassable true Config.java:152 允许穿透自定义碰撞箱方块
tanks.bucketsPerTank bucketsPerTank 16 Config.java:110 每个储罐的桶数
fan.fanForce fanForce 0.05 Config.java:450 每刻最大力,线性衰减
fan.fanRange fanRange 10 Config.java:454 风扇范围(格)
fan.isRedstoneActivated redstoneActivatedFan true Config.java:461 风扇力是否受红石控制
guide.redstoneSensitivity guideRedstone 1 Config.java:546 0=不敏感 / 1=通电即开 / −1=反相
guide.renderDistanceSq guideRenderRangeSq 256 * 256 Config.java:550 渲染距离平方
guide.useAdvancedRenderer useAdvancedRenderer true Config.java:556 尝试高级 OpenGL 渲染
scaffolding.despawnRate scaffoldingDespawnRate 4 Config.java:563 脚手架消失速率,0 = 最快
egg.pickBlocks eggCanPickBlocks true Config.java:570 金蛋孵化时能否放置方块(注释自陈 may lead to glitches)
magnet.pickEntities canMagnetPickEntities true Config.java:574 起重机磁铁吸实体
magnet.pickBlocks canMagnetPickBlocks true Config.java:578 起重机磁铁吸方块
ladder.infiniteMode infiniteLadder false Config.java:585 梯子旧行为:一次放满整列且破坏不掉落
devnull.sneakClickToGui devNullSneakGui true Config.java:592 /dev/null 需潜行才能开 GUI
hangglider.enableThermal hanggliderEnableThermal true Config.java:599 热气流上升
sponge.spongeStickUseCount spongeMaxDamage 256 Config.java:464 海绵棒耐久
sponge.spongeRange spongeRange 3 Config.java:468 重复键,见上
sponge.spongeRange spongeStickRange 3 Config.java:472 重复键,见上
projector.lightUpWhenWorking litWhenDisplayingMap true Config.java:478 投影仪显示地图时发光

以上 26 项是各条目页直接引用过的,逐行核对过字段名与行号。其余 66 项按分类分组在 Config.java 中,本次未逐项抄录到本页,以免产生未经逐行核对的转录错误;需要精确键名时以 Config.java 为准。

未纳入本表的配置

ItemHangGlider.loadConfig 走的是自己 new Configuration(event.getSuggestedConfigurationFile()) 的路径,不使用 @ConfigProperty,因此不在 92 之内:

键 类型 默认值 位置
general.BlacklistedDimensions int[] 39 个维度 ID ItemHangGlider.java:84-89

对全 openblocks 源码 grep new Configuration 只有这一处。

相关条目