So, I have the desire for blocks, specifically glass, to break when hit with an arrow. However, I am not sure how to get the actual block it hits; getting the location of the arrow returns the air block in which the majority of the arrow is still sticking out. Step 1: Get the arrow's location after the ProjectileHitEvent. At first, I tried a BlockIterator initialized with the arrow's location. This turned out some seriously weird blocks that were often nowhere near the arrow. So, I abandoned this approach. Secondly, I considered trying an approach based on the arrow's pitch and yaw. However, I realized that a single pitch and yaw could put the arrow in relation to a whole bunch of different blocks; 5 to be exact. So that was scrapped also. The only idea I have left is comparing the type double coordinates to the type int blockCoordinates of the arrow. Using these, find the closest block. So, your opinions. Will the last one even work? Is there an easier way to do this? EDIT: The last option does the same thing as the BlockIterator and tends to return somewhat random positions. I'm now at a full loss on how to do this.