
锁制工艺
一个模组的子游戏类型,锁定已制作过一次的每个合成配方。
查看大图CraftLock
一次合成,唯一机会。
一个 Fabric 模组,将每次合成视为一次性的机会。一旦你合成了某个物品,就再也无法再次合成它——贯穿这个世界的整个生命周期。
概述
CraftLock 是一个为内容创作者和喜欢自我挑战的玩家打造的硬核挑战模组。其核心理念简单而残酷:
游戏中的每一个合成配方只能被合成一次。之后,它就永远消失了。
当你第一次合成橡木木板、木棍、熔炉、钻石镐、末影之眼时——该配方即被锁定。下一次你在合成台放入相同材料时,结果栏将保持空白。模组会播放拒绝音效,在动作栏显示消息 "已合成过橡木木板",然后你的挑战继续,但你的装备库中永久少了一个工具。
它涵盖了工作台、2x2 物品栏合成、熔炉、高炉、烟熏炉、营火、锻造台、切石机和酿造台。默认情况下,两个配方被豁免——烈焰粉和末影之眼——因为没有它们,你无法通关游戏。
特性
锁定机制
- 全面覆盖 — 工作台、物品栏 2x2、熔炉系列、锻造、切石、酿造
- 配方级别粒度 — 从原木合成的
橡木木板与从去皮原木合成的橡木木板分开锁定 - 重启后持续 — 锁定列表保存在世界存档中,跨游戏会话持久有效
- 豁免列表 — 你选择的配方保持无限使用(默认:
blaze_powder、ender_eye)
直播优化体验
- 黄色聊天广播 每次首次合成时显示:Chompii 合成了:铁锭
- 铃铛提示音 当新配方被锁定时向所有玩家播放
- 动作栏警告 + 村民拒绝音效 当尝试被阻止的合成时显示
- 工具提示标签 — 已锁定的物品显示红色斜体 已锁定 行,并附有来源信息:by Chompii · 第7天
- 配方书覆盖 — 配方书中已锁定的配方以红色高亮显示
- 动画标题 通过
/craftlock start播放(浅蓝色斜体 CraftLock 带副标题,以及平静的紫水晶音效)
工具
- 为管理员/主播提供完整的命令套件(见下文)
config/craftlock.json的 JSON 配置文件,用于调整音效、豁免列表和品牌文字- 通过
assets/craftlock/lang/en_us.json支持翻译 - 在
craftlock命名空间下的 SLF4J 日志记录器
安装
要求
| 组件 | 版本 |
|---|---|
| Minecraft | 1.21.11 |
| Fabric Loader | >= 0.19.2 |
| Fabric API | 0.141.4+1.21.11 |
| Java | 21 |
步骤
- 为 Minecraft
1.21.11安装 Fabric Loader。 - 将 Fabric API 放入你的
mods/文件夹。 - 将最新的
craftlock-1.0.jar(从 [发布](#)页面获取)一并放入。 - 启动游戏。载入世界后模组即会运行——但锁定功能不会开始,直到你执行
/craftlock start。
命令
所有命令需要权限等级 gamemaster(在标准原版中为等级 2——单人游戏主机自动拥有)。
| 命令 | 描述 |
|---|---|
/craftlock start |
开始执行锁定。向所有玩家显示 CraftLock 标题。 |
/craftlock stop |
暂停执行锁定,不清除锁定列表。使用 start 恢复。 |
/craftlock status |
打印运行状态、锁定配方数量和豁免配方数量。 |
/craftlock list |
按 ID 列出所有锁定的配方。 |
/craftlock reset |
清除整个锁定列表。不影响 started 标志。 |
/craftlock lock <recipe> |
手动锁定一个配方(用于设置挑战)。 |
/craftlock unlock <recipe> |
手动解锁单个配方。 |
示例
> /craftlock start
[CraftLock started.]
[标题: CraftLock]
[副标题: Created by Chompii]
> /craftlock list
Locked recipes (3):
- minecraft:oak_planks
- minecraft:stick
- minecraft:crafting_table
> /craftlock unlock minecraft:stick
Unlocked minecraft:stick
配置
首次启动时,模组会使用以下默认值写入 config/craftlock.json。编辑文件后重启世界以应用更改。
{
"titleText": "CraftLock",
"subtitleText": "Created by Chompii",
"exemptRecipes": [
"minecraft:blaze_powder",
"minecraft:ender_eye"
],
"craftPingVolume": 0.6,
"craftPingPitch": 1.5,
"startSoundVolume": 1.0,
"startSoundPitch": 1.0,
"blockedSoundVolume": 1.0,
"blockedSoundPitch": 1.0
}
| 字段 | 类型 | 说明 |
|---|---|---|
titleText |
string | /craftlock start 触发时显示的文字。 |
subtitleText |
string | 与标题配对的副标题。 |
exemptRecipes |
string[] | 可以无限次合成的配方 ID。 |
craftPingVolume / craftPingPitch |
float | 每次首次合成时播放的铃铛音效。 |
startSoundVolume / startSoundPitch |
float | /craftlock start 时播放的紫水晶叮当声。 |
blockedSoundVolume / blockedSoundPitch |
float | 合成被阻止时播放的村民“不”音效。 |
工作原理
CraftLock 基于每个世界的 SavedData 实例构建,该实例存储:
- 一组锁定的配方 ID
- 一个元数据映射:
{recipe_id -> {crafter, world_day}} - 一个
started标志
Mixin 附加到相应的原版菜单和方块实体:
| 类 | 钩子 | 目的 |
|---|---|---|
CraftingMenu |
slotChangedCraftingGrid (TAIL) |
如果匹配的配方已锁定,则清除结果槽 + 发送 ClientboundContainerSetSlotPacket。还会缓存配方,以便 ResultSlot.onTake 在 vanilla 的 shift 点击消耗后仍能看到它。 |
ResultSlot |
onTake (HEAD) |
记录锁定 + 广播。 |
AbstractFurnaceBlockEntity |
canBurn (HEAD) + setRecipeUsed (HEAD) |
如果已锁定则阻止熔炼;完成时记录。 |
CampfireBlockEntity |
getCookableRecipe (RETURN) + placeFood (RETURN) |
如果已锁定则阻止放置;放置时记录。 |
SmithingMenu |
createResult (TAIL) + onTake (HEAD) |
如果已锁定则清除结果;取出时记录。 |
StonecutterMenu |
setupResultSlot (TAIL) + onTake (HEAD) |
相同模式。 |
PotionBrewing |
mix (RETURN) |
如果输出会是一个锁定的药水变种,则返回未混合的输入;成功酿造时锁定。 |
RecipeButton |
renderWidget (TAIL) — 仅客户端 |
在配方书内的锁定配方上绘制红色叠加层。 |
每当锁定列表发生变化时,状态会通过 craftlock:lock_list 自定义数据包同步到所有连接的客户端,以便工具提示和配方书覆盖实时更新。
给挑战者
典型的运行流程:
- 创建一个新世界。 锁定列表按存档持久保存,所以不要重复使用旧存档。
- 运行
/craftlock start开始执行锁定。在此之前,模组仅处于观察模式。 - 规划你的路线。 末影之眼和烈焰粉被豁免,因此可以到达末地。其他所有内容——每一种配方——在首次合成时锁定。
- 在拍摄间隙使用
/craftlock reset如果需要重做某个片段。 - 使用
/craftlock list审计你已消耗的配方。
给剪辑师的提示: 黄色聊天广播(
Chompii 合成了:...)设计为在压缩的 YouTube 画面中可读,并与铃铛提示音配合,适合“里程碑时刻”剪辑。
从源码构建
git clone <repository-url>
cd CraftLock
./gradlew build
编译好的 jar 包位于 build/libs/。
开发时可以使用:
./gradlew runClient # 启动一个加载了模组的开发客户端
./gradlew runServer # 启动一个专用开发服务器
./gradlew genSources # 反编译 Minecraft 以便 IDE 导航
鸣谢
由 Chompii 制作。
基于 Fabric 模组工具链构建。由 SpongePowered Mixin 和 MixinExtras 提供支持。
许可
根据 CraftLock 许可发布——请参阅 LICENSE 获取完整文本。
简而言之:
- 你可以使用、修改、分发、复刻、重新打包和嵌入此模组。
- 你必须在任何对该模组的使用中显著标注 Chompii(如视频描述、整合包鸣谢、衍生模组自述文件等)。
- 你不得声称自己是 CraftLock 的原作者。
- 软件按“原样”提供,不附带任何担保。
如果你发布视频,合理使用的鸣谢方式如下:
“包含由 Chompii 制作的 CraftLock — github.com/Chompii/CraftLock”
正在加载版本记录…



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