Anzeigen:
Extends User
Modul: User

Ein BotUser repräsentiert einen Nutzer, der für die App als Nutzer im Channel interagieren kann.

Die Instanz für den Standard-BotUser erhält man über das KnuddelsServer-Objekt mit KnuddelsServer.getDefaultBotUser()

Methoden

addNicklistIcon

(
  • imagePath
  • imageWidth
)

Geerbt von User:

Setzt dem Nutzer ein Icon in die Nickliste, das auf der rechten Seite seines Nicks angezeigt wird. Der Eintrag wird automatisch entfernt, sobald der Nutzer den Channel verlässt, kann aber auch mit {{#crossLink "User/removeNicklistIcon:method"}}{{/crossLink}} entfernt werden.

Parameter:

  • imagePath String
    Absoluter Pfad zum Bild (Erlaubte Dateitypen sind .gif und .png)
  • imageWidth Number
    Anzeigebreite des Bildes (Ganzzahl zwischen 1 und 100)

Beispiel:

var imagePath = KnuddelsServer.getFullSystemImagePath('cubes/cubes_prefix_blue.png');
user.addNicklistIcon(imagePath, 50);

canSendAppContent

(
  • appContent
)
Boolean

Geerbt von User:

Prüft ob der Client des User's den übergebenen {{#crossLink "AppContent"}}{{/crossLink}} anzeigen kann.

Parameter:

  • appContent AppContent
    Der {{#crossLink "AppContent"}}{{/crossLink}}, der geprüft werden soll.

Rückgabewert:

Beispiel:

var htmlFile = new HTMLFile('index.html');

var appContent = AppContent.overlayContent(htmlFile);

var message;

if (user.canSendAppContent(appContent))
{
    message = 'Du kannst die App benutzen. Viel Spaß!';
}
else
{
    message = 'Du kannst diese App mit diesem Gerät leider nicht benutzen.';
}

user.sendPrivateMessage(message);

canShowAppViewMode

(
  • mode
)
Boolean

Geerbt von User:

Prüft ob der Client des Users den übergebenen {{#crossLink "AppViewMode"}}{{/crossLink}} (für {{#crossLink "User/sendAppContent:method"}}{{/crossLink}}) anzeigen kann.

Parameter:

  • mode AppViewMode
    Der {{#crossLink "AppViewMode"}}{{/crossLink}}, der geprüft werden soll.

Rückgabewert:

Beispiel:

var message;

if (user.canSendAppViewMode(AppViewMode.Overlay))
{
    message = 'Du kannst die App benutzen. Viel Spaß!';
}
else
{
    message = 'Du kannst diese App leider nicht benutzen.';
}

user.sendPrivateMessage(message);

equals

(
  • user
)
Boolean

Geerbt von User:

Vergleicht den übergebenen Nutzer und liefert true, falls der übergebene Nutzer identisch ist mit dem aktuellen Nutzer.

Parameter:

Rückgabewert:

Beispiel:

var appAccess = KnuddelsServer.getAppAccess();

var appDeveloper = appAccess.getOwnInstance().getAppInfo().getAppDeveloper();

if (user.equals(appDeveloper))
{
    user.sendPrivateMessage('Du bist der Entwickler der App.');
}

getAge

() Number

Geerbt von User:

Liefert das Alter des Nutzers. Bei Nutzern, die bereits sehr lange in der Plattform sind kann es vorkommen, dass kein Alter angegeben wurde. In diesem Fall ist das Alter 0.

Rückgabewert:

Beispiel:

var age = user.getAge(); // i.e.: 30

getAppContentSession

(
  • appViewMode
)
AppContentSession

Geerbt von User:

Liefert die {{#crossLink "AppContentSession"}}{{/crossLink}}, die der {{#crossLink "User"}}{{/crossLink}} mit einem bestimmten {{#crossLink "AppViewMode"}}{{/crossLink}} aktuell geöffnet hat.

Parameter:

Rückgabewert:

AppContentSession: appContentSession für übergebenen AppViewMode, ansonsten null

Beispiel:

var appContentSession = user.getAppContentSession(AppViewMode.Popup);

getAppContentSessions

() AppContentSession[]

Geerbt von User:

Liefert alle {{#crossLink "AppContentSession"}}{{/crossLink}}, die der {{#crossLink "User"}}{{/crossLink}} aktuell geöffnet hat.

Rückgabewert:

Beispiel:

var appContentSessions = user.getAppContentSessions();

getAuthenticityClassification

() AuthenticityClassification

Geerbt von User:

Verfügbar ab Revision AppServer 94663, ChatServer 94663

Liefert eine Information darüber, wie echt dieser Nutzer vom Knuddels-System eingeschätzt wird.

Rückgabewert:

Beispiel:

var authenticityClassifiction = user.getAuthenticityClassification();

getChannelTalkPermission

() ChannelTalkPermission

Geerbt von User:

Liefert die {{#crossLink "ChannelTalkPermission"}}{{/crossLink}} für diesen Nutzer in diesem {{#crossLink "Channel"}}{{/crossLink}}.

Rückgabewert:

Beispiel:

var channelTalkPermission = user.getChannelTalkPermission(); // i.e.: ChannelTalkPermission.Default

getClientType

() ClientType

Geerbt von User:

Liefert den aktuellen {{#crossLink "ClientType"}}{{/crossLink}} des Nutzers oder Offline wenn er nicht im Chat online ist.

Rückgabewert:

Beispiel:

var clientType = user.getClientType(); // i.e.: ClientType.Applet

getGender

() Gender

Geerbt von User:

Liefert das Geschlecht des Nutzers.

Rückgabewert:

Beispiel:

var gender = user.getGender(); // i.e.: Gender.Male

getKnuddelAccount

() KnuddelAccount

Geerbt von User:

Liefert den {{#crossLink "KnuddelAccount"}}{{/crossLink}} des Nutzers.

Rückgabewert:

Beispiel:

var knuddelAccount = user.getKnuddelAccount();

getKnuddelAmount

() KnuddelAmount

Geerbt von User:

Liefert die Anzahl der Knuddel, die der Nutzer besitzt.

Rückgabewert:

KnuddelAmount: Anzahl der Knuddel

Beispiel:

var knuddelAmount = user.getKnuddelAmount();

getNick

() String

Geerbt von User:

Liefert den Nicknamen des Nutzers.

Rückgabewert:

Beispiel:

var nick = user.getNick(); // i.e. 'Holgi'

getOnlineMinutes

() Number

Geerbt von User:

Liefert die vom Nutzer verbrachte Zeit im gesamten Chatsystem In Minuten. Hinweis: Die Minutenzahl wird derzeit immer nur zu dem Zeitpunkt aktualisiert, wenn der Nutzer offline geht.

Rückgabewert:

Beispiel:

var onlineMinutes = user.getOnlineMinutes(); // i.e.: 300000

getPersistence

() UserPersistence

Geerbt von User:

Liefert ein {{#crossLink "UserPersistence"}}UserPersistence-Objekt{{/crossLink}} für diesen Nutzer. Mit diesem Objekt kann eine {{#crossLink "App"}}{{/crossLink}} sich Dinge über diesen speziellen Nutzer merken.

Rückgabewert:

Beispiel:

user.getPersistence().setNumber('points', 300);
var points = user.getPersistence().getNumber('points', 0);

getProfilePhoto

(
  • width
  • height
)
String

Geerbt von User:

Liefert die URL zum Profilfoto des Nutzers. Die übergebene Breite und Höhe liefern dem Server einen Anhaltswert, um das bestmögliche Foto zu finden, sind aber keine Garantie, dass das Foto diese Ausmaße haben wird.

Parameter:

Rückgabewert:

Beispiel:

if (user.hasProfilePhoto())
{
    var profilePhoto = user.getProfilePhoto(200, 200);

    user.sendPrivateMessage('Hübsches Foto! °>' + profilePhoto + '<°');
}

getQuestAccess

() QuestAccess

Geerbt von User:

Verfügbar ab Revision AppServer 82290, ChatServer 82290

Liefert das {{#crossLink "QuestAccess"}}QuestAccess-Objekt{{/crossLink}} für diesen Nutzer in dieser App.

Rückgabewert:

QuestAccess: questAccess

Beispiel:

var questAccess = user.getQuestAccess();

getReadme

() String

Geerbt von User:

Liefert die Readme des Nutzers, die er mit /readme TEXT in sein Profil gesetzt hat.

Rückgabewert:

String: Readme des Nutzers

Beispiel:

var readme = user.getReadme();

if (readme.contains(KnuddelsServer.getChannel().getChannelName()))
{
    user.sendPrivateMessage('Danke für die Unterstützung!');
}

getRegDate

() Date

Geerbt von User:

Liefert den Zeitpunkt der Registrierung des Nutzers.

Rückgabewert:

Date:

Beispiel:

var regDate = user.getRegDate(); // i.e.: Date:10.08.2015 10:24

getUserId

() Number

Geerbt von User:

Liefert die eindeutige Nutzerkennung des Nutzers.

Rückgabewert:

Beispiel:

var userId = user.getUserId();

getUserStatus

() UserStatus

Geerbt von User:

Liefert den {{#crossLink "UserStatus"}}{{/crossLink}} des Nutzers.

Rückgabewert:

Beispiel:

var userStatus = user.getUserStatus(); // i.e.: UserStatus.Stammi

getUserType

() UserType

Geerbt von User:

Liefert den {{#crossLink "UserType"}}{{/crossLink}} des Nutzers.

Rückgabewert:

Beispiel:

var userType = UserType.Human;

var onlineHumans = KnuddelsServer.getChannel().getOnlineUsers(userType);

hasProfilePhoto

() Boolean

Geerbt von User:

Liefert die Information, ob der Nutzer ein Profilfoto hat.

Rückgabewert:

Beispiel:

if (user.hasProfilePhoto())
{
    user.sendPrivateMessage('Du hast ein Profilbild.');
}
else
{
    user.sendPrivateMessage('Du hast leider kein Profilbild.');
}

isAgeVerified

() Boolean

Geerbt von User:

Liefert die Information, ob das Alter des {{#crossLink "User"}}Users{{/crossLink}} verifiziert ist.

Rückgabewert:

Beispiel:

var isAgeVerified = user.isAgeVerified();

isAppDeveloper

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzers der Entwickler der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

if (user.isAppDeveloper())
{
    user.sendPrivateMessage('Du bist der Entwickler der App.');
}

isAppManager

() Boolean

Geerbt von User:

Liefert die Information, ob dieser Nutzer ein AppManager für diese {{#crossLink "App"}}{{/crossLink}} ist. Die Channelbesitzer zählen automatisch auch als AppManager.

Rückgabewert:

Beispiel:

if (user.isAppManager())
{
    user.sendPrivateMessage('Du bist berechtigt, diese App zu verwalten.');
}

isAway

() Boolean

Geerbt von User:

Liefert die Information, ob der Nutzer sich mittels /away-Funktion kurz abgemeldet hat.

Rückgabewert:

Beispiel:

var isAway = user.isAway(); // i.e.: false

isChannelCoreUser

() Boolean

Geerbt von User:

Verfügbar ab Revision AppServer 92701, ChatServer 92701

Liefert die Information, ob der Nutzer im harten Kern des {{#crossLink "Channel"}}Channels{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

 if (user.isChannelCoreUser())
 {
     user.sendPrivateMessage('Hey! Give me five! Cool, dass du da bist.');
 }
 else
 {
     user.sendPrivateMessage('Hallo!');
 }

isChannelModerator

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzer Channelmoderator im {{#crossLink "Channel"}}{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

var isCM = user.isChannelModerator(); // i.e.: false

isChannelOwner

() Boolean

Geerbt von User:

Liefert die Information, ob dieser Nutzer Channelbesitzer im {{#crossLink "Channel"}}{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

var isChannelOwner = user.isChannelOwner(); // i.e.: true

isColorMuted

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzer beim Schreiben öffentlicher Nachrichten im {{#crossLink "Channel"}}{{/crossLink}} derzeit für die Verwendung von Textformatierungen, Farben und Smileys gesperrt ist.

Rückgabewert:

Beispiel:

var isColorMuted = user.isColorMuted();

if (isColorMuted)
{
    var message = 'Du darfst momentan in diesem Channel keine Textformatierungen, Farben oder Smileys verwenden.';

    user.sendPrivateMessage(message);
}

isEventModerator

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzer Eventmoderator im {{#crossLink "Channel"}}{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

var isEventModerator = user.isEventModerator(); // i.e.: false

isInTeam

(
  • teamName
  • [subTeamName]
)
Boolean

Geerbt von User:

Prüft, ob der {{#crossLink "User"}}{{/crossLink}} in dem angegebenen Team ist. Dies funktioniert derzeit nur für Teams, die eine eigene /fa haben. Achtung: Bei Nutzern, die neu in ein Team kommen, funktioniert die Abfrage erst dann korrekt, wenn er sich neu in den Channel eingeloggt hat.

Parameter:

  • teamName String
    Der Name des Hauptteams, welches geprüft werden soll.
  • [subTeamName] String optional
    Der Name des Sub-Teams (des Hauptteams), das geprüft werden soll.

Rückgabewert:

Beispiel:

var isInFotoTeam = user.isInTeam('Foto');

isLikingChannel

() Boolean

Geerbt von User:

Liefert die Information, ob der {{#crossLink "Channel"}}{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ein Lieblingschannel des Nutzers ist.

Rückgabewert:

Beispiel:

 if (user.isLikingChannel())
 {
     user.sendPrivateMessage('Hey! Give me five! Cool, dass du da bist.');
 }
 else
 {
     user.sendPrivateMessage('Hallo!');
 }

isLocked

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzer derzeit für das Betreten des {{#crossLink "Channel"}}{{/crossLink}} gesperrt ist.

Rückgabewert:

Beispiel:

var isLocked = user.isLocked(); // i.e.: false

isMuted

() Boolean

Geerbt von User:

Liefert Information, ob dieser Nutzer derzeit für das Schreiben öffentlicher Nachrichten im {{#crossLink "Channel"}}{{/crossLink}} gesperrt ist.

Rückgabewert:

Beispiel:

var isMuted = user.isMuted();

if (isMuted)
{
    var message = 'Du darfst momentan in diesem Channel nicht öffentlich schreiben.';
    user.sendPrivateMessage(message);
}

isOnline

() Boolean

Geerbt von User:

Liefert die Information, ob der Nutzer irgendwo im Chat online ist.

Rückgabewert:

Boolean: true, falls der Nutzer online ist.

Beispiel:

var message = 'Neue Funktionen in ' + KnuddelsServer.getChannel() + '. Schau doch mal vorbei!';
if (user.isOnline())
{
    user.sendPrivateMessage(message);
}
else
{
    user.sendPostMessage('Neue Funktionen', message);
}

isOnlineInChannel

() Boolean

Geerbt von User:

Liefert die Information, ob der Nutzer online im {{#crossLink "Channel"}}{{/crossLink}} der {{#crossLink "App"}}{{/crossLink}} ist.

Rückgabewert:

Beispiel:

var isOnlineInChannel = user.isOnlineInChannel(); // i.e.: true

isProfilePhotoVerified

() Boolean

Geerbt von User:

Liefert die Information, ob der {{#crossLink "User"}}{{/crossLink}} ein verifiziertes Profilbild hat.

Rückgabewert:

Beispiel:

var isProfilePhotoVerified = user.isProfilePhotoVerified();

isStreamingVideo

() Boolean

Geerbt von User:

Liefert die Information, ob der Nutzer gerade sein Video streamt.

Rückgabewert:

Beispiel:

var isStreamingVideo = user.isStreamingVideo(); // i.e.: false

removeAppContent

() Veraltet

Geerbt von User:

Entfernt den aktuell sichtbaren {{#crossLink "AppContent"}}{{/crossLink}} beim Nutzer.

Beispiel:

user.removeAppContent();

removeNicklistIcon

(
  • imagePath
)

Geerbt von User:

Entfernt dem Nutzer ein über die API gesetztes Icon in die Nickliste.

Parameter:

  • imagePath String
    Absoluter Pfad zum Bild

Beispiel:

var imagePath = KnuddelsServer.getFullSystemImagePath('cubes/cubes_prefix_blue.png');
user.removeNicklistIcon(imagePath);

sendAppContent

(
  • appContent
)
AppContentSession

Geerbt von User:

(Er)setzt den übergebenen {{#crossLink "AppContent"}}{{/crossLink}} beim Nutzer.

Parameter:

Rückgabewert:

AppContentSession: appContentSession, null, falls die interne Prüfung von canShowAppContent false geliefert hat

Beispiel:

var htmlFile = new HTMLFile('index.html');

var appContent = AppContent.overlayContent(htmlFile);

if (user.canSendAppContent(appContent))
{
    var appContentSession = user.sendAppContent(appContent);
}
else
{
    var message = 'Du kannst diese App leider auf deinem Gerät nicht benutzen.';
    user.sendPrivateMessage(message);
}

sendEvent

(
  • type
  • data
)
Veraltet

Geerbt von User:

Sendet Daten an den verbundenen Client.

Parameter:

  • type String
    darf maximal 100 Zeichen lang sein. Das einzelne Zeichen '*' kann nicht als type verwendet werden.
  • data Object
    Daten, die übermittelt werden sollen. Werden als JSON übermittelt und dürfen maximal 10.000 Zeichen lang sein.

Beispiel:

var points = user.getPersistence().getNumber('points');

var data = {
    points: points
}

// via Client.addEventListener('getPoints', callback) kann das Event clientseitig empfangen werden
user.sendEvent('getPoints', data);

sendPostMessage

(
  • topic
  • text
  • [receivingUser]
)

Geerbt von User

Sendet eine persistente Nachricht an einen bestimmten Nutzer.

Parameter:

  • topic String

    Betreff der Nachricht. Der Betreff kann maximal 1.000 Zeichen lang sein.

  • text String

    Nachricht, die gesendet werden soll. Die Nachricht kann maximal 10.000 Zeichen lang sein.

  • [receivingUser] User optional

    Nutzer, der die Nachricht erhalten soll. (nur optional, um Vererbung in JavaScript korrekt darzustellen)

sendPrivateMessage

(
  • message
  • [users]
)

Geerbt von User

Sendet eine private Nachricht an bestimmte Nutzer.

Parameter:

  • message String

    Nachricht, die gesendet werden soll. Die Nachricht kann maximal 100.000 Zeichen lang sein.

  • [users] User[] optional

    Nutzer, die die Nachricht erhalten sollen. (nur optional, um Vererbung in JavaScript korrekt darzustellen)

sendPublicActionMessage

(
  • actionMessage
)

Sendet eine öffentliche Handlung in den Channel. Dies funktioniert so, als ob der BotUser /me TEXT im Chat eingeben würde.

Parameter:

  • actionMessage String

    Handlung, die angezeigt werden soll. Die Nachricht kann maximal 10.000 Zeichen lang sein.

Beispiel:

this.onUserJoined = function(user)
{
    var botUser = KnuddelsServer.getDefaultBotUser();
    
    var actionMessage = 'öffnet ' + user.getNick() + ' die Tür.';
    
    botUser.sendPublicActionMessage(actionMessage);
}

sendPublicMessage

(
  • message
)

Sendet eine öffentliche Nachricht in den Channel.

Parameter:

  • message String

    Nachricht, die angezeigt werden soll. Die Nachricht kann maximal 10.000 Zeichen lang sein.

Beispiel:

this.onUserJoined = function(user)
{
    var botUser = KnuddelsServer.getDefaultBotUser();
    
    var channel = KnuddelsServer.getChannel().getChannelName();
    
    var message = 'Hallo ' + user.getNick() + '. Willkommen im Channel ' + channel + '!';
    
    botUser.sendPublicMessage(message);
}

transferKnuddel

(
  • receivingUserOrAccount
  • knuddelAmount
  • [parameters]
)
asynchron

Transferiert eine bestimmte Anzahl Knuddel an einen Zielnutzer oder KnuddelAccount.

Wichtiger Hinweis: Sollte die App versuchen mehr Knuddel zu transferieren, als sie besitzt, so wird der onError-Callback aufgerufen und die App transferiert so viele Knuddel, wie möglich. Zudem werden die Schulden für den Channelbesitzer gemerkt. Sobald sich der Channelbesitzer einloggt, erhält er einen Hinweis über offene Schulden und sollte diese direkt begleichen. Hat ein Channelbesitzer eine gewisse Menge Schulden angesammelt, so schalten wir alle Apps in diesem Channel ab.
Es können nur Knuddel transferiert werden zu Nutzern mit UserType.Human.

Parameter:

  • receivingUserOrAccount User | KnuddelAccount

    Nutzer oder Account, der die Knuddel erhalten soll.

  • knuddelAmount KnuddelAmount

    Anzahl der Knuddel. Muss mindestens 0.01 sein. Bei ungültigen Werten wird ein Fehler geworfen.

  • [parameters] Object optional

    Objekt, das optionale Parameter beinhaltet.

    • [displayReasonText] String optional

      Grund für den Transfer.

    • [transferDisplayType] KnuddelTransferDisplayType optional

      Entscheidet die Art der Darstellung der Knuddel-Überweisung (default: KnuddelTransferDisplayType.Public).

    • [onSuccess] Function optional

      Callback, der aufgerufen wird, nachdem der Transfer erfolgreich abgeschlossen wurde.

    • [onError] Function optional

      Callback, der aufgerufen wird, wenn der Transfer fehlgeschlagen ist.

Beispiel:

this.onUserJoined = function(user)
{
    var logger = KnuddelsServer.getDefaultLogger();
    
    var botUser = KnuddelsServer.getDefaultBotUser();
    var knuddelAmount = new KnuddelAmount(1);
    
    var transferOptions = {
        displayReasonText: 'weil ich dich einfach mag',
        transferDisplayType: KnuddelTransferDisplayType.Private,
        onSuccess: function()
        {
            logger.info('Knuddel transferiert');
        },
        onError: function(logMsg)
        {
            logger.warn('Knuddeltransfer fehlgeschlagen', logMsg);
        }
    };
    
    botUser.transferKnuddel(user, knuddelAmount, transferOptions);
}

triggerDice

(
  • diceConfiguration
)

Geerbt von User:

Verfügbar ab Revision AppServer 89159, ChatServer 89159

Startet einen Würfelwurf für den Nutzer, falls er online im Channel ist und er nicht gemuted ist.

Parameter:

Beispiel:

var diceConfiguration = DiceConfigurationFactory.fromString('/dice 1w20');
user.triggerDice(diceConfiguration);