When a player damages or kills an entity by igniting TNT, advancements should get a minecraft:player_hurt_entity and/or minecraft:player_killed_entity trigger, with the "direct_entity" set to the primed TNT in question and the "source_entity" set to the player that lit it.
Instead, the "direct_entity" is always set to the player. Every other way the player has of damaging targets at a distance while giving the player credit (arrows, tridents, snowballs, eggs, splash/lingering potions of harming) sets the "direct_entity" to the correct target.
To test this:
- Add the attached data pack to a world. It prints a message when the player hurts or kills an entity, and an additional message if the "direct_entity" is the player or a primed TNT.
- Hurt/kill an entity with your fist, and note that the "direct_entity" is correctly set to the player.
- Hurt/kill an entity with a non-TNT projectile, and note that, since we receive no second message, the "direct_entity" is correctly not set to the player (nor, for some reason, to a primed TNT).
- Hurt/kill an entity by lighting TNT with a flint and steel, and note that the "direct_entity" is incorrectly set to the player.