Skip to content

feat: NBT Tag matching (1.19.2) - #486

Open
ReinderN wants to merge 23 commits into
TeamDman:1.19.2from
ReinderN:feature/nbt-matching
Open

feat: NBT Tag matching (1.19.2)#486
ReinderN wants to merge 23 commits into
TeamDman:1.19.2from
ReinderN:feature/nbt-matching

Conversation

@ReinderN

Copy link
Copy Markdown

No description provided.

@ReinderN

Copy link
Copy Markdown
Author

With the last few commits I introduced grammar for NBT matching, this grammar is not fully compliant with the JMESPath querry language, so the user is still able to use a String to write more complex / not implemented statements.

@ReinderN

Copy link
Copy Markdown
Author

Also because we use getTag in this version of minecraft we can querry less than the minecraft 1.21 version would be able to do with the components, such as stack count or the entire item state. getTag also return values using PascalCase while the components use lowercased. This will mean that any matching written up to 1.20.4 will likely require minor tweaks for 1.21+

Brings the platform/ + docs/ restructure, the modular Gradle scripts, and
the schema-v3 dependency lockfile onto the NBT matching feature branch.
Stays on Minecraft 1.19.2 per the oldest-version-first rule.

Conflict resolution:

- The NBT feature files were added under src/ on this branch while
  origin/1.19.2 renamed that tree to platform/minecraft/src/. Kept them at
  the new locations.
- SFMLNbtFilteringTests moved into ca/teamdman/sfml/test/, so its package
  declaration and SFMLTestHelpers static import were updated to match.
- The nbt_filtering game tests were auto-resolved at the stale src/gametest
  path and have been moved into platform/minecraft/src/gametest/.
- Root build.gradle was deleted upstream in favour of the modular scripts
  under platform/minecraft/gradle/. Kept the deletion and re-expressed its
  JMESPath dependency through the lockfile instead:
  jmespath/main (io.burt:jmespath-core:0.6.0) and jmespath/gson
  (io.burt:jmespath-gson:0.6.0), both scoped compile+runtime+bundle, added
  with `sfm-propagate-changes dependency add`.

Note: the bundle scope records shipping intent, but the Rust build engine
only writes META-INF/jarjar entries for the NeoGradle toolchain, so 1.19.2
release jars will not embed JMESPath until ForgeGradle JarJar packaging is
implemented.
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.

1 participant