Probably don't even need to get the tree locations and store in a Dict (Just assumed server didn't know they were there)
This would probably work, nice and light weight:
On_Playergathering(Fougerite.Player Player, GatherEvent ge)
{
float distance =...