Jump to content

Recommended Posts

Posted

Forge version: 53.1.0
Minecraft version: 1.21.3

Downloads:

Intro:

Continuing our stream of new recommended builds, today we release our first recommended build for 1.21.3. 1.21.3 proved to be a strange version in between 1.21.1 and 1.21.4, with several unique factors that warranted Forge continuing to support it as an active version, rather than jumping straight from 1.21.1 to 1.21.4 in terms of support.

As of today, the 1.21 family of versions continue to remain covered under active support.

New:

  • Change tick event to have pre/post classes (#9890)
  • Make ForgeSpawnEgg assume color is opaque if alpha is set to 0
  • Fixes "invisible" spawn eggs by default, but still allows modders to specify partial transparency.
  • Add support for named sub-capabilities
  • Make HangingSignBlockEntity useable with custom BlockEntityTypes (#10038)
  • Use the new fire() and Result#isAllowed/isDenied/isDefault methods from EventBus (#10028)
  • Bump Mixin to 0.8.7
  • Patch CropBlock to use instanceOf FarmBlock check instead of hard coding to Blocks.FARMLAND (#10044)
  • Add a way to render tooltips from Formatted text and TooltipComponents elements (#10056)
  • Load mods that declare explicit 1.21 compatibility as 1.21.1 is a minor bugfix
  • Add level access to Item.TooltipContext if available
  • Mod loading cleanup and optimisations (#10052)
  • Add a few Method Helpers onto ResourceKey to make getting Data Driven Entries Simpler (#10071)
  • Fire `OnDatapackSyncEvent` when a player joins a server (#10076, #10171)
  • Optionally supply FMLJavaModLoadingContext as a param to mod constructors (#10074)
    • Before:
      public MyMod() {
          // getting the mod bus - uses FMLJavaModLoadingContext
          var modBus = FMLJavaModLoadingContext.get().getModEventBus();
       
          // registering configs - uses ModLoadingContext
          ModLoadingContext.get().registerConfig(/* ... */);
          // ...
      }
    • After:
      public MyMod(FMLJavaModLoadingContext context) {
          // getting the mod bus
          var modBus = context.getModEventBus();
      
          // registering configs
          context.registerConfig(/* ... */);
          // ...
      }
  • Add and fire SystemMessageReceivedEvent
    • Replaces ClientChatReceivedEvent.System which was not fired due to Mojang changing ChatType to a registry.
  • Sync component registry ids
  • Stacktraces now have the transformers displayed after itself, and not included with each element
  • Implement the de-facto common tags, add many new Forge tags while retaining backwards compatibility (forum post, #9955, #10126, #10135, #10137)
  • Bump CoreMods to 5.2.4, which adds new features such as ES6, better documentation, and long-awaited bug fixes (changelog, #10267)
  • Add proper support for JPMS in normal mods.toml mods (forum post)
    • Forge is now the `net.minecraftforge.forge` module instead of `forge`.
  • Simplify memory usage display on loading screen (#10237)
  • Deprecate `@ObjectHolder` and skip processing internal classes which do not use it (#10232)
  • Skip processing Forge classes in `RuntimeEnumExtender` (#10220)
  • Skip processing Forge classes in `RuntimeDistCleaner` (#10212)
  • Skip processing Vanilla classes in the `CapabilityTokenSubclass` transformer (#10225)
  • Simplify Title Screen Brandings (#10288)
  • Bump various dependencies, which include further cleanup and optmizations (#10275)
  • Remove redundant rendering options (#10140)
  • Add `c:stripped_logs` and `c:stripped_woods` tags (#10146)
  • Add AT for BlockEntityType constructor. (#10149)
  • Add support for using optional tags on Forge registries
  • Add DeferredRegister.key(name) helper function to make ResourceKey creation easier
  • Bump various dependencies, which include further cleanup and optmizations (#10275, #10385)
    • One notable dependency bump is EventBus, which includes:
      • Reduced memory usage
      • Further performance improvements
      • Unregistered listeners are now immediately reclaimable by the garbage collector, fixes EventBus#39
  • Bump Bootstrap, giving a slight performance boost during dev time (#10275)
  • Speed up mod annotation scanning by ~30% (#10466)
    • This was done by using the ClassReader flags SKIP_CODE, SKIP_DEBUG, and SKIP_FRAMES
  • Add VillagerType#registerBiomeType (#10357)
  • Add various extensions to GameTestHelper to make writing game tests easier (#10339)
  • Update Gradle to 8.12.1, reflected in MDK (#10353)
  • Re-introduce IForgeItem.damageItem when an item takes damage (#10372)
  • Re-introduce ItemStack Capabilities (#10362)
    • ICapabilitySerializable is unusable with itemstack capabilities. It is up to the modder to save persistent data using data components.
  • Add fast graphics render type to block model jsons, fixes #10389 (#10395)

Fixed:

  • All bug fixes from Forge 52.1 for Minecraft 1.21.1 (forum post)
  • Fix Bogged and Wolf armor not being shearable by custom shears, fixes #10005
  • Fix ClientTickEvent not firing properly
  • Bump NightConfig to 3.7.3, fixes #9122 and #10015
  • Fix falling block entities not rendering as moving blocks (#10006)
  • Choose the default JarJar mod file type based on the parent Jar, fixes #8878
  • Fix missed PartEntity patch in Player.attack (#10011)
  • Fix perspective rendering in SeparateTransformsModel (#10014)
  • Some code cleanup in ModInfo/ModFileInfo to use less streams and make things easier to debug
  • Fix conditional checking swallowing decoding errors when loading registry entries from datapacks, fixes #9995
  • Fix converting dirt to mud consumes whole bottle (not just emptying), fixes #10027
  • Fix compile errors in MDK (#10029)
  • Send last PoseStack pos to RenderLevelStageEvent AFTER_PARTICLES stage, fixes #10031
  • Fix Global Loot Modifier deserialization not having registry access, fixes #10042
  • Fix matrix stack translations for `RenderHighlightEvent` (#10050)
  • Fix `onPlaceItemIntoWorld` always resetting item stack when in creative mode (#10047)
  • Add missed @user_jvm_args.txt to run.bat
  • Fix ItemStack sensitive getDefaultAttributeModifiers not being called
  • Fix custom creative tabs with search listing all items instead of just their own
  • Fix network sync of custom datapack registries
  • Forge also uses a gametest to verify that it functions when updating
  • Remove unneeded boat patch (#10061)
  • Properly ignore unknown mod files (#10063)
  • Fix network channels not initializing during server transfers, fixes #10067
  • Fix issues with `QuadBakingVertexConsumer` and Forge's OBJ loader (#10065)
  • Fix inverted logic in TagEmptyCondition (#10069)
  • Fix Network hooks not being initialized on GameTestServer and include custom networking tests (#10081)
  • Fix highlighted item tooltip rendering twice, fixes #10112
  • Update vulnerable `eclipse` dependency (#10109)
  • Cleanup length and size checks (#10108)
  • Fix layering of translucent sprites being broken by re-adding blur call Mojang removed (#10115)
  • Fix and cleanup RuntimeDistCleaner
  • Patch BlockEntity.java to use getType Method (#10124)
  • Fix NightConfig FileWatcher causing dedicated server to hang when exiting (#10215)
  • Add client config to allow mipmap lowering to be disabled, fixes #10155 (#10256)
  • Update jline for better darwin/arm64 support, fixes #10107 (#10281)
  • Fix pause menu having a black background, reverts #10115 (#10143)
  • Fix items with use durations of 0 being repeatedly used when use button is held down, fixes #10150
  • Fix LootTableLoadEvent not being fired, fixes #10144
  • Fix Powered Rails acting like Activator Rails due to misaligned patch
  • Fix PlayerRenderer#render invoking RenderLivingEvent and not RenderPlayerEvent (#10167)
  • Cleanup lifecycle transitions
  • Fix mod ordering for multi-mod jars
    • Also made dependency resolution issues easier to debug and diagnose for the future
  • Fix missed call to getFriction hook in AbstractBoat
  • Fix empty tag conditional recipe test
  • Fix TagManager not binding tags
  • Fix Unbound Tag Exception when modders register tags during Register events, fixes #10154
  • Fix the MDK Item/Block registration example, fixes #10139
  • Fix not being able to swim in lava
  • Call IUnbakedGeometry.bake from BlockModel, fixes #10178
  • Change vanilla registry order to last-seen, fixes #10179
  • Pass the Holder<Enchantment> to Item.canApplyAtEnchantingTable, fixes #10181
  • Clean and fix Forge's internal coremods, fixes #10157 (#10159)
  • Fix JOpt Simple needing a strict version requirement declaration (#10312, #10348)
    • Your build.gradle file no longer needs to declare jopt-simple strictly 5.0.4!
  • Fix shield disabling being completely ignored (#10317)
    • This also fixes a long-standing bug since 1.19 where the Warden would be unable to disable shields.
  • Fix potential item deletion on shield break due to an oversight fixing a vanilla bug, fixes #10344 (#10372)
  • Fix game test structure rotations being inconsistent (#10391)
  • Fix redstone update order not matching vanilla, partially fixes #9973 (#10392)
  • Fix forced chunks never being ticked by the server (#10325)
  • Fix redstone updates for comparators going up/down incorrectly, partially fixes #9973
  • Fix corrupted and invalidly symlinked worlds crashing on level select (#10415)
  • Update tag context to AddReloadListenerEvent, fixes using custom tags in GlobalLootModifiers (#10416).

Removed:

  • Remove Non-HolderLookup methods from INBTSerializeable and mark it as deprecated in favor of using Vanilla's new Component system, fixes #9998

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.