BotUser Klasse Feedback
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()
Übersicht
Methoden
-
addNicklistIcon
-
canSendAppContent
-
canShowAppViewMode
-
destroyKnuddel
-
equals
-
getAge
-
getAppContentSession
-
getAppContentSessions
-
getAuthenticityClassification
-
getChannelTalkPermission
-
getClientType
-
getGender
-
getGenderDetailed
-
getKnuddelAccount
-
getKnuddelAmount
-
getLastOnlineTime
-
getNick
-
getOnlineMinutes
-
getPersistence
-
getProfileLink
-
getProfilePhoto
-
getQuestAccess
-
getReadme
-
getRegDate
-
getUserId
-
getUserStatus
-
getUserType
-
hasProfilePhoto
-
isAgeVerified
-
isAppDeveloper
-
isAppManager
-
isAway
-
isChannelCoreUser
-
isChannelModerator
-
isChannelOwner
-
isColorMuted
-
isConnectedWithK3Client
-
isEventModerator
-
isInTeam
-
isLikingChannel
-
isLocked
-
isMuted
-
isOnline
-
isOnlineInChannel
-
isProfilePhotoVerified
-
isStreamingVideo
-
removeNicklistIcon
-
sendAppContent
-
sendEvent deprecated
-
sendPostMessage
-
sendPrivateMessage
-
sendPublicActionMessage
-
sendPublicMessage
-
transferKnuddel
-
triggerDice
Methoden
addNicklistIcon Feedback
-
imagePath
-
imageWidth
Parameter:
Beispiel:
var imagePath = KnuddelsServer.getFullSystemImagePath('cubes/cubes_prefix_blue.png');
user.addNicklistIcon(imagePath, 50);
canSendAppContent Feedback
-
appContent
Parameter:
-
appContent
AppContentDer {{#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 Feedback
-
mode
Parameter:
-
mode
AppViewModeDer {{#crossLink "AppViewMode"}}{{/crossLink}}, der geprüft werden soll.
Rückgabewert:
Beispiel:
var message;
if (user.canShowAppViewMode(AppViewMode.Overlay))
{
message = 'Du kannst die App benutzen. Viel Spaß!';
}
else
{
message = 'Du kannst diese App leider nicht benutzen.';
}
user.sendPrivateMessage(message);
destroyKnuddel Feedback
-
knuddelAmount
-
reason
-
[parameters]
"Vernichtet" die übergebene Anzahl Knuddel auf dem BotUser. Dies ist nur möglich, wenn diese Funktion für den entsprechenden Channel freigeschaltet wurde.
Bei erfolgreicher Knuddelvernichtung wird der onSuccess-Callback aufgerufen. Andernfalls (z.B. wenn KnuddelAmount negativ oder größer als verfügbare Knuddel auf dem BotUser), wird der onError-Callback aufgerufen, wobei ihm ein String mit der konkreten Fehlermeldung übergeben wird.
Wichtiger Hinweis: Durch den Aufruf dieser Methode werden ggf. Knuddel vernichtet. Das lässt sich nicht rückgängig machen.
Parameter:
-
knuddelAmount
KnuddelAmountAnzahl der Knuddel, die vom BotUser vernichtet werden sollen.
-
reason
StringInfo-Text zu der Aktion. z.B. eigene Tracking-Nummer oder ausführender Nick. (Max-Länge: 1000)
-
[parameters]
Object optionalObjekt mit optionalen Callbacks
Beispiel:
var logger = KnuddelsServer.getDefaultLogger();
var botUser = KnuddelsServer.getDefaultBotUser();
botUser.destroyKnuddel(new KnuddelAmount(100), "Knuddel vernichten", {
onSuccess: function(knuddelAmount, reason) {
logger.info("Knuddel erfolgreich vernichtet.");
},
onError: function(knuddelAmount, reason, msg) {
logger.warn("Knuddel konnten nicht vernichtet werden. Grund: " + msg);
}
});
equals Feedback
-
user
true
, falls der übergebene Nutzer
identisch ist mit dem aktuellen Nutzer.
Parameter:
-
user
User
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 Feedback
() Number0
.
Rückgabewert:
Beispiel:
var age = user.getAge(); // z.B. 30
getAppContentSession Feedback
-
appViewMode
null
zurück gegeben,
da es hierfür mehrere Sessions geben kann. Siehe auch: {{#crossLink "GlobalAppInstance/getActiveSession:method"}}{{/crossLink}} oder
{{#crossLink "GlobalAppInstance/getActiveSessions:method"}}{{/crossLink}}.
Parameter:
-
appViewMode
AppViewMode
Rückgabewert:
Beispiel:
var appContentSession = user.getAppContentSession(AppViewMode.Popup);
getAppContentSessions Feedback
-
[appViewMode]
null
oder kein Parameter übergeben, so werden alle Sessions zurückgeliefert.
Parameter:
-
[appViewMode]
AppViewMode optional
Rückgabewert:
Beispiel:
const allSessions = user.getAppContentSessions();
const globalSessions = user.getAppContentSessions(AppViewMode.Global);
getAuthenticityClassification Feedback
() AuthenticityClassificationRückgabewert:
Beispiel:
var authenticityClassification = user.getAuthenticityClassification();
getChannelTalkPermission Feedback
() ChannelTalkPermissionRückgabewert:
Beispiel:
var channelTalkPermission = user.getChannelTalkPermission(); // z.B. ChannelTalkPermission.Default
getClientType Feedback
() ClientTypeRückgabewert:
Beispiel:
var clientType = user.getClientType(); // z.B. ClientType.Applet
getGender Feedback
() GenderRückgabewert:
Beispiel:
var gender = user.getGender(); // z.B. Gender.Male
getGenderDetailed Feedback
() GenderDetailedRückgabewert:
Beispiel:
var genderDetailed = user.getGenderDetailed(); // z.B. GenderDetailed.NonBinaryHe
getKnuddelAccount Feedback
() KnuddelAccountRückgabewert:
Beispiel:
var knuddelAccount = user.getKnuddelAccount();
getKnuddelAmount Feedback
() KnuddelAmountRückgabewert:
Beispiel:
var knuddelAmount = user.getKnuddelAmount();
getLastOnlineTime Feedback
() DateRückgabewert:
getNick Feedback
() StringRückgabewert:
Beispiel:
var nick = user.getNick(); // i.e. 'Holgi'
getOnlineMinutes Feedback
() NumberRückgabewert:
Beispiel:
var onlineMinutes = user.getOnlineMinutes(); // z.B. 300000
getPersistence Feedback
() UserPersistenceRückgabewert:
Beispiel:
user.getPersistence().setNumber('points', 300);
var points = user.getPersistence().getNumber('points', 0);
getProfileLink Feedback
-
[displayText]
Parameter:
-
[displayText]
String optionalAnzeigetext, falls nicht angegeben Nickname des Nutzers
Rückgabewert:
Beispiel:
var profileLink = user.getProfileLink(); // z.B. '°>_hHolgi|/w "<°'
getProfilePhoto Feedback
-
width
-
height
Rückgabewert:
Beispiel:
if (user.hasProfilePhoto())
{
var profilePhoto = user.getProfilePhoto(200, 200);
user.sendPrivateMessage('Hübsches Foto! °>' + profilePhoto + '<°');
}
getQuestAccess Feedback
() QuestAccessRückgabewert:
Beispiel:
var questAccess = user.getQuestAccess();
getReadme Feedback
() StringRückgabewert:
Beispiel:
var readme = user.getReadme();
if (readme.contains(KnuddelsServer.getChannel().getChannelName()))
{
user.sendPrivateMessage('Danke für die Unterstützung!');
}
getRegDate Feedback
() DateRückgabewert:
Beispiel:
var regDate = user.getRegDate(); // z.B. 10.08.2015 10:24 (als <code>Date</code>-Objekt)
getUserId Feedback
() NumberRückgabewert:
Beispiel:
var userId = user.getUserId();
getUserStatus Feedback
() UserStatusRückgabewert:
Beispiel:
var userStatus = user.getUserStatus(); // z.B. UserStatus.Stammi
getUserType Feedback
() UserTypeRückgabewert:
Beispiel:
var userType = UserType.Human;
var onlineHumans = KnuddelsServer.getChannel().getOnlineUsers(userType);
hasProfilePhoto Feedback
() BooleanRückgabewert:
Beispiel:
if (user.hasProfilePhoto())
{
user.sendPrivateMessage('Du hast ein Profilbild.');
}
else
{
user.sendPrivateMessage('Du hast leider kein Profilbild.');
}
isAgeVerified Feedback
() BooleanRückgabewert:
Beispiel:
var isAgeVerified = user.isAgeVerified();
isAppDeveloper Feedback
() BooleanRückgabewert:
Beispiel:
if (user.isAppDeveloper())
{
user.sendPrivateMessage('Du bist der Entwickler der App.');
}
isAppManager Feedback
() BooleanRückgabewert:
Beispiel:
if (user.isAppManager())
{
user.sendPrivateMessage('Du bist berechtigt, diese App zu verwalten.');
}
isAway Feedback
() BooleanRückgabewert:
Beispiel:
var isAway = user.isAway(); // z.B. false
isChannelCoreUser Feedback
() BooleanRückgabewert:
Beispiel:
if (user.isChannelCoreUser())
{
user.sendPrivateMessage('Hey! Give me five! Cool, dass du da bist.');
}
else
{
user.sendPrivateMessage('Hallo!');
}
isChannelModerator Feedback
() BooleanRückgabewert:
Beispiel:
var isCM = user.isChannelModerator(); // z.B. false
isChannelOwner Feedback
() BooleanRückgabewert:
Beispiel:
var isChannelOwner = user.isChannelOwner(); // z.B. true
isColorMuted Feedback
() BooleanRü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);
}
isConnectedWithK3Client Feedback
() BooleanRückgabewert:
Beispiel:
var isConnectedWithK3Client = user.isConnectedWithK3Client(); // e.g.: true
isEventModerator Feedback
() BooleanRückgabewert:
Beispiel:
var isEventModerator = user.isEventModerator(); // z.B. false
isInTeam Feedback
-
teamName
-
[subTeamName]
Parameter:
Rückgabewert:
Beispiel:
var isInFotoTeam = user.isInTeam('Foto');
isLikingChannel Feedback
() BooleanRückgabewert:
Beispiel:
if (user.isLikingChannel())
{
user.sendPrivateMessage('Hey! Give me five! Cool, dass du da bist.');
}
else
{
user.sendPrivateMessage('Hallo!');
}
isLocked Feedback
() BooleanRückgabewert:
Beispiel:
var isLocked = user.isLocked(); // z.B. false
isMuted Feedback
() BooleanRückgabewert:
Beispiel:
var isMuted = user.isMuted();
if (isMuted)
{
var message = 'Du darfst momentan in diesem Channel nicht öffentlich schreiben.';
user.sendPrivateMessage(message);
}
isOnline Feedback
() Boolean- {{#crossLink "UserAccess/eachAccessibleUser:method"}}UserAccess.eachAccessibleUser(){{/crossLink}} (parameters.online)
- {{#crossLink "UserPersistenceNumbers/each:method"}}UserPersistenceNumbers.each(){{/crossLink}} (parameters.online)
- {{#crossLink "UserPersistenceStrings/each:method"}}UserPersistenceStrings.each(){{/crossLink}} (parameters.online)
- {{#crossLink "UserPersistenceObjects/each:method"}}UserPersistenceObjects.each(){{/crossLink}} (parameters.online)
Rückgabewert:
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 Feedback
() BooleanRückgabewert:
Beispiel:
var isOnlineInChannel = user.isOnlineInChannel(); // z.B. true
isProfilePhotoVerified Feedback
() BooleanRückgabewert:
Beispiel:
var isProfilePhotoVerified = user.isProfilePhotoVerified();
isStreamingVideo Feedback
() BooleanRückgabewert:
Beispiel:
var isStreamingVideo = user.isStreamingVideo(); // z.B. false
removeNicklistIcon Feedback
-
imagePath
Parameter:
-
imagePath
StringAbsoluter Pfad zum Bild
Beispiel:
var imagePath = KnuddelsServer.getFullSystemImagePath('cubes/cubes_prefix_blue.png');
user.removeNicklistIcon(imagePath);
sendAppContent Feedback
-
appContent
Parameter:
-
appContent
AppContent
Rückgabewert:
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 Feedback
-
type
-
data
Parameter:
Beispiel:
var points = user.getPersistence().getNumber('points');
var data = {
points: points
}
user.sendEvent('getPoints', data);
// Mit Client.addEventListener('getPoints', callback) kann das Event im Client empfangen werden.
sendPostMessage Feedback
-
topic
-
text
-
[receivingUser]
Sendet eine persistente Nachricht an einen bestimmten Nutzer.
Parameter:
-
topic
StringBetreff der Nachricht. Der Betreff kann maximal 1.000 Zeichen lang sein.
-
text
StringNachricht, die gesendet werden soll. Die Nachricht kann maximal 10.000 Zeichen lang sein.
-
[receivingUser]
User optionalNutzer, der die Nachricht erhalten soll. (nur optional, um Vererbung in JavaScript korrekt darzustellen)
sendPublicActionMessage Feedback
-
actionMessage
Sendet eine öffentliche Handlung in den Channel. Dies funktioniert so, als ob der BotUser /me TEXT im Chat eingeben würde.
Parameter:
-
actionMessage
StringHandlung, 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 Feedback
-
message
Sendet eine öffentliche Nachricht in den Channel.
Parameter:
-
message
StringNachricht, 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 Feedback
-
receivingUserOrAccount
-
knuddelAmount
-
[parameters]
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 | KnuddelAccountNutzer oder Account, der die Knuddel erhalten soll.
-
knuddelAmount
KnuddelAmountAnzahl der Knuddel. Muss mindestens 0.01 sein. Bei ungültigen Werten wird ein Fehler geworfen.
-
[parameters]
Object optionalObjekt, das optionale Parameter beinhaltet.
-
[displayReasonText]
String optionalGrund für den Transfer.
-
[transferDisplayType]
KnuddelTransferDisplayType optionalEntscheidet die Art der Darstellung der Knuddel-Überweisung (default: KnuddelTransferDisplayType.Public).
-
[onSuccess]
Function optionalCallback, der aufgerufen wird, nachdem der Transfer erfolgreich abgeschlossen wurde.
-
[onError]
Function optionalCallback, 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 Feedback
-
diceConfiguration
Parameter:
-
diceConfiguration
DiceConfiguration
Beispiel:
var diceConfiguration = DiceConfigurationFactory.fromString('/dice 1w20');
user.triggerDice(diceConfiguration);