The bug
The fact that chests drop their contents isn't defined in their block loot table. Apparently this is still hardcoded, while it is possible to do it with a block loot table.
What the current table looks like
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "minecraft:chest"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "minecraft:chest"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}What the block loot table should look like
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "minecraft:chest"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:dynamic",
"name": "minecraft:contents"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"functions": [
{
"function": "minecraft:copy_name",
"source": "block_entity"
}
],
"name": "minecraft:chest"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:dynamic",
"name": "minecraft:contents"
}
],
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
]
}
]
}
Feature request. Shulker boxes are "special" since they need that info to drop as item.
Note: I'm not against it, but there are some technical challenges to solve before doing that.