Skip to content

Server API

Marc Staebler edited this page Mar 24, 2026 · 2 revisions

Server-API Grundlagen

Die Server-API ist der Kern jeder UserApp. Über die zentrale Klasse KnuddelsServer hast du Zugriff auf alle serverseitigen Funktionen.


KnuddelsServer – Der Einstiegspunkt

KnuddelsServer ist das globale Objekt, über das du auf alle wichtigen Subsysteme zugreifst:

// Zugriff auf die wichtigsten Objekte
var channel       = KnuddelsServer.getChannel();
var persistence   = KnuddelsServer.getPersistence();
var bot           = KnuddelsServer.getDefaultBotUser();
var logger        = KnuddelsServer.getDefaultLogger();
var userAccess    = KnuddelsServer.getUserAccess();
var appAccess     = KnuddelsServer.getAppAccess();
var paymentAccess = KnuddelsServer.getPaymentAccess();
var toplistAccess = KnuddelsServer.getToplistAccess();
var extServer     = KnuddelsServer.getExternalServerAccess();
var serverInfo    = KnuddelsServer.getChatServerInfo();

Timer-Funktionen

Analog zu Browser-JavaScript gibt es Timer:

// Einmalige Verzögerung (in Millisekunden)
var timerId = KnuddelsServer.setTimeout(function() {
    logger.info('5 Sekunden vergangen!');
}, 5000);

// Wiederkehrender Timer
var intervalId = KnuddelsServer.setInterval(function() {
    logger.info('Wird alle 10 Sekunden ausgeführt');
}, 10000);

// Timer stoppen
KnuddelsServer.clearTimeout(timerId);
KnuddelsServer.clearInterval(intervalId);

Dateien einbinden

// Weitere JavaScript-Dateien laden
KnuddelsServer.require('helpers.js');
KnuddelsServer.execute('setup.js');

// Verfügbare Dateien auflisten
var files = KnuddelsServer.listFiles('/');

Vollständige KnuddelsServer-Dokumentation


Logger

Auf dem Server steht kein console.log zur Verfügung. Nutze stattdessen den Logger:

var logger = KnuddelsServer.getDefaultLogger();

logger.debug('Debug-Nachricht');     // Niedrigste Stufe
logger.info('Info-Nachricht');       // Standard-Info
logger.warn('Warnung!');             // Warnungen
logger.error('Fehler aufgetreten!'); // Fehler
logger.fatal('Kritischer Fehler!');  // Schwerwiegend

Die Log-Ausgaben sind im App-Log sichtbar, das du über /apps im Channel einsehen kannst.

Logger-Dokumentation


Channel

Das Channel-Objekt liefert Informationen über den Channel, in dem die App läuft:

var channel = KnuddelsServer.getChannel();

// Channel-Infos
var name = channel.getChannelName();
var rootName = channel.getRootChannelName();
var isVideo = channel.isVideoChannel();

// Online-Nutzer abrufen
var alleNutzer = channel.getOnlineUsers(UserType.Human);
var botNutzer = channel.getOnlineUsers(UserType.AppBot);

// Channel-Konfiguration
var config = channel.getChannelConfiguration();
var restrictions = channel.getChannelRestrictions();
var design = channel.getChannelDesign();

Channel-Dokumentation


UserAccess – Nutzer nachschlagen

Mit UserAccess kannst du Nutzer anhand ihres Nicknamens finden:

var userAccess = KnuddelsServer.getUserAccess();

var nick = 'SomeUser';

// Prüfen ob der Nutzer existiert
if (userAccess.exists(nick)) {
    var userId = userAccess.getUserId(nick);

    // Prüfen ob Zugriff erlaubt ist
    if (userAccess.mayAccess(userId)) {
        var user = userAccess.getUserById(userId);
        // user-Objekt verwenden...
    }
}

UserAccess-Dokumentation


AppAccess – Andere Apps

Über AppAccess kannst du mit anderen Apps im selben Channel kommunizieren:

var appAccess = KnuddelsServer.getAppAccess();

// Eigene App-Instanz
var ownInstance = appAccess.getOwnInstance();

// Alle laufenden Apps im Channel
var apps = appAccess.getAllRunningAppsInChannel();

// Event an eine andere App senden
var otherApp = appAccess.getRunningAppInChannel('entwickler.uid.appkey');
if (otherApp) {
    otherApp.sendAppEvent('greeting', { message: 'Hallo von meiner App!' });
}

AppAccess-Dokumentation


ServerInfo

Informationen über den Server:

var serverInfo = KnuddelsServer.getChatServerInfo();

var serverId = serverInfo.getServerId();
var isTestSystem = serverInfo.isTestSystem();

ChatServerInfo-Dokumentation


Vollständige API-Referenz

Die komplette API-Dokumentation mit allen Klassen, Methoden und Parametern findest du unter:

developer.knuddels.de/docs

Die API ist in folgende Module gegliedert:

Modul Beschreibung
Core Kernklassen: App, KnuddelsServer, Logger
User User, BotUser, UserAccess
Channel Channel, ChannelConfiguration
HTMLUI AppContent, HTMLFile, AppViewMode
Persistence AppPersistence, UserPersistence
Knuddel KnuddelAmount, KnuddelAccount
Payment PaymentAccess, KnuddelShop
Toplist ToplistAccess, Toplist
GlobalApps GlobalAppConfig, GlobalAppInstance
ExternalServerAccess HTTP-Requests
Dice Würfelfunktionen
WebHooks WebHook-Integration (Beta)

← Zurück zur Übersicht

Navigation

Einstieg

Kernkonzepte

Features

Tutorials

Referenz & Hilfe

Clone this wiki locally