That's right, you could just go through all the world's players, measure the distance to them and send the message specifically to those players, then refuse further processing on the chat message (return true). I was thinking something more systematic, such as MCServer having an API function ForEachPlayerWithinDistance() or such.
Combine all of these together, and you'll have the ultimate chat plugin
Combine all of these together, and you'll have the ultimate chat plugin