File Details
furnacering-neoforge-1.21.1-1.1.0.jar
- R
- Mar 29, 2026
- 96.26 KB
- 47
- 1.21.1
- NeoForge
File Name
furnacering-neoforge-1.21.1-1.1.0.jar
Supported Versions
- 1.21.1
Curse Maven Snippet
Changelog for Neoforge Furnace Ring 1.21.1
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.1.0] - 2026-03-29
🐛 Fixed
Networking
- GUI open codec mismatch —
use()(right-click in hand) was encoding the ringItemStackwithSTREAM_CODECwhile the client constructor decoded it withOPTIONAL_STREAM_CODEC. The wire formats differ, causing a deserialization error and a broken GUI whenever a ring was opened from the hotbar or offhand. Encoding now usesOPTIONAL_STREAM_CODECon both sides.
Curios Integration
- Unequip callbacks never fired on dedicated servers —
CuriosIntegration.init()was called insideFMLClientSetupEvent, a client-only lifecycle event. On dedicated servers the method never ran, soonUnequipcallbacks (which reset the smelting state when a ring is removed) were silently skipped. Moved toFMLCommonSetupEventso callbacks register on both client and server.
Smelting Logic
- Ring limit ignored Blast Furnace and Smoker rings — the hotbar 2-ring cap (non-Curios mode) checked
instanceof FurnaceRingItem, so Blast Furnace and Smoker rings bypassed the limit entirely. Check updated toinstanceof AbstractFurnaceRingItem. - Fuel value always queried as SMELTING —
getBurnTime(RecipeType.SMELTING)was hardcoded ininventoryTick, meaning Blast Furnace and Smoker rings used the wrong recipe type when consuming fuel. Changed togetBurnTime(getRecipeType())so each subclass uses its own type. BlastFurnaceRingMenuused wrong recipe type — the menu was constructed withRecipeType.SMELTINGandRecipeBookType.FURNACE. The recipe book showed smelting recipes instead of blasting recipes, andcanSmelt()accepted non-blastable items. Corrected toRecipeType.BLASTING/RecipeBookType.BLAST_FURNACE.
🔧 Internal
- Dead
ContainerDatainuse()— a 30-line anonymousContainerDatawas created but never passed togetRingMenu();BaseFurnaceRingMenubuilds its own viacreateData(). Removed along with the now-unusedContainerDataimport. - Redundant
instanceofindecodeStack—BaseFurnaceRingMenu.decodeStack(RegistryFriendlyByteBuf)checkedinstanceof RegistryFriendlyByteBufon its own parameter (always true) with an unreachable fallback. Collapsed to a direct decode call. - Magic index in wet-sponge handling —
items.set(1, ...)replaced withitems.set(FUEL_SLOT, ...)for consistency with the rest of the method. - Invalid mod version string —
mod_versioningradle.propertieswasneoforge-1.21.1-1.1.0; theneoforge-prefix is not a valid Maven version qualifier and caused aIllegal version numbercrash at mod load. Changed to1.21.1-1.1.0.

