Skip to content

[NeoForge 1.21.1] Critical Crash Fixes, Port Stabilization & ru_ru Locales#2513

Merged
Lothrazar merged 15 commits into
Lothrazar:trunk/1.21from
zevatov:trunk/1.21
May 15, 2026
Merged

[NeoForge 1.21.1] Critical Crash Fixes, Port Stabilization & ru_ru Locales#2513
Lothrazar merged 15 commits into
Lothrazar:trunk/1.21from
zevatov:trunk/1.21

Conversation

@zevatov
Copy link
Copy Markdown

@zevatov zevatov commented Apr 24, 2026

This PR stabilizes the port to NeoForge 1.21.1 by addressing multiple fatal crashes during recipe registration, world load, and networking synchronization.

Warning

Disclaimer: This port and the associated bug fixes were developed and debugged with the assistance of an AI agent. While critical crashes have been fixed and basic functionality verified, it has not been thoroughly tested across all edge cases. Proceed with understanding that some latent bugs may still exist.

Key Changes & Fixes:

  1. Networking EncoderException: Empty FluidStack: Fixed the server kick issue on world load. Replaced FluidStack.STREAM_CODEC with FluidStack.OPTIONAL_STREAM_CODEC in RecipeMelter and RecipeCrusher. Since flib's FluidTagIngredient hardcodes the strict codec, I implemented a custom inline StreamCodec bypass in RecipeSolidifier and RecipeGeneratorFluid to allow empty fluids to sync safely.
  2. Registry UnsupportedOperationException: Fixed the recipe manager crash. Swapped immutable NonNullList.of to a mutable list using NonNullList.create().addAll() in RecipeMelter and RecipeSolidifier.
  3. Client-Side Rendering NullPointerException: Fixed crashes when JEI tries to render custom fluids (e.g., xpjuice_bucket). Injected initializeClient() into all custom Fluid*Holder.java files to register IClientFluidTypeExtensions textures for DynamicFluidContainerModel.
  4. Spawner Seeker Bug: Fixed ItemProjectileDungeon instantiating the eye but never adding it to the level. Added the missing world.addFreshEntity(entityendereye) call.
  5. Crafting Stick GUI: Fixed the network packet payload by sending writeInt(slot) instead of a BlockPos.
  6. Localization: Fully translated and injected 234 missing ru_ru.json keys to achieve 100% localization parity.
  7. Data-Driven Audits: Removed obsolete 1.20 integration recipes that were causing JsonParseException and empty item crashes due to target mods altering their registries. Migrated legacy vanilla items (e.g., minecraft:scute -> minecraft:turtle_scute).

(A porting_summary.md and updated README.md have also been added to the root of the repository).

zevatov and others added 15 commits April 23, 2026 22:49
…rge port

Fixed final batch of compilation errors:
- MobEffectInstance: fixed broken paren/semicolon from previous regex passes
- RenderLaser/BeaconPotion: stubbed vertex chain (endVertex removed in 1.21.1)
- BlockBeaconRedstone/BlockPotion: removed getBeaconColorMultiplier override conflict
- ShieldCyclicItem: stubbed ShieldBlockEvent/LivingKnockBackEvent methods (API changed)
- FishingEnderEntity: stubbed getLootTable (API changed)
- SpikesDiamond: commented attackStrengthTicker (protected in 1.21.1)
- SpikesBlock/FireEntity: setSecondsOnFire -> igniteForSeconds
- BlockSimpleHopper: getShape/getInteractionShape protected -> Shapes.block() fallback
- BlockMagnetPanel: removed unreachable return statement
- ItemEvents: fixed EntityTickEvent->LivingEntity cast, shield event stubs
- ScreenUser: fixed setTooltip(String) -> Tooltip.create() wrapper
- ScreenCrafter: fixed partialTick variable name
- ContainerBreaker: exposed public tile field for ScreenBreaker
- CableBase: removed duplicate @OverRide annotation
- BlockScaffoldingReplace/BlockItemInfinite: hand -> getMainHandItem()
- Various: removed ForgeHooks/MinecraftForge/NetworkHooks legacy imports
…dd missing ru_ru translations, disable broken integration recipes, fix fluid container models
Updated the link for the required 'flib' library to point to the 1.21 compatible build.
@Lothrazar Lothrazar added the 1.21 label May 14, 2026
@Lothrazar
Copy link
Copy Markdown
Owner

wow amazing! thanks for picking up where i left off, ive been coming back to 1.21 recently so it looks like this will save me a ton of time. i will test and check it out

@Lothrazar
Copy link
Copy Markdown
Owner

i dont LOVE the use of ai but at least there was a disclaimer on it.

Assuming you are a real human person and not some automated agent.

Have you tested many of the machines, features, recipes, etc? can you post a few screenshots and/or videos? Also the ghaction failed on something

@zevatov
Copy link
Copy Markdown
Author

zevatov commented May 14, 2026

i dont LOVE the use of ai but at least there was a disclaimer on it.

Assuming you are a real human person and not some automated agent.

Have you tested many of the machines, features, recipes, etc? can you post a few screenshots and/or videos? Also the ghaction failed on something

Hi, this was originally an experiment because there was a huge amount of work involved. I entrusted Gemini 3.1 Pro and Cloud Code with the task of porting this mod because I really wanted to play with friends on the new version, but I didn't really want to waste my time. This version hasn't been fully tested because I wasn't particularly serious about it, but I thought it might be useful for future development, as the amount of work involved was truly enormous.

@HalcyonSeas73
Copy link
Copy Markdown

Looks like 2 somethings; trying to grab Curios and FLib fails from SSL misconfiguration/socket exemption

@Lothrazar
Copy link
Copy Markdown
Owner

Lothrazar commented May 15, 2026

while its not perfect and it needs work, this does look like it will save me a bunch of time with things like neoforge class renames and whatnot. i was going to work on the port anyway so ill polish it from here

@Lothrazar Lothrazar merged commit 7255787 into Lothrazar:trunk/1.21 May 15, 2026
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants