fixed player join/leave handling