Expanded Data
This modification expands the capabilities of data objects and NBT tag access for data commands in Minecraft, providing players and datapack creators with new useful tools.
The current version is designed for Minecraft 1.21.3, but technically it's not difficult to adapt the functionality for other game versions. The mod works exclusively on the server side and is created with full compatibility with any datapacks in mind.
Usage
Getting block data for other commands
data get block -188 68 985

{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 for full compatibility with block_display entities that appeared in Minecraft version 1.19.4. This solution allows copying block information between real objects and block_display elements without problems.
You can also modify any parameters contained in block_state within the available states
data modify block -188 68 985 block_state.Name set value "minecraft:dirt"
Access to CursorItem, CraftingItems and CraftingResult
CursorItem
data get @s CursorItem
{count: 1, id: "minecraft:diamond_sword"}
CraftingItems
data get @s CraftingItems
[{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"}]
CraftingResult
data get @s CraftingResult
{count: 4, id: "minecraft:oak_planks"}
Since these data values are directly tied to players, the ability to edit them is limited. All listed elements work perfectly within conditions, as expected by standard game logic.