Skip to content

Update to Minecraft 26.3 - #243

Merged
rubensworks merged 1 commit into
master-26from
claude/minecraft-26-3-update-xr1cny
Sep 20, 2026
Merged

rubensworks merged 1 commit into
master-26from
claude/minecraft-26-3-update-xr1cny

Conversation

@rubensworks

Copy link
Copy Markdown
Member

Ports IntegratedCrafting to Minecraft 26.3 (NeoForge 26.3.0.7-beta).

Dependency versions bumped to the 26.3 builds: CyclopsCore 1.30.0-1159, IntegratedDynamics 1.33.4-2157, CommonCapabilities 2.11.8-398, IntegratedTunnels 1.9.6-795. Also bumps the moddev plugin to 2.0.147.

Changes

org.lwjgl.glfw is gone

The LWJGL GLFW bindings are no longer on the classpath, since input moved to SDL. GLFW.GLFW_KEY_ESCAPE is replaced by InputConstants.KEY_ESCAPE in the two part screens that handle escape themselves.

SlotDisplay.TagSlotDisplay now holds a HolderSet<Item>

Two consequences:

  • RecipeDeadBush#display has to wrap its tag keys via BuiltInRegistries.ITEM.getOrThrow(...).
  • Ingredient#display() now returns a TagSlotDisplay for every ingredient, including plain direct item sets. An instanceof TagSlotDisplay check therefore no longer means "this ingredient is a tag". GameTestHelpersIntegratedCrafting was reading unwrapKey().get() on it, which threw NoSuchElementException for any recipe with a non-tag ingredient (5 game tests failed). It now only treats a named holder set as a tag and otherwise falls through to the item-based branch. This matches what RecipeHandlerHelpers in the CommonCapabilities API already does.

Level#potionBrewing() removed

Brewing became datapack-driven. CraftingProcessOverrideBrewingStand decides per ingredient whether it goes into the reagent slot or a bottle slot; it now asks level.recipeAccess().propertySet(RecipePropertySet.BREWING_REAGENTS), which is the same source vanilla's BrewingStandBlockEntity#canPlaceItem uses.

logoFile deprecation

neoforge.mods.toml now uses iconFile.

Validation

  • ./gradlew build passes.
  • ./gradlew runGameTestServer: all 82 required tests pass (5 were failing before the TagSlotDisplay fix).
  • Checked in a dev client with clientdevbridge:
    • Attuned Crafting Interface → Part Offsets screen, escape returns to the part GUI instead of closing everything.
    • Part Settings screen renders correctly, the Crafting Channel field accepts typed input, and escape is not swallowed by the focused field but returns to the part GUI.
    • BREWING_REAGENTS on a live server matches the old isIngredient behaviour: nether wart / redstone / glowstone dust are reagents, water bottles / glass bottles / cobblestone are not.
    • The dead bush recipe display resolves its two ingredients back to minecraft:saplings and c:tools/shear.

🤖 Generated with Claude Code

https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf


Generated by Claude Code

* Replace the removed org.lwjgl.glfw key constants with InputConstants
* SlotDisplay.TagSlotDisplay now takes a HolderSet<Item> instead of a TagKey<Item>,
  and Ingredient#display() wraps plain item sets in it as well,
  so an actual tag is only recognized via HolderSet#unwrapKey
* Level#potionBrewing is gone, brewing reagents are now a recipe property set
* Replace the deprecated logoFile with iconFile

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
@rubensworks
rubensworks merged commit eac226d into master-26 Sep 20, 2026
5 of 7 checks passed
@rubensworks
rubensworks deleted the claude/minecraft-26-3-update-xr1cny branch September 20, 2026 14:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants