[NeoForge 1.21.1] Critical Crash Fixes, Port Stabilization & ru_ru Locales#2513
Conversation
…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
…ned up temp scripts
…, removed 1.19 dead code
…rm items defaulting to OFF when crafted
…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.
|
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 |
|
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. |
|
Looks like 2 somethings; trying to grab Curios and FLib fails from SSL misconfiguration/socket exemption |
|
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 |
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:
EncoderException: Empty FluidStack: Fixed the server kick issue on world load. ReplacedFluidStack.STREAM_CODECwithFluidStack.OPTIONAL_STREAM_CODECinRecipeMelterandRecipeCrusher. Sinceflib'sFluidTagIngredienthardcodes the strict codec, I implemented a custom inlineStreamCodecbypass inRecipeSolidifierandRecipeGeneratorFluidto allow empty fluids to sync safely.UnsupportedOperationException: Fixed the recipe manager crash. Swapped immutableNonNullList.ofto a mutable list usingNonNullList.create().addAll()inRecipeMelterandRecipeSolidifier.NullPointerException: Fixed crashes when JEI tries to render custom fluids (e.g.,xpjuice_bucket). InjectedinitializeClient()into all customFluid*Holder.javafiles to registerIClientFluidTypeExtensionstextures forDynamicFluidContainerModel.ItemProjectileDungeoninstantiating the eye but never adding it to the level. Added the missingworld.addFreshEntity(entityendereye)call.writeInt(slot)instead of aBlockPos.ru_ru.jsonkeys to achieve 100% localization parity.JsonParseExceptionand empty item crashes due to target mods altering their registries. Migrated legacy vanilla items (e.g.,minecraft:scute->minecraft:turtle_scute).(A
porting_summary.mdand updatedREADME.mdhave also been added to the root of the repository).