Korrektur Spielercheck

Diverse Pruefungen, ob ein Spieler existiert, gefixt.
Dabei direkt auf etwas robusteres umgestellt statt auf
die Existenz des Savefiles zu pruefen.

Change-Id: I13d251e497f166e12403c902c3fcac179c7dd879
diff --git a/secure/bbmaster.c b/secure/bbmaster.c
index 9677f7f..4e5c784 100644
--- a/secure/bbmaster.c
+++ b/secure/bbmaster.c
@@ -338,10 +338,7 @@
 // Alles ab hier nur zum Ueberwachen von FTP-Aktivitaeten.
 private int player_exists( string user )
 {
-    if ( !stringp( user ) || sizeof( user ) < 2 )
-        return 0;
-    
-  return file_size( "/save/" + user[0..0] + "/" + user + ".o" ) > 0;
+  return master()->find_userinfo(user);
 }
 
 public int add( string user, int timeout )
diff --git a/secure/ftpd.c b/secure/ftpd.c
index 749cf03..3aaa5e6 100644
--- a/secure/ftpd.c
+++ b/secure/ftpd.c
@@ -58,7 +58,7 @@
 nomask int player_exists( string user ) {
   user = lower_case(user);
   if( !stringp( user ) || sizeof( user ) < 1 ) return 0;
-  return file_size( "/save/"+user[0..0]+"/"+user+".o" ) > 0;
+  return master()->find_userinfo(user);
 }
 
 nomask varargs int add( string user, int timeout ) {
diff --git a/secure/mailer.c b/secure/mailer.c
index 1c0d575..c4f7665 100644
--- a/secure/mailer.c
+++ b/secure/mailer.c
@@ -384,8 +384,8 @@
 
         }
         else
-            if ( file_size( SAVEPATH + recipients[i][0..0] + "/" +
-                            recipients[i] + ".o" ) >=0 ){
+            if (master()->find_userinfo(recipients[i]) )
+            {
                 save_msg( newmsg, recipients[i] );
                 recok += ({ recipients[i] });
             }
@@ -595,15 +595,15 @@
 public int query_recipient_ok( string name )
 {
 #if INTERNET_MAIL_ENABLED
-    return  (file_size( "secure/save/" + name[0..0] + "/" + name + ".o" ) > 0
-        || member( name, '%' ) > 0 || member( name, '@' ) > 0 );
+    return  (master()->find_userinfo(name)
+             || member( name, '%' ) > 0 || member( name, '@' ) > 0 );
 #else
     // es darf zwar ein @ in der Adresse vorkommen, dahinter aber kein . mehr
     // (dann ist es ne Mail via Intermud-Mail, nicht ins Internet).
     string *tmp;
-    return  (file_size( "secure/save/" + name[0..0] + "/" + name + ".o" ) > 0
-        || member( name, '%' ) > 0
-        || (sizeof(tmp=explode(name,"@")) == 2 && strstr(tmp[1],".") == -1));
+    return  (master()->find_userinfo(name)
+             || member( name, '%' ) > 0
+             || (sizeof(tmp=explode(name,"@")) == 2 && strstr(tmp[1],".") == -1));
 #endif
 }
 
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 40915c7..a831d46 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -176,7 +176,8 @@
       return;
   }
 
-  if ( !force && file_size(SAVEPATH+name[0..0]+"/"+name+".o") > 0 ){
+  if ( !force && find_userinfo(name))
+  {
       write("Es existiert bereits ein Spieler dieses Namens.\n");
       return;
   }
@@ -243,7 +244,8 @@
     return 0;
   }
 
-  if (file_size(SAVEPATH+name[0..0]+"/"+name+".o")<=0){
+  if (!find_userinfo(name))
+  {
     write("Es existiert kein Spieler dieses Namens!\n");
     return 0;
   }
diff --git a/secure/news.c b/secure/news.c
index 751c887..25931b7 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -131,7 +131,7 @@
 
   if (member(grouplist, name)) return -2; // Gibt es schon
 
-  if (file_size("/"+SAVEPATH+owner[0..0]+"/"+owner+".o")<0) return -3;
+  if (!master()->find_userinfo(owner)) return -3;
 
   savefilea = old_explode(name,".");
   savefile = implode(savefilea,"/");
diff --git a/secure/sinmaster.c b/secure/sinmaster.c
index 14b8f94..1559c75 100644
--- a/secure/sinmaster.c
+++ b/secure/sinmaster.c
@@ -108,7 +108,7 @@
 
     if ( text[0..2]=="-f " )
       text=text[3..];
-    else if ( file_size(sprintf("/save/%s/%s.o",who[0..0],who))<1)
+    else if ( !master()->find_userinfo(who))
       return sprintf("Es gibt keinen Spieler namens '%s'\n",who);
 
     text = dtime(time()) + " ("+CAP(getuid(RPL))+")\n" 
diff --git a/secure/testmud.c b/secure/testmud.c
index 42c255a..2b0cee7 100644
--- a/secure/testmud.c
+++ b/secure/testmud.c
@@ -33,7 +33,7 @@
   {
     copy_file("/std/def_workroom.c","/players/jof/workroom.c");
   }
-  if(file_size("/secure/save/j/jof.o") == FSIZE_NOFILE)
+  if (!master()->find_userinfo("jof"))
   {
     save_object("/secure/save/j/jof");
   }
diff --git a/secure/wahlmaschine.c b/secure/wahlmaschine.c
index 8705f87..899fe1e 100644
--- a/secure/wahlmaschine.c
+++ b/secure/wahlmaschine.c
@@ -125,7 +125,9 @@
     return 0;
   }
   if ((second=RPL->QueryProp(P_SECOND)) &&
-      (!stringp(second) || (file_size("/save/"+lower_case(second[0..0])+"/"+lower_case(second)+".o")<=0))) {
+      (!stringp(second)
+       || !master()->find_userinfo(second)))
+  {
     notify_fail("Nicht richtig markierte Zweities sind von der Wahl ausgeschlossen.\n");
     return 0;
   }