Extends AppInstance
Modul: Core

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()

Methoden

cancelUpdateApp

() Boolean

Verfügbar ab Version AppServer 98117

Bricht ein bereits angestoßenes Update (via updateApp()) dieser App ab, falls dies noch möglich ist.

Rückgabewert:

Boolean:

true falls ein Update abgebrochen wurde.

Beispiel:

var ownInstance = KnuddelsServer.getAppAccess().getOwnInstance();
var rootInstance = ownInstance.getRootInstance();
var canceled = rootInstance.cancelUpdateApp();

getAllInstances

(
  • [includeSelf]
)
AppInstance[]

Geerbt von AppInstance:

Liefert alle App-Instanzen dieser App in diesem Channel und Subchannels. Mit includeSelf = false kann man die eigene Instanz ausschließen.

Parameter:

  • [includeSelf] Boolean optional

    true by default.

Rückgabewert:

Beispiel:

var otherInstances = ownInstance.getAllInstances(false);

getAppInfo

() AppInfo

Geerbt von AppInstance:

Liefert die AppInfo.

Rückgabewert:

Beispiel:

var appInfo = ownInstance.getAppInfo();

getChannelName

() String

Geerbt von AppInstance:

Liefert den Namen des Channels in dem diese AppInstance läuft.

Rückgabewert:

Beispiel:

var channelName = appInstance.getChannelName(); // i.e. String[ '/Knuddelonia' ]

getRegisteredChatCommandNames

() String[] | Null

Geerbt von AppInstance:

Liefert die Namen der ChatCommands, die diese AppInstnce derzeit registriert hat.

Rückgabewert:

String[] | Null:

Beispiel:

var registeredChatCommandNames = appInstance.getRegisteredChatCommandNames(); // i.e. String[ 'blacklist', 'sayHello' ]

getRootInstance

() RootAppInstance

Geerbt von AppInstance:

Liefert 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

() Date

Geerbt von AppInstance:

Liefert den Startzeitpunkt dieser AppInstance.

Rückgabewert:

Date:

Beispiel:

var startDate = ownInstance.getStartDate(); // i.e. Date[Tue Jan 05 2016 23:00:11 GMT+0100 (MEZ)]

invalidateClientCache

()

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

() Boolean

Geerbt von AppInstance:

Informiert, ob die aktuelle AppInstanz eine Root-Instanz ist.

Rückgabewert:

Beispiel:

var isRootInstance = ownInstance.isRootInstance();

sendAppEvent

(
  • type
  • data
)

Geerbt von AppInstance:

Sendet ein App-Event an diese App-Instanz.

Parameter:

Beispiel:

const kEventCountJoin = 'kEventCountJoin';

App.onUserJoined = function(user)
{
    var eventPayload = {
        nick: user.getNick()
    };
    
    ownInstance.getRootInstance().sendAppEvent(kEventCountJoin, eventPayload);
}

stopApp

(
  • [message]
  • [logMessage]
)

Stoppt diese App.

Parameter:

  • [message] String optional

    Öffentliche Nachricht, die allen Nutzern beim Stoppen der App angezeigt wird.

  • [logMessage] String optional

    Nachricht, die im App-Logfile angezeigt wird.

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

(
  • [message]
  • [logMessage]
)
Number

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:

  • [message] String optional

    Öffentliche Nachricht, die allen Nutzern beim Aktualisieren der App angezeigt wird.

  • [logMessage] String optional

    Nachricht, die im App-Logfile angezeigt wird.

Rückgabewert:

Number:

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

() 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:

String[]:

Dateinamen aller aktualisierten Dateien.