RootAppInstance Klasse Feedback
Repräsentiert die Root-Instanz einer App, die im Hauptchannel läuft.
Die Instanz für die RootAppInstance
erhält man über das AppInstance-Objekt
mit appInstance.getRootInstance()
Übersicht
Methoden
cancelUpdateApp Feedback
() BooleanBricht ein bereits angestoßenes Update (via updateApp()
) dieser App ab, falls dies noch möglich ist.
Rückgabewert:
true
falls ein Update abgebrochen wurde.
Beispiel:
var ownInstance = KnuddelsServer.getAppAccess().getOwnInstance();
var rootInstance = ownInstance.getRootInstance();
var canceled = rootInstance.cancelUpdateApp();
getAllInstances Feedback
-
[includeSelf]
Liefert alle App-Instanzen dieser App in diesem Channel und Subchannels.
Mit includeSelf = false
kann man die eigene Instanz ausschließen.
Parameter:
-
[includeSelf]
Boolean optionaltrue
by default.
Rückgabewert:
Beispiel:
var otherInstances = ownInstance.getAllInstances(false);
getAppInfo Feedback
() AppInfoLiefert die AppInfo.
Rückgabewert:
Beispiel:
var appInfo = ownInstance.getAppInfo();
getChannelName Feedback
() StringLiefert den Namen des Channels in dem diese AppInstance läuft.
Rückgabewert:
Beispiel:
var channelName = appInstance.getChannelName(); // i.e. String[ '/Knuddelonia' ]
getRegisteredChatCommandNames Feedback
() String[] | NullLiefert die Namen der ChatCommands, die diese AppInstnce derzeit registriert hat.
Rückgabewert:
Beispiel:
var registeredChatCommandNames = appInstance.getRegisteredChatCommandNames(); // i.e. String[ 'blacklist', 'sayHello' ]
getRootInstance Feedback
() RootAppInstanceLiefert die Root-Instanz der aktuellen App-Instanz.
Rückgabewert:
Beispiel:
const kEventCountOnlineMinutes = 'kEventCountOnlineMinutes';
function storeOnlineMinutes(onlineMinutes)
{
var ownInstance = KnuddelsServer.getAppAccess().getOwnInstance();
if (!ownInstance.isRootInstance())
{
ownInstance.getRootInstance().sendAppEvent(kEventCountOnlineMinutes, {
onlineMinutes : onlineMinutes
});
}
else
{
KnuddelsServer.getPersistence().addNumber('onlineMinutes', onlineMinutes);
}
}
this.onAppEventReceived = function(appInstance, type, data)
{
if (type == kEventCountOnlineMinutes)
{
var onlineMinutes = data['onlineMinutes'];
storeOnlineMinutes(onlineMinutes);
}
}
getStartDate Feedback
() DateLiefert den Startzeitpunkt dieser AppInstance.
Rückgabewert:
Beispiel:
var startDate = ownInstance.getStartDate(); // i.e. Date[Tue Jan 05 2016 23:00:11 GMT+0100 (MEZ)]
invalidateClientCache Feedback
()Sorgt dafür, dass die HTML-UI nach updateAppFiles() im neuen Zustand geladen wird, wenn Nutzer die HTML-UI das nächste Mal öffnen (z.B. beim Verlassen und erneuten Betreten des Channels).
isRootInstance Feedback
() BooleanInformiert, ob die aktuelle AppInstanz eine Root-Instanz ist.
Rückgabewert:
Beispiel:
var isRootInstance = ownInstance.isRootInstance();
sendAppEvent Feedback
-
type
-
data
Sendet ein App-Event an diese App-Instanz.
Beispiel:
const kEventCountJoin = 'kEventCountJoin';
App.onUserJoined = function(user)
{
var eventPayload = {
nick: user.getNick()
};
ownInstance.getRootInstance().sendAppEvent(kEventCountJoin, eventPayload);
}
stopApp Feedback
-
[message]
-
[logMessage]
Stoppt diese App.
Parameter:
Beispiel:
var ownInstance = KnuddelsServer.getAppAccess().getOwnInstance();
var rootInstance = ownInstance.getRootInstance();
var publicMessage = 'Die App wurde von einem AppManager gestoppt.';
var logEntry = 'Forced App Stop';
rootInstance.stopApp(publicMessage, logEntry);
updateApp Feedback
-
[message]
-
[logMessage]
Aktualisiert diese App im Channel (und ggf. vorhandenen Tochterchanneln) auf die neueste Version.
Alle Aufrufe von updateApp() (für alle Apps) werden verzögert nacheinander in einer Warteschlange verarbeitet (um Server-Überlastung vorzubeugen).
Daher kann es bei starker Verwendung dieser Funktion (z.B. wenn 400 Apps diese Funktion gleichzeitig aufrufen)
zu längeren Verzögerungen kommen. Das können wenige Sekunden bis hin zu über einer Stunde sein.
Mehrfache Aufrufe dieser Funktion ersetzen lediglich die message
und logMessage
.
Die Position in der Update-Warteschlange bleibt dabei unverändert.
Parameter:
Rückgabewert:
Anzahl Sekunden bis das Update planmäßig durchgeführt wird.
Beispiel:
var ownInstance = KnuddelsServer.getAppAccess().getOwnInstance();
var rootInstance = ownInstance.getRootInstance();
var publicMessage = 'Die App wird aktualisiert und steht sofort wieder zur Verfügung.';
var logEntry = 'Forced App Update';
var seconds = rootInstance.updateApp();
// oder
var seconds = rootInstance.updateApp(publicMessage);
// oder
var seconds = rootInstance.updateApp(publicMessage, logEntry);
updateAppFiles Feedback
() String[]Ersetzt die momentan verwendeten Dateien durch die aktuellen Dateien im FTP.
Wenn Änderungen am Client (HTML-UI) vorgenommen wurden, sollte danach
invalidateClientCache() aufgerufen werden,
damit Nutzer beim erneuten Öffnen der HTML-UI auch wirklich die aktuelle Version angezeigt bekommen.
Rückgabewert:
Dateinamen aller aktualisierten Dateien.