feat: port Fuream to Spigot / Purpur (supporting MC 1.7-26.2) - #2
Open
az7627 wants to merge 14 commits into
Open
feat: port Fuream to Spigot / Purpur (supporting MC 1.7-26.2)#2az7627 wants to merge 14 commits into
az7627 wants to merge 14 commits into
Conversation
…a single universal jar
…x result slot recovery
…and remove NBTAPI dependency - Support MC 1.7 to 26.2 across three variant jars (legacy 1.7-1.12, flattening 1.13-1.20.4, components 1.20.5-26.2) - Remove external NBTAPI dependency; direct native NBT serialization via ByteBuddy and reflection - Add compat layer for blocks, items, recipes, events, and masked 3-slot comparator signal - Implement passive mode projection for disabled furnaces, preserving extra slots in NBT - Isolate GUI sessions per player to support concurrent multi-player furnace interaction - Add explosion handling, wet sponge bucket conversion, and multi-slot output distribution - Support dimension config inheritance from overworld and complete config roundtrip serialization - Add comprehensive unit tests covering version detection, adapters, config, and engine logic
Merge main into develop-az7627
…or disabled furnaces - Introduce PassiveLaneProjection to stream virtual items to vanilla slots when Fuream is disabled - Support preferred fuel selection with fallback to first present stack - Handle seamless refilling as vanilla furnace consumes items during passive mode - Accurately restore projected items back to their original virtual slots upon re-enabling - Add unit tests verifying zero duplication, preferred fuel switching, and lane exhaustion
…d continuous item pulling - Retain FureamData NBT compound with PassiveProjected marker when virtual lanes are empty during passive mode - Restrict passive projection to at most one stack on disable, avoiding unintended continuous pulling from hidden slots - Sync only furnace burn and cook times during passive mode instead of actively altering virtual lanes - Add unit tests for passive projection NBT tag retention
…haul - Replace brute-force hopper scanning with native slot projection and VanillaFurnaceGuardListener - Add FurnaceStateTransaction for atomic snapshot-based timing and inventory commits - Add dynamic RecipeIndex and RecipeIndexListener for O(1) recipe resolution on hot tick paths - Introduce NbtSelfTest and FurnaceNbtRuntime for fail-fast NBT verification and robust codec handling - Refactor FureamWorldConfigImpl with table-driven parsing, slot bounds checks, and corruption protection - Optimize GUI differential slot rendering and adopt standard Java collections - Align wet sponge bucket conversion and special furnace fuel durations with Fabric semantics
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概述 / Summary
将 Fuream(熔炉格子扩容 & 经验累积 & 配方冲突解决)从 Fabric 模组移植至 Spigot / Purpur 服务端插件,支持从 Minecraft 1.7 至 26.2 全版本,并与原 Fabric 1.20.1 存档保持 100% 双向 NBT 结构互通。
主要内容 / Features
1. 核心功能 1:1 移植
2. 跨版本兼容架构(1.7 – 26.2)
fuream-legacy-1.7-1.12.jar(1.7–1.12)fuream-flattening-1.13-1.20.4.jar(1.13–1.20.4)fuream-components-1.20.5-26.2.jar(1.20.5–26.2)3. 原生根 NBT 持久化
FureamData写入真实根 NBT,与 Fabric 模组存档完全无缝互通。4. 熔炉生命周期与多世界配置
fuream.json配置加载,当下界或末地文件夹不存在配置文件时,自动继承主世界配置。