In 1.12.2, trying to throw an enderpearl while standing in tall grass resulted in the enderpearl immediately colliding with the grass.
This was fixed in 17w47a, but the fix wasn't limited to player-thrown enderpearls and grass:
All Projectiles ignore the block they are spawned in!
For example, a dispenser facing into a solid block can shoot arrows through that block.
Also, mobs like skeletons or blazes can shoot at players even if they are stuck inside blocks.
This means that if a player has a renamed pet skeleton in his base encased in glass as decoration, it can now attack the player. Even worse if a player spent lots of effort capturing a ghast as decoration.
List of affected blocks/entities:
- Players can shoot all projectiles (Arrows, Eggs, Snowballs, XP bottles, Potions, Enderpearls, Trident) while in a block, no matter if solid or not
- Dispensers facing a solid block shoot through it. Affects all items thrown by players and fire charges (Fireworks have been passing through blocks since they got added, don't change that please)
- Tested mobs: Skeletons, Blazes, Withers can all shoot while stuck in blocks
- Shulkers aren't affected because they can't be stuck in a block (teleport away)
- Likely affected too but not tested yet: Stray, Ghast, Enderdragon, Drowneds with tridents
The test world is attached for easier replication.
Suggestion on how I would fix it:
Limit the fix for the enderpearl bug to only enderpearls, only projectiles shot by players and/or only tall grass and similar blocks (kelp and seagrass for example).
UPDATE: Looks like instead of ignoring the collision with the block they spawn in, they ignore all collisions for roughly one block.
Entity collisions seem to also be affected. I'll need to do more testing on this.
I updated the world download with a few new test cases added regarding entity hitboxes.