
CM的全体
连锁采集矿石、树木和地形——在一个mod中集成了MineAll、CutAll和DigAll——而不会破坏你自己的建筑。玩家放置的方块会被自动跳过,所有设置都可以通过游戏内GUI进行配置。
查看大图CM'sALL
一款可自定义的连锁采集模组,内置方块保护功能以保障您的建筑安全。
CM'sALL 将三种核心连锁采集功能整合到单个模组中,同时解决了一个常见问题:意外破坏玩家建筑。通过追踪玩家放置的方块,确保您的木屋、石墙和自定义路径在批量采集时保持完好无损。
支持版本
| Minecraft | 加载器 | Architectury API |
|---|---|---|
| 1.21.1 | NeoForge, Fabric | 13.0.8 |
| 1.21 | NeoForge, Fabric | 13.0.8 |
| 1.20.1 | Forge, Fabric | 9.2.14 |
| 1.16.5 | Forge, Fabric | 1.32.68 |
| 1.12.2 | Forge | — (独立运行,无需依赖) |
每个 Minecraft 版本和加载器都提供独立的 jar 文件(例如 cmsall-forge-1.0.0+1.20.1.jar、cmsall-fabric-1.0.0+1.20.1.jar)。仅需安装与您的 Minecraft 版本和加载器匹配的单个 jar 文件即可。
依赖
- Architectury API — 除 1.12.2 外的所有版本均需安装,且需使用上表中对应 Minecraft 版本的版本号(1.20.1 为 9.2.14;1.21 / 1.21.1 为 13.0.8;1.16.5 为 1.32.68)。该 Minecraft 版本下任何兼容的新版本也可使用。
- Fabric API — Fabric 版本的 jar 文件需要。
- ModMenu — 可选,仅限 Fabric。在模组列表中添加游戏内配置按钮(参见配置)。没有它模组仍可运行;您可以从暂停菜单或通过命令进行配置。
功能特性
- 单个模组集成三种功能
- MineAll(连锁挖矿): 连锁采集连接的同类型矿石(例如采集煤炭不会意外触发相邻的铁矿石)。
- CutAll(连锁砍树): 砍倒整棵树和下界巨型菌类。如有需要,主世界巨型蘑菇也可加入列表。可选择性启用树叶连锁破坏。
- DigAll(连锁挖掘): 清除范围内连接的软质地形方块(泥土、沙子、沙砾、粘土等)——混合地形也能连锁。
- 建筑保护(玩家放置方块追踪) 追踪玩家放置的方块坐标,并在连锁采集时自动跳过它们。(CutAll 默认启用;每个功能均可单独配置。)
- 禁用列表 无论其他列表如何,某些方块永远不会被连锁破坏——默认包含刷怪笼和末地传送门框架,您还可以自行添加。
- 游戏内 GUI 配置 所有功能和服务器规则均可通过游戏内菜单配置,无需手动编辑 JSON 或 TOML 文件。参见配置。
- 玩家独立激活模式 玩家可以各自选择如何触发模组:按住(潜行)、切换、始终开启或潜行反转。
- 自动补种 砍倒树木后,可选择自动从掉落物中补种树苗(每个玩家可独立配置)。
- 灵活的掉落物管理 选项包括:将掉落物直接放入玩家背包、聚集到破坏起始点、或自动删除配置的大量无用方块(如圆石或泥土)。
- 工具耐久度与安全 包含可配置的耐久度消耗倍率。连锁会在耐久度归零前自动停止,防止工具损坏。
- 服务端权威 & 领地模组兼容 服务端配置同步至客户端,玩家无法覆盖。它会触发标准的方块破坏事件,以兼容领地保护模组。
配置
CM'sALL 完全可以在游戏内配置——无需手动编辑配置文件。
从暂停菜单(任何位置):
- 按 Esc 键打开暂停菜单。
- 点击位于进度按钮旁边的铁镐图标。
- 立即调整您的激活模式、开关或服务器范围限制(仅 OP 可操作)。
从模组列表(标题画面):
- 打开 模组 → CM'sALL → 配置 访问您的客户端设置(激活模式、补种、保护)。此处不显示服务器设置,因为它们属于世界。
- 在 Forge / NeoForge 上,此按钮内置。在 Fabric 上则需要安装 ModMenu。
按键绑定与实用功能
- 切换按键绑定: 默认为未绑定,以防止冲突。您可以在 选项 → 控制 中绑定
CM'sALL:切换,以便在不打开菜单的情况下快速开启或关闭模组。 - 玩家特定的偏好(激活模式、补种开关、保护)将根据玩家 UUID 保存在服务端。
技术规格与性能
- 连锁上限: 每次采集受
globalMaxBlocks限制(默认:256,最大:8192)以维持连锁的边界。 - TPS 保护(
perTickBudget): 默认情况下(0),整个连锁在一个游戏刻内处理。对于高人口服务器,将此值设置为大于0可将工作负载分散到多个游戏刻中(例如每刻破坏 N 个方块),防止服务器卡顿和 TPS 下降。 - 追踪限制: 每个功能的世界范围追踪上限(
trackCutMax默认 16384;trackMineMax/trackDigMax默认 4096)。达到上限时,会使用 FIFO(先进先出)策略淘汰旧记录。
命令
所有功能也可以通过 /cmsall 命令结构进行管理。
面向所有玩家
/cmsall status— 显示您当前的设置。/cmsall mode <hold|toggle|always|sneak_invert>— 更改您的激活模式。/cmsall toggle— 切换您的连锁采集能力。/cmsall replant <true|false>— 为自己切换自动补种。/cmsall protect <true|false>— 切换是否跳过自己放置的方块。
面向管理员(需要权限等级 ≥ editPermissionLevel,默认 3)
/cmsall enable <true|false>— 模组的主开关。/cmsall reload— 重新加载服务端配置文件(config/cmsall-server.json)。/cmsall <mine|cut|dig> <block|tool> <add|remove> <id>— 添加或移除方块/工具定义(支持模组 ID)。/cmsall track <enable|max|overflow|reset|status>— 管理放置方块追踪。
注:未指定命名空间的资源 ID 默认为 minecraft:。
已知限制(Forge / NeoForge)
为确保与保护、领地及日志模组的严格兼容,CM'sALL 在 Forge/NeoForge 环境下,会为连锁中破坏的每一个方块触发标准的 BlockEvent.BreakEvent。因此,其他追踪破坏事件的模组(如任务链、反作弊或工具经验类模组)将处理每个独立的方块事件。Fabric 通过其采集查询 API 处理此事,不会发出重复事件。
面向开发者(API)
CM'sALL 提供了一个小型、与加载器无关的 API,以便其他移动方块的模组(自定义活塞、传送带及类似方块移动模组)能够让 CM'sALL 的玩家放置保护功能跟随这些方块移动。原版活塞已自动处理——这仅适用于非活塞的自定义移动器。请在服务端线程上调用。
类:cmsall.api.CmsAllTracking
推荐模式 — 包围移动操作,然后仅将实际落位的方块进行 relocate,在移动完成后执行。如果移动中途失败,未移动的源方块将保留其保护状态:
import cmsall.api.CmsAllTracking;
CmsAllTracking.beginMove();
try {
// ... 您的模组在此执行实际的 setBlock 移动操作 ...
CmsAllTracking.relocate(level, landedFromTo); // 仅实际落点的方块;Map<BlockPos, BlockPos>:源方块 -> 目标方块
} finally {
CmsAllTracking.endMove();
}
包围操作是可重入的——嵌套调用 beginMove()/endMove()(例如,各自包围移动操作的辅助函数)是安全的。如果移动是一个不可能失败的单一步骤,您可以在清除源方块之前跳过包围操作并直接调用 relocate。
relocate(ServerLevel, BlockPos from, BlockPos to)— 移动一条记录;返回此处追踪了多少记录(0 或 1)。relocate(ServerLevel, Map<BlockPos, BlockPos>)— 批量移动(两阶段;对于移动/重叠的集合安全);返回有多少条记录被迁移。beginMove()/endMove()— 在移动期间抑制记录删除;始终通过 try/finally 配对使用。
在所有版本和加载器上均可使用。(在 1.12.2 上,API 可用于自定义移动器,但原版活塞不会自动挂钩。)
部分失败。 先移动再失败会导致仍然存在的源方块失去保护:CM'sALL 的孤立记录清理会删除现在无效的目标记录(其存储的方块 ID 不再与该位置的方块匹配),但无法为未记录的源方块重新创建记录。因此,落地后移动是故障安全的顺序;仅在移动不可能失败时,才能先移动。
软依赖。 当 CM'sALL 未安装时引用这些方法存在 NoClassDefFoundError 的风险。稳健的做法是将每个 CM'sALL 的引用隔离在一个专用的集成类中,并且仅在 CM'sALL 存在时访问它——类链接/验证可能会在您的保护代码行运行之前加载引用的类型(例如,当某个类型出现在方法签名或字段中时),因此“此代码路径不执行”并不总是足够。围绕隔离引用的存在性检查,或者使用 compileOnly 依赖,这两种方法都可行。
支持的语言
CM'sALL 的游戏内 GUI、配置菜单和命令反馈会自动跟随您的 Minecraft 客户端语言设置——无需额外设置。 请注意,可能存在翻译错误。
支持 39 种语言:
- 🇺🇸 英语
- 🇯🇵 日语
- 🇰🇷 韩语
- 🇨🇳 简体中文
- 🇹🇼 繁体中文
- 🇩🇪 德语
- 🇫🇷 法语
- 🇪🇸 西班牙语(西班牙)
- 🇲🇽 西班牙语(墨西哥)
- 🇧🇷 葡萄牙语(巴西)
- 🇵🇹 葡萄牙语(葡萄牙)
- 🇮🇹 意大利语
- 🇳🇱 荷兰语
- 🇵🇱 波兰语
- 🇷🇺 俄语
- 🇺🇦 乌克兰语
- 🇹🇷 土耳其语
- 🇸🇪 瑞典语
- 🇳🇴 挪威语
- 🇩🇰 丹麦语
- 🇫🇮 芬兰语
- 🇮🇸 冰岛语
- 🇭🇺 匈牙利语
- 🇨🇿 捷克语
- 🇸🇰 斯洛伐克语
- 🇷🇴 罗马尼亚语
- 🇧🇬 保加利亚语
- 🇭🇷 克罗地亚语
- 🇸🇮 斯洛文尼亚语
- 🇷🇸 塞尔维亚语
- 🇬🇷 希腊语
- 🇮🇩 印度尼西亚语
- 🇲🇾 马来语
- 🇻🇳 越南语
- 🇹🇭 泰语
- 🇮🇳 印地语
- 🇮🇱 希伯来语
- 🇸🇦 阿拉伯语
- 🇪🇸 加泰罗尼亚语
- 🇱🇹 立陶宛语
许可证
本项目采用 MIT 许可证 授权 — © 2026 G.Vael。
正在加载版本记录…





正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。