Expanded Data Objects and NBT Accessors for Minecraft data commands.
This current version is built for Minecraft 1.21.3, but translation is pretty straight forwards between other versions.
This is a server-side mod, and is designed with full compatibility in mind for datapack usage.
datagetblock-18868985{block_state: {Properties: {east: "true",waterlogged: "false",south: "true",north: "false",west: "false"},Name: "minecraft:white_stained_glass_pane"},x: -188,y: 68,z: 985}The block_state property is designed to have 1-to-1 compatibility with the block_display entities introduced in Minecraft 1.19.4. This allows block data to be copied to/from real blocks and block_displays.
You can also set/modify any data found block_state, as confined by the typically available states
datamodifyblock-18868985block_state.Namesetvalue"minecraft:dirt"dataget@sCursorItem{count: 1,id: "minecraft:diamond_sword"}dataget@sCraftingItems[{count: 1,Slot: 0b,id: "minecraft:oak_planks"},{count: 1,Slot: 1b,id: "minecraft:oak_planks"},{count: 1,Slot: 2b,id: "minecraft:oak_planks"},{count: 1,Slot: 3b,id: "minecraft:oak_planks"}]dataget@sCraftingResult{count: 4,id: "minecraft:oak_planks"}As these are data values tied to players, you are unfortunately unable to modify them. All things mentioned will also work in predicates, just as you would expect.



