基本信息
我的世界Java版本
1.21.4
平台
Fabric
运行环境
详情信息
许可证 CC0-1.0
发布于 2025-04-12
更新于 2025-04-24
更新日志
Chain Mining Reforged Mod & 范围选择系统 - 更新日志
版本:1.21.4
依赖项:Fabric API、Cloth Config
1. Chain Mining Reforged Mod 更新日志
1.1 功能概述
- 提供
/redstone命令,用于调整红石信号传输距离。 - 支持设置当前传输距离、增加或减少距离,以及调整最大允许距离。
- 配置文件位于
./config/redstone_config.json,默认最大距离为 32,当前距离为 15。
1.2 命令语法
- 基础命令:
/redstone <子命令> [参数] - 子命令:
set <值>:设置当前传输距离。权限等级:2(OP)。add <值>:增加当前传输距离。权限等级:2(OP)。remove current <值>:减少当前传输距离。权限等级:2(OP)。remove max <值>:减少最大允许传输距离。权限等级:2(OP)。
1.3 参数详情
<值>:整数,范围1 ≤ 值 ≤ 最大值,表示传输距离。current:字符串,字面值 "current",表示当前红石距离。max:字符串,字面值 "max",表示可配置的最大限制。
1.4 使用示例
1.4.1 基础调整
# 设置传输距离为 24 格
/redstone set 24
# 增加当前距离 5(不超过最大值)
/redstone add 5
# 减少当前距离 3(最小为 1)
/redstone remove current 3
1.4.2 最大限制控制
# 减少最大允许距离 10
/redstone remove max 10
# 尝试设置更高的值(会自动限制)
/redstone set 30 # 如果最大值为 25,则实际设置为 25
1.4.3 安全检查
# 以下命令会失败并提示:
/redstone set 0 → "值必须至少为 1"
/redstone remove max 999 → "无法减少到 1 以下"
1.5 实时行为
- 更改会立即在已加载的区块中生效。
- 如果最大值被降低到当前值以下,当前值会自动调整。
- 需要重启服务器以使配置文件更改生效。
1.6 常见问题
问:为什么无法设置超过 32 的值?
答:修改配置文件中的 maxPowerDistance 或先使用 /redstone remove max 命令。
问:使用这些命令需要 OP 权限吗?
答:是的,需要权限等级 2(通常为服务器管理员)。
1.7 技术说明
- 使用 Mixin 覆盖
AbstractRedstoneBlock.getReceivedRedstonePower()。 - 所有值通过 Cloth Config 自动保存。
- 所有操作均会进行安全值限制。
2. 范围选择系统更新日志
2.1 系统概述
范围选择系统为 Fabric 1.21.4+ 提供了类似 WorldEdit 的功能,支持通过定义的立方体区域进行精确方块操作。主要功能包括:
- 带有彩色轮廓的可视化选择渲染。
- 两点选择方法(类似于 WorldEdit 的木斧)。
- 异步处理大型选择(最多 100,000 个方块)。
- 在选择区域内测试红石和执行命令。
2.2 核心组件
2.2.1 选择区域类
public class SelectionArea implements Iterable<BlockPos> {
private final BlockPos minPos, maxPos;
private final int volume;
// 构造一个经过验证的选择区域
public SelectionArea(BlockPos pos1, BlockPos pos2) { ... }
// 迭代实现
public Iterator<BlockPos> iterator() { ... }
public void forEachBlock(World world, Consumer<BlockPos> action) { ... }
public Stream<BlockPos> stream() { ... }
}
2.2.2 客户端渲染
@Environment(EnvType.CLIENT)
public class SelectionRenderer {
private static final int OUTLINE_COLOR = 0xFF0000; // 红色
public static void register() {
WorldRenderEvents.END.register(ctx -> {
// 渲染边缘粒子
});
}
}
2.3 命令规范
2.3.1 //set 命令
语法:
//set <方块>
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
<方块> |
BlockState | 任何有效的方块状态 ID |
功能:
- 将选择区域内的所有方块替换为指定方块。
- 对于超过 10k 方块的选择,异步处理。
- 返回更改的方块数量。
示例:
//set minecraft:stone
//set minecraft:oak_planks[axis=x]
2.3.2 //test 命令
语法:
//test <目标> [run <命令>]
参数:
| 参数 | 类型 | 描述 |
|---|---|---|
<目标> |
BlockState | 用于过滤的方块状态 |
run |
Literal | 可选执行标志 |
<命令> |
String | 在匹配方块上执行的命令 |
功能:
- 不带
run:测试目标方块的红石信号强度。 - 带
run:在每个目标方块上执行命令。 - 操作期间高亮显示选择边界。
示例:
//test minecraft:redstone_wire // 测试红石信号强度
//test minecraft:lever run set air // 破坏所有拉杆
//test #buttons run tp @s ~ ~1 ~ // 传送到按钮上方
2.4 更新日志
[0.0.1+build.15] - 2025-03-31
新增:
//test命令现在支持:- 方块状态过滤(例如
minecraft:furnace[facing=north])。 - 标签目标(例如
#stairs)。 - 选择区域在重新登录后持久化(存储在玩家 NBT 中)。
- 方块状态过滤(例如
更改:
- 改进异步处理:
- 基于区块的任务调度。
- 每 5 秒报告进度。
- 粒子渲染:
- 使用自定义着色器以提高可见性。
- 可通过
/selectionmod config配置。
修复:
- 大型选择迭代中的内存泄漏。
- 异步操作期间的并发修改问题。
- 红石信号计算中的边界情况。
2.5 性能特性
| 操作 | 时间复杂度 | 备注 |
|---|---|---|
| 选择创建 | O(1) | 即时验证 |
| 方块迭代 | O(n) | 平均每方块 100μs |
//set 执行 |
O(n) | 超过 10k 方块时异步处理 |
| 渲染 | O(edges) | 仅渲染可见边缘 |
2.6 最佳实践
-
对于大型选择(>50k 方块):
- 在非高峰时段使用
//set。 - 考虑区块对齐的选择以获得最佳性能。
- 在非高峰时段使用
-
红石测试:
//test #redstone_components run data get block ~ ~ ~ power -
调试:
/debug start cmr-mod /debug report cmr-mod --bounds
2.7 限制
- 最大选择大小:100,000 个方块。
- 不支持跨维度选择。
- 无撤销/重做功能(计划在 v1.3 中添加)。
更多信息
资源类型
Minecraft资源发布版本
Beta版本号
0.0.1+build.15运行环境
游戏版本
1.21.4下载量
0发布时间
2025-04-11 23:15:22创作者
Redstone2337
Member



