procedure KNewsServer.user(pClientIP:string; pClientPort:integer; pMessage:string); var pUser:string; begin //kopiert den angegebenen usernamen aus dem eingegebenen wert pUser:=copy(pMessage, 6, length(pMessage)-5); if not Clients.isEmpty then begin // Schauen ob der Benutzer schon woanders mit IP und Port und Auth vermerkt ist Clients.toFirst; while not (Clients.isBehind) and not (KUser(Clients.getItem).getauth=true) and not (KUser(Clients.getItem).getIp=pClientIP) and not (KUser(Clients.getItem).getPort=pCLientPort) DO Clients.next; // wenn er IP und Port mit Auth nicht gefunden hat(er also nicht unter einem anderen // benutzernamen angemeldet ist) dann darf er weiter machen if Clients.isBehind then begin // jetzt beginnt die suche nach dem user namen Clients.toFirst; while not(Clients.isBehind) AND (KUser(Clients.getItem).getName<>pUser) DO Clients.next; // weiter wenn er nicht hinter der liste steht (also user gefunden hat) if not Clients.isBehind then begin if (KUser(Clients.getItem).getauth=false) and (KUser(Clients.getItem).getIp='') then begin KUser(Clients.getItem).setIP(pClientIP); KUser(Clients.getItem).setPort(pClientPort); send(pClientIP,pClientPort,'OKOK Ip und Port wurden fuer Ihren Benutzernamen eingetragen'); passerlaubt:=true; end else begin send(pClientIP,pClientPort,'KOKO User bereits angemeldet'); passerlaubt:=false; end; end else begin send(pClientIP,pCLientPort,'KOKO User nicht vorhanden'); passerlaubt:=false; end; end else begin send(pCLientIP,pCLientPort,'KOKO Sie sind bereits unter einem anderen Usernamen angemeldet'); passerlaubt:=false; end; end else begin send(pClientIP,pCLientPort,'KOKO User nicht vorhanden'); passerlaubt:=false; end; end;