Wiki

Clone wiki

User Apps / FAQ / UserLaden

Wie lädt man Nutzer korrekt?

Ja, wie lädt man Nutzer korrekt...
Was man haben möchte ist das User Objekt.

function getUserByNick (_nick) 
{
    var userAccess = KnuddelsServer.getUserAccess();
    if (userAccess.exists(_nick)) 
    {
        var userId = userAccess.getUserId(_nick);

        if (userAccess.mayAccess(userId))
        {
            var user = userAccess.getUserById(userId);
            // user ist das User Objekt, das man haben möchte
        }
        else
        {
            var correctNick = userAccess.getNick(userId);
            // User hat den Channel noch nie betreten während die App lief, daher ist das User Objekt nicht verfügbar.
            // man kann aber den Nick in korrekter Schreibweise bekommen
        }
    } 
    else 
    {
        // User mit Nick _nick existiert nicht
    }
}

Natürlich muss man jetzt die unterschiedlichen Fälle noch richtig behandeln. In den meisten Fällen will man natürlich dem User für die unterschiedlichen Fälle eine Rückmeldung geben. Also kann man entweder die Abfrage jedes mal neu schreiben oder in die Funktion einen User übergeben, an den automatische Rückmeldungen verschickt werden.

function getUserByNick (_user, _nick) 
{
    var userAccess = KnuddelsServer.getUserAccess();
    if (userAccess.exists(_nick)) 
    {
        var userId = userAccess.getUserId(_nick);

        if (userAccess.mayAccess(userId))
        {
            var user = userAccess.getUserById(userId);
            return user;
        }
        else
        {
            var correctNick = userAccess.getNick(userId);
            _user.sendPrivateMessage("Ich kann auf " + correctNick + " nicht zugreifen. Bitte ihn doch einmal in den Channel zu kommen :)";
        }
    } 
    else 
    {
        _user.sendPrivateMessage("Ein Nutzer mit dem Nick " + _nick + " existiert nicht.";
    }
}

In so einem Fall muss man nur noch prüfen, ob der der User gefunden wurde und kann dann damit weiter arbeiten. Wenn die Methode keinen Rückgabewert hat, weiß man, dass sich um den Rest schon gekümmert wurde.

var user = getUserByNick (_userWhoAsked, _nick);
if (user) 
{
    // Do Stuff
}
else
{
    // Alles schon erledigt, die Methode hat bereits Rückmeldung gegeben
}

Updated