From e87f791b03a274bc0e0c64a78159483832fb59b4 Mon Sep 17 00:00:00 2001 From: Misode Date: Wed, 29 Jan 2025 23:08:15 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20item=5Fpredicate=20command?= =?UTF-8?q?=20argument=20in=201.21.5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/java-edition/src/mcfunction/checker/index.ts | 7 ++++++- packages/java-edition/src/mcfunction/parser/argument.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) 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',