To check if a object is valid use...
Code:
if (player.IsValid)
You also need to Dispose() your object OnClientDisconnect. These objects are not managed and will cause memory leaks if not disposed of correctly.
GetInt() already supports default values as the second parameter.
Code:
int defaultvalue = player.GetInt ("notset", 123);
__________________