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/d/seher/haeuser/moebel/swift_std_container.c b/d/seher/haeuser/moebel/swift_std_container.c
index 90f4986..6d0a456 100644
--- a/d/seher/haeuser/moebel/swift_std_container.c
+++ b/d/seher/haeuser/moebel/swift_std_container.c
@@ -319,9 +319,9 @@
         +(zweitieerlaubnis==""?"nicht mehr ":"")+"oeffnen/schliessen."));
     return 1;
   }
-  wen=CAP(wen);
-  if( file_size("//save//"+LOWER(wen[0..0])+"//"+LOWER(wen)+".o") != -1 ) // Spieler gibt es auch!
+  if( master()->find_userinfo(wen)) // Spieler gibt es auch!
   {
+    wen=CAP(wen);
     if( member(erlaubnis, wen) != -1 )  // Spieler hat Erlaubnis -> verbieten!
     {
       erlaubnis-=({wen});
@@ -336,7 +336,7 @@
     return 1;
   }
   else
-    write("Es gibt keinen Spieler namens "+wen+"!\n");
+    write("Es gibt keinen Spieler namens "+CAP(wen)+"!\n");
   return 1;
 }
 
diff --git a/obj/tools/teller/t_cmds.c b/obj/tools/teller/t_cmds.c
index 68fa5d3..62f431d 100644
--- a/obj/tools/teller/t_cmds.c
+++ b/obj/tools/teller/t_cmds.c
@@ -136,7 +136,7 @@
 
 	if( !becomes_pl() && ( !objectp(top()) || !living(top()) ) )
 	{
-		if( stringp(top()) && file_size( "/save/"+top()[0..0]+"/"+top()+".o") > 0 )
+		if( stringp(top()) && master()->find_userinfo(top()))
 		{
 			obj = clone_object( T_PLAYER );
 			obj->Load( top() );
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;
   }
diff --git a/std/player/base.c b/std/player/base.c
index 6d7af19..1078454 100644
--- a/std/player/base.c
+++ b/std/player/base.c
@@ -2277,17 +2277,22 @@
     InitPlayer();
 
     // Padreic 01.02.1999
-    if ( !IS_LEARNER(ME) && second = QueryProp(P_SECOND) ) {
-        if ( stringp(second) && lower_case(second)[0..3] == "von " ) {
+    if ( !IS_LEARNER(ME) && (second = QueryProp(P_SECOND)) )
+    {
+        if ( stringp(second) && lower_case(second)[0..3] == "von " )
+        {
             second = lower_case(second[4..]);
             SetProp( P_SECOND, second );
         }
 
         if ( !stringp(second ) ||
-             file_size( "/save/" + second[0..0] + "/" + second + ".o" ) <= 0 ){
+             !master()->find_userinfo(second))
+        {
+            // Wenns nur an Gross-/Kleinschreibung liegt, wird automatisch
+            // korrigiert.
             if ( stringp(second) &&
-                 file_size( "/save/" + lower_case(second[0..0]) + "/" +
-                            lower_case(second) + ".o" ) >0 ){
+                 master()->find_userinfo(lower_case(second)))
+            {
                 SetProp( P_SECOND, lower_case(second) );
                 log_file( "WRONG_SECOND",
                           sprintf( "%s: %s: P_SECOND = %O -> Automatisch "