CHM-Forge1.20.1-0.6.3-Beta
Curse Maven Snippet
What's new
Create: Hand Made 0.6.4-beta(1.20.1 / Forge)
This version comes with an in-game manual for the mod "Hand-Crafted Learning: From Beginner to Grave" — bilingual in Chinese and English, automatically giving one copy upon first entry into the world. Additionally, fixed five mute failure issues found during a round of troubleshooting where the code thought it was active but actually did not. There are no disruptive changes to gameplay; old save files are upgraded directly.
Download 'create_hand_made-0.6.4-beta.jar' (648 KB) Environment Minecraft 1.20.1 · Forge 47.3.0+ · Create 6.0.8+ Optional JEI 15.2.0+ · KubeJS 2001.6.5+ · Chewan Maid 1.5.3+ · Cloth Config 11.1.136+ · Patchouli (manual required)
📖 In-Game Manual 'Hand-Rubbed Learning: From Beginner to Immersion'
English subtitle Hand Made Guide. Patchouli must be installed; If not installed, there is no effect at all (manual data is ignored, no errors occur, and other functions are not affected).
Five categories, 14 entries each in Chinese and English:
| Category | Content |
|---|---|
| Tools | 8 tools each: what recipes can be made, how to operate, precautions |
| Maid | Priority of 9 behaviors, how to specify targets with a finger stick, only processing modes, affection bonus |
| Formula | Three-layer recipe system (L1/L2/L3) and data packets / KubeJS Syntax |
| Configuration | The location of three configuration files, server authority, hot reloading, and graphical interface |
| Other | Author's Note and Acknowledgments |
How to get it
- First entry into the world automatically gives one book — each player can only receive one copy (recorded in player data, save file changes will not be duplicated). If you don't want it, set the 'give_on_first_join' in '[guidebook]' in 'serverconfig/create_hand_made-server.toml' to 'false'.
- Synthesis:'1× Book' + '1× Stamping Hammer' (Random Synthesis). The stamp hammer will not be consumed — durability, enchantments, and custom names remain in the slot and can be combined into several books.
- Command:'/give @s patchouli:guide_book{patchouli:book:"create_hand_made:handbook"}'
⚠️ > Both client and server must install Patchouli. Giving away books is a server-side action; if the server hasn't installed them, they won't deliver them; If the server installs it but the client does not, it will not sync due to missing items.
Details
- The manual Fully Data-Driven does not introduce the Patchouli build dependency: content is in 'assets/create_hand_made/patchouli_books/handbook/', 'book.json' is in 'data/create_hand_made/patchouli_books/handbook/'.
- Custom Book Icon: No longer using Patchouli's default brown book, switch to the mod's own 16×16 icon.
- Synthesis recipe outsourced 'forge:conditional' + 'forge:mod_loaded'. Without Patchouli, this recipe is not loaded and does not report 'unknown item' in the log.
🐛 Fix: 5 Silence Failures
The common feature of this round of inspection is that the code thinks it is active but actually doesn't. It never crashes or gives errors, making it the hardest to detect on your own:
- The logic for clearing maid liquid markers has never worked. When replacing the handheld item, the processor that "cleared the liquid coordinate system" didn't register it on the event bus at all, so the coordinates remained permanently—later, when another ** maid was re-labeled, the previous batch of expired coordinates would be copied over as well, so she could move liquid according to the old target. Now registered.
- Manual sawing recipe cache never hits the target; instead, each checkup assigns an extra target. The reason is that cache keys are directly 'ItemStack', while in 1.20.1, 'ItemStack' does not override equality checks—the keys created each time are not equal. Now, using the semantic key for the "Item + NBT" value is used, and the cache is now truly effective (the most noticeable benefit is from the recipe search path for each item on the conveyor belt).
- Maid Finger Handle Deploy 'Delete by Item' also fails: When the same item occupies dozens of slots in the logistics box, it still checks the recipe every single slot. have been corrected together.
- Network packets in pointer mode do not verify mode values: After modification, clients can write arbitrary integers into the finger stem NBT, causing pattern determination to be incorrect. Now, the server checks the value field before writing.
- Only empty NBT is attached to items along the read path: Each frame when the client reads the current recipe serial number of the hand saw, it writes an empty label to the item. "Empty label" and "no label" are not the same in item comparison, causing the client and server to have different labels for the same item, affecting filter matching and stack merging. All read paths have been changed to no writes.
🧩 Inside
- Added 'util/ItemStacks': semantic 'Key' (item + NBT, copy copy during construction) and three empty safe NBT reads.
- Added recipe type 'create_hand_made:handbook_craft': inherits the original unordered recipe, only overwrites the 'Leftovers' section, and uses the 'punch hammer without consumption'. It doesn't have its own 'RecipeType' ('getType()' is 'minecraft:crafting'), and in JEI, it is displayed as an unordered synthesis in the original version.
- By the way, I checked Patchouli's item model mechanism: all books share one 'patchouli:guide_book' item, and the book identity only exists in NBT; there is no separate item for each book.
⚠️ Upgrade Notes
- The manual requires Patchouli, and both ends must be installed. Not installing it will not affect any other functions of the module.
- Players who have already saved will not receive reissued manuals (only valid for first-time logins)—use the above synthesis or '/give' to reissue a manual.
- Manuals are not in the Creative Mode inventory:P atchouli does not put books in the Creation tab by default. To find them, use Synthesis or JEI to search for books.
- No changes to block/item IDs; old saves, tools, and markers remain valid.
- Client-server protocol version unchanged (still 2); The external API version remains 3, and this version has no destructive changes (only the behavior was fixed, the signature remains unchanged).
Known Limitations
- 'findRecipeFor' only covers five 'judge by looking at an item' tool; use your own entry points for the rest (see 'docs/api.md').
- The bellows do not have L2 filtration (no L1 candidate, relying on 'fan_type' matching).
- 'extractFluidTick' does not have a preview version (incremental tick action); to predict, use 'fluidSourceAt'.
- The English version of the manual is a condensed version: the acknowledgments list for community contributors, feature proposers, and testers is only in Chinese and not translated.
For complete changes, see 'CHANGELOG.md'. If you encounter any issues, please attach 'logs/latest.log' along with the module list for feedback.
Create: Hand Made 0.6.4-beta(1.20.1 / Forge)
这一版给模组配了一本游戏内手册《手搓学:从入门到入土》——中英双语,首次进世界自动送一本。 另外修掉了一轮排查发现的 5 处「代码以为自己在生效、实际没生效」的静默失效问题。玩法没有破坏性改动,老存档直接升。
下载 create_hand_made-0.6.4-beta.jar(648 KB)
环境 Minecraft 1.20.1 · Forge 47.3.0+ · Create 6.0.8+
可选 JEI 15.2.0+ · KubeJS 2001.6.5+ · 车万女仆 1.5.3+ · Cloth Config 11.1.136+ · Patchouli(手册需要)
📖 游戏内手册《手搓学:从入门到入土》
英文副标题 Hand Made Guide。需要安装 Patchouli;没装则完全无感(手册数据被忽略、不报错、不影响其它功能)。
五个分类、中英各 14 条:
| 分类 | 内容 |
|---|---|
| 工具 | 8 件工具各一条:能做什么配方、怎么操作、注意事项 |
| 女仆 | 9 种行为的优先级、指杆怎么指定目标、只加工模式、好感度加成 |
| 配方 | 三层配方系统(L1/L2/L3)与数据包 / KubeJS 写法 |
| 配置 | 三个配置文件的位置、服务端权威、热重载、图形界面 |
| 其他 | 作者的话、致谢 |
怎么拿到
- 首次进世界自动送一本——每名玩家只送一次(记在玩家数据里,换存档不会重复)。
不想要的话把
serverconfig/create_hand_made-server.toml里[guidebook]的give_on_first_join设为false。 - 合成:
1× 书+1× 冲压锤(无序合成)。冲压锤不会被消耗——耐久、附魔、自定义名字都原样留在格子里,可以连着合好几本。 - 命令:
/give @s patchouli:guide_book{patchouli:book:"create_hand_made:handbook"}
⚠️ 客户端与服务端都要装 Patchouli。送书是服务端行为,服务端没装就不会送;服务端装了而客户端没装,会因为缺少物品而不同步。
细节
- 手册完全数据驱动,没有引入 Patchouli 编译依赖:内容在
assets/create_hand_made/patchouli_books/handbook/,book.json在data/create_hand_made/patchouli_books/handbook/。 - 自定义书图标:不再用 Patchouli 默认的棕色书,改成模组自己的 16×16 图标。
- 合成配方外包
forge:conditional+forge:mod_loaded,没装 Patchouli 时这条配方不加载、日志里也不会报「未知物品」。
🐛 修复:5 处静默失效
这一轮排查的共同点是「代码以为自己在生效、实际没生效」,都不会崩、也不报错,属于最难自己发现的那类:
- 女仆液体标记的清除逻辑从未生效。换下手持物时「清掉液体三坐标」的处理器压根没注册进事件总线,于是坐标永久残留——之后重新给另一只女仆应用标记,会把上一批过期坐标一起复制过去,让她按旧目标搬液体。现已注册。
- 手锯切削配方缓存一次都没命中,反而每查一次多分配一次对象。原因是缓存键直接用了
ItemStack,而 1.20.1 的ItemStack没有重写相等性判断——每次造出来的键都不相等。现改用「物品 + NBT」值语义的键,缓存开始真正生效(传送带上逐个物品查配方的路径收益最明显)。 - 女仆指杆部署的「按物品去重」同样失效:物流箱里同款物品占满几十个格子时,仍然逐格完整查一遍配方。已一并修正。
- 指针模式的网络包不校验模式取值:改过的客户端可以往指杆 NBT 里写任意整数,导致模式判定错乱。现在服务端写入前先核值域。
- 只在读取的路径给物品挂上了空 NBT:客户端每帧读手锯当前配方序号时会给物品写入一个空标签,而「空标签」与「没有标签」在物品比较里并不相等,会造成客户端与服务端同一件物品「标签不同」,影响过滤器比对与堆叠合并。读取路径已全部改为不写入。
🧩 内部
- 新增
util/ItemStacks:值语义的Key(物品 + NBT,构造时拷副本)与三个空安全 NBT 读取。 - 新增配方类型
create_hand_made:handbook_craft:继承原版无序配方、只覆写「剩余物」这一环,用来实现「冲压锤不消耗」。它没有自己的RecipeType(getType()就是minecraft:crafting),JEI 里按原版无序合成显示。 - 顺带核对了 Patchouli 的物品模型机制:所有书共用一个
patchouli:guide_book物品,书身份只存在 NBT 里,不存在每本书独立物品。
⚠️ 升级注意
- 手册需要 Patchouli,且两端都要装。不装不影响模组其它任何功能。
- 已存档的玩家不会补发手册(只对首次登录生效)——用上面的合成或
/give补一本。 - 手册不在创造模式物品栏里:Patchouli 默认不把书放进创造标签页,想找它请用合成或 JEI 搜书。
- 没有方块 / 物品 ID 变化,旧存档、旧工具、旧标记全部继续有效。
- 客户端与服务端协议版本未变(仍为 2);对外 API 版本仍为 3,这一版没有破坏性变更(只修了行为,签名没动)。
已知限制
findRecipeFor只覆盖 5 个「看一件物品就能判」的工具,其余请用各自入口(详见docs/api.md)。- 风箱没有 L2 过滤(无 L1 候选,靠
fan_type匹配)。 extractFluidTick没有预演版本(逐 tick 增量动作),要预判请用fluidSourceAt。- 手册的英文版是精简版:社区贡献者、功能提议者、测试者的致谢名单只做中文,不翻译。
完整变更见 CHANGELOG.md。
遇到问题请附 logs/latest.log 与模组列表反馈。
All Relations
- All Relations
- Embedded Library
- Optional Dependency
- Required Dependency
- Tool
- Incompatible
- Include