diff --git a/packages/java-edition/src/mcfunction/checker/index.ts b/packages/java-edition/src/mcfunction/checker/index.ts index f6c6b1d1e..e455ffa39 100644 --- a/packages/java-edition/src/mcfunction/checker/index.ts +++ b/packages/java-edition/src/mcfunction/checker/index.ts @@ -140,7 +140,12 @@ const itemPredicate: core.SyncChecker = (node, ctx) => { } else if (ComponentTestExactNode.is(test) && test.value) { nbt.checker.index('minecraft:data_component', key)(test.value, ctx) } else if (ComponentTestSubpredicateNode.is(test) && test.value) { - nbt.checker.index('minecraft:item_sub_predicate', key)(test.value, ctx) + const release = ctx.project['loadedVersion'] as ReleaseVersion | undefined + if (release && ReleaseVersion.cmp(release, '1.21.5') < 0) { + nbt.checker.index('minecraft:item_sub_predicate', key)(test.value, ctx) + } else { + nbt.checker.index('minecraft:data_component_predicate', key)(test.value, ctx) + } } } } diff --git a/packages/java-edition/src/mcfunction/parser/argument.ts b/packages/java-edition/src/mcfunction/parser/argument.ts index 577721590..748775ce7 100644 --- a/packages/java-edition/src/mcfunction/parser/argument.ts +++ b/packages/java-edition/src/mcfunction/parser/argument.ts @@ -1778,7 +1778,12 @@ const componentTest: core.InfallibleParser = (src, ctx) => { if (src.trySkip('~')) { src.skipWhitespace() if (key.options.category !== undefined) { - key.options.category = 'item_sub_predicate_type' + const release = ctx.project['loadedVersion'] as ReleaseVersion | undefined + if (release && ReleaseVersion.cmp(release, '1.21.5') < 0) { + key.options.category = 'item_sub_predicate_type' + } else { + key.options.category = 'data_component_predicate_type' + } } const ans: ComponentTestSubpredicateNode = { type: 'mcfunction:component_test_sub_predicate',