Update to Minecraft 26.3 - #50
Conversation
Tooling, matching CyclopsCore: - Gradle 9.7.1, NeoForge ModDev 2.0.147, NeoForge 26.3.0.7-beta Brewing: - Brewing became datapack-driven: PotionBrewing is gone, replaced by BrewingRecipe under RecipeType.BREWING. PotionHelperCommonCapabilities now reads those recipes instead of walking PotionBrewing's mixes, which also drops the graph walk and its infinite-loop guard. Potion ingredients are expanded into their container items crossed with the potions their predicate allows, and each output is assembled by the recipe itself so subtypes deriving the container from the input still work. - VanillaBrewingStandRecipeHandler#simulate resolves brewing recipes through the recipe manager. - BrewingStandBlockEntity#isBrewable now takes the ServerLevel and the block entity, so the worker defers to it. Furnaces: - FuelValues is gone, replaced by the COOKING_FUEL data component. - The recipeType field is gone; the furnace holds a cached recipe check instead, which also removes the reflection the worker used. Other: - SlotDisplay$TagSlotDisplay carries a HolderSet<Item>, fixed in the CommonCapabilitiesAPI submodule (CyclopsMC/CommonCapabilitiesAPI#9) - BundleContents#itemCopyStream renamed to itemCopies - Vanilla's item ids shifted, so the registry-id snapshots in TestIngredientMatcherItemStack move from 1051 to 1162 - Visual Workbench and Puzzles Lib are compileOnly until they release for 26.3; their 26.2 builds refuse to load and fail the test JVM cyclopscore_version still points at a 26.2 build, since no CyclopsCore 26.3 build is published yet. Building this needs cyclopscore_version_local in secrets.properties until then. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Appended automatically by clientdevbridge on first use, matching the entry already present in CyclopsCore. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
CyclopsMC/CommonCapabilitiesAPI#9 was squash-merged, so the branch this pointed at is gone and its commit is no longer reachable. master-26 now carries the 26.3 fix, along with two intervening commits that this mod already had the ingredient package and helpers for. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
ItemMatch.DATA_COMPARATOR no longer refers to this mod's own class, but to the new IDataComparator interface in the API, so that the API can be compiled without this mod. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
|
Heads-up on merge order: Please merge that PR first. If it is squashed, the pin here becomes an orphan commit, so I will move it to the resulting Generated by Claude Code |
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
|
On the red CI here, for the record: the That artifact does not exist yet. CyclopsMC/CyclopsCore#243 is the 26.3 update that produces it, and its I build this locally against a Generated by Claude Code |
CyclopsMC/CommonCapabilitiesAPI#10 was squash-merged, so the branch this pointed at is gone. The tree is identical. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
CyclopsMC/CyclopsCore#243 is merged, and its master-26 run published cyclopscore 1.30.0-1159, so the placeholder version and the note about building locally are no longer needed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Co-authored-by: Ruben Taelman <rubensworks@users.noreply.github.com>
CyclopsMC/CommonCapabilities#50 is merged and its master-26 run published commoncapabilities 2.11.8-398. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
CyclopsMC/CommonCapabilities#50 is merged and its master-26 run published commoncapabilities 2.11.8-398. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
CyclopsMC/CommonCapabilities#50 is merged and its master-26 run published commoncapabilities 2.11.8-398. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V35MFZ7JSgoLe79J4d1uxf
Updates to Minecraft 26.3, alongside CyclopsMC/CyclopsCore#243.
./gradlew buildpasses, unit tests pass, and all 48 game tests are green — includingtestBlockRecipeHandlerCapBrewingStand,testBlockWorkerCapBrewingstand*and the furnace equivalents, which is what gives confidence in the brewing rework below.CommonCapabilitiesAPI submodule
The submodule points at
eac103d, the currentmaster-26, which carries both theSlotDisplay$TagSlotDisplayHolderSet<Item>fix (CyclopsMC/CommonCapabilitiesAPI#9) and the self-containment fix (CyclopsMC/CommonCapabilitiesAPI#10), both merged.DataComparatornow implements the API's newIDataComparatorso that the API compiles without this mod, which is what CyclopsCore needs to trackmaster-26.Brewing became datapack-driven
This is the substantial part.
PotionBrewingis gone, replaced byBrewingRecipeunderRecipeType.BREWINGplus aBREWING_FUELcomponent.PotionHelperCommonCapabilitiesreads those recipes instead of walkingPotionBrewing's container and potion mixes. That also drops the breadth-first graph walk and its "infinite loop detected" guard, which only existed because brewing was not recipe-driven.PotionsPredicateallows, and each output is produced by calling the recipe's ownassemble, soBrewingRecipesubtypes that derive the output container from the input (as the vanilla mixes do) still come out right.VanillaBrewingStandRecipeHandler#simulateresolves brewing through the recipe manager.BrewingStandBlockEntity#isBrewablenow takes theServerLeveland the block entity, so the worker defers to it rather than reimplementing the check.The game test asserts at least 279 brewing recipes are enumerated and that every one of them simulates successfully, so this is covered end to end rather than just compiling.
Furnaces
FuelValuesis gone, replaced by theCOOKING_FUELdata component.canWorkchecks for that component rather than a positive burn duration; vanilla itself uses the same check for fuel-slot validity.recipeTypefield is gone — the furnace holds a cached recipe check instead. That also removes the reflection the worker previously needed.Other
BundleContents#itemCopyStreamrenamed toitemCopies.TestIngredientMatcherItemStackmove from 1051 to 1162. These assert a rawItem.getIddifference, so they are expected to move every version.compileOnlyuntil they release for 26.3. Their 26.2 builds refuse to load on 26.3 and fail the test JVM's mod loading outright. The mod compat itself only activates whenvisualworkbenchis present, so nothing is lost at runtime; there is aTODOto put them back onimplementation.Generated by Claude Code