1.3.0
Curse Maven Snippet
What's new
Json More Changelog
1.3.0
变更 / Changed
- 原料、配方、条件、方块保护(
IProtectedBlock)、JEI 分类与模型 override 注入改为依赖共享库 QikaLib 0.1.0(jarJar 内嵌),JsonMore 不再自带这些实现;jsonmore:*的原料/配方/条件 id 由 QikaLib 以旧 id 重新注册,数据包与旧存档无需改动- Ingredients, recipes, conditions,
IProtectedBlock, JEI categories and model override injection now come from the shared QikaLib 0.1.0 library (jarJar'd). JsonMore no longer ships its own copies; QikaLib re-registers the legacyjsonmore:*ids, so datapacks and old saves keep working
- Ingredients, recipes, conditions,
- 存储连接器幽灵槽修复同步到所有加载器:拆解时重建物品列表、读档时按实际最大槽位扩容、激活时归一化
items.size() == totalSlots,避免读档后容器凭空多出槽位、拆解时爆出物品或丢物品- Ported the storage-connector ghost-slot fix to every loader: rebuild the item list on disassembly, expand to the highest saved slot on load, and normalize
items.size() == totalSlotson assembly, preventing phantom slots after a reload and item loss/spill on disassembly
- Ported the storage-connector ghost-slot fix to every loader: rebuild the item list on disassembly, expand to the highest saved slot on load, and normalize
1.2.15
修复 / Fixed
- 修复存储连接器读档后拆解产生“幽灵槽”、导致集装容器凭空多出槽位并在拆解时爆出物品/丢物品:
NonNullList#clear()在默认值非 null 时只是把每格填回默认值,并不会缩短列表。控制器load()用NonNullList.withSize(totalSlots, ItemStack.EMPTY)建的列表正属此类,disassemble()里的items.clear()于是留下等长的空槽,之后assemble()追加新槽位,槽位越积越多(例如 54 幽灵槽 + 27 真实槽 = 81 格),而下一次拆解只按Connectors回填、多余物品全部溢出,再读档时超出TotalSlots的物品还会被静默丢弃。现在拆解改为重建列表,读档改用可变列表并把容器扩到实际最大槽位(旧存档里越界的物品不再被丢弃),assemble()也增加了items.size() == totalSlots的归一化防御- Fixed ghost slots after a world reload:
NonNullList#clear()only refills the list with the default value when that default is non-null, so it never shrinks. The controller'sitemscreated byNonNullList.withSize(totalSlots, ItemStack.EMPTY)inload()is exactly such a list, sodisassemble()left an equally-long list of empty slots; the nextassemble()appended new slots on top (e.g. 54 ghost + 27 real = 81 slots), the next disassembly could only restoreConnectors-sized slots and spilled the rest, and any item beyondTotalSlotswas silently dropped on the following load. Disassembly now rebuilds the list, loading uses a growable list and expands to the highest saved slot (so out-of-range items in old saves are no longer dropped), andassemble()now normalizesitems.size() == totalSlots
- Fixed ghost slots after a world reload:
- 修正连接器拆解日志:原来把木桶坐标当成“控制器坐标”打印,且恢复后仍打印
connected=true的旧状态- Fixed the disassembly log lines, which printed the barrel position as the controller position and the pre-restore
connected=truestate
- Fixed the disassembly log lines, which printed the barrel position as the controller position and the pre-restore
1.2.14
修复 / Fixed
- 修复已互相配对的两格容器在再次放置或被就地替换时连接被强制拆开:
FlexBarrelBlock.retryConnection原先只在邻居part为none时才尝试连接,遇到已经连着自己的邻居会返回失败,setPlacedBy随即把本方块的part清成none。现在邻居的part已经指向本方块时视为连接有效并保留(判据与updateShape中互相配对的检查一致)- Fixed forced disconnection when an already paired two-block container is placed again or replaced in place:
FlexBarrelBlock.retryConnectiononly tried to connect while the neighbor'spartwasnone, so a neighbor already linked to this block made it fail andsetPlacedByreset this block'sparttonone. A neighbor whosepartalready points back at this block is now treated as connected and kept, using the same mutual-pairing check asupdateShape
- Fixed forced disconnection when an already paired two-block container is placed again or replaced in place:
1.2.13
修复 / Fixed
- 修复容器槽位超过 255 时存档丢失物品:原版
ContainerHelper把槽位写成 TAG_Byte,256 以上会被截断并与低槽位撞号(256 → 0),读档时相互覆盖。现改用SlotContainerHelper(jsonmore:container的slots、存储连接器拼接的大容器都可能超过 255),槽位以非负 TAG_Long 存储;读取时兼容旧存档,128~255的负 byte 按无符号还原- Fixed item loss when a container holds more than 255 slots: vanilla
ContainerHelperwrote the slot as a TAG_Byte, so slots ≥ 256 were truncated and collided with lower slots (256 → 0), overwriting each other on load. Slots are now written as a non-negative TAG_Long bySlotContainerHelper, and old saves still load correctly (negative bytes for slots 128–255 are decoded as unsigned)
- Fixed item loss when a container holds more than 255 slots: vanilla
1.2.12
新增 / Added
- 新增
jsonmore:regex原料类型:按物品注册名(命名空间:路径)做正则匹配,pattern/namespace/path三字段均为整串匹配且可组合,expand_items可展开显示全部匹配物品- New
jsonmore:regexingredient type: regex matching against item registry names;pattern/namespace/pathare anchored and combinable, andexpand_itemslists every matched item
- New
- 新增
jsonmore:record物品类型:sound(声音事件)、length(时长,单位游戏刻)、comparator_value(默认 15);物品需加入minecraft:music_discs标签才能放入唱片机- New
jsonmore:recorditem type:sound,length(in game ticks) andcomparator_value(default 15); the item must be added to theminecraft:music_discstag to be playable
- New
1.2.11
新增 / Added
jsonmore:item_application新增force_input/force_output:按 block + properties 精确匹配输入方块 / 指定输出方块状态,支持无对应物品的方块与非默认状态jsonmore:item_applicationgainsforce_input/force_outputto match input blocks and force output block states by block + properties (supports blocks without items and non-default states)
变更 / Changed
drop_container: false不再自动把旧方块实体数据整体迁移到新方块,需要保留内容/NBT 时请配合jsonmore:nbt_copy原料显式完成drop_container: falseno longer auto-migrates the old block entity data to the new block; carry content/NBT over explicitly withjsonmore:nbt_copy
- 方块型输出改为模拟原版放置:放置后装载产物 NBT 并调用方块
setPlacedBy;drop_container: true时旧容器按原版破坏语义处理(onRemove 洒出内容物)- Block-type outputs now mimic vanilla placement (result NBT is loaded and
setPlacedByis called); withdrop_container: trueold containers are removed with vanilla break semantics
- Block-type outputs now mimic vanilla placement (result NBT is loaded and
- 替换/移除失败时自动回滚旧方块实体,不残留损坏状态
- Failed replacement/removal rolls back the old block entity, leaving no corrupted states
- 依赖更新:Tinkers' Construct 3.12.0.220 / Mantle 1.11.117(开发环境 JEI 15.56.0.205,满足 TCon 3.12 的 JEI ≥15.56.0.204 要求)
- Dependency update: Tinkers' Construct 3.12.0.220 / Mantle 1.11.117 (JEI 15.56.0.205 in dev, satisfying TCon 3.12's JEI ≥15.56.0.204 requirement)
1.2.10
新增 / Added
- 新增
jsonmore:standing_and_wall通用物品类型(替代jsonmore:sign),告示牌文本编辑逻辑下沉到方块setPlacedBy- New
jsonmore:standing_and_wallgeneric item type (replacesjsonmore:sign); sign text editing moved to blocksetPlacedBy
- New
- 新增
IProtectedBlock+MixinLevel:在Level.setBlock源头拦截已连接容器/连接器的破坏,替代 onRemove 放回逻辑- New
IProtectedBlock+MixinLevel: block breaking of linked containers/connectors is intercepted atLevel.setBlock, replacing the onRemove restore hack
- New
- 容器物品提示(tooltip)改为原版潜影盒格式
- Container item tooltip now uses vanilla shulker box format
- 存储连接器新增
max_connectors/max_capacity限制(默认 -1 无限制),在 BFS 扫描阶段检查并阻断超限容器的进一步扩展- Storage connector gains
max_connectors/max_capacitylimits (default -1 unlimited), enforced during BFS scanning, blocking expansion past the limit
- Storage connector gains
1.2.9
新增 / Added
- 新增
jsonmore:fluid原料类型:匹配/消耗容器内的流体(返还空容器),展示用笛卡尔积- New
jsonmore:fluidingredient type: matches/consumes fluid in containers (returns the empty container), display uses cartesian product
- New
item_display_override继承SelfConsumingIngredient,消耗/输出修改逻辑透传,支持包裹自消耗原料item_display_overridenow extendsSelfConsumingIngredient, delegating consume/output-modify logic and supporting wrapping self-consuming ingredients
- 网络传输优化:直接发送应用 ops 后的展示物品列表
- Network serialization now sends the modified display item list directly
- 更新配方原料类型文档
- Updated recipe ingredient documentation

