Skip to content

Server API

Marc Staebler edited this page Mar 26, 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. Über /apps kannst du auch einstellen, welche Log-Level du im Channel sehen möchtest.

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 der UserApps-API: App-Lifecycle, Server-Zugriff, User-Interaktion und grundlegende Hilfsmittel
User Klassen für User-Informationen, Geschlecht, Status, Client-Typ und Bot-Steuerung
Channel Klassen für den Zugriff auf Channel-Eigenschaften, Konfiguration, Rechte und Einschränkungen
HTMLUI Klassen für HTML-basierte App-Inhalte, Overlays und die Kommunikation mit dem Client-Frontend
Persistence Klassen für die persistente Datenspeicherung von Apps und userbezogenen Daten
Knuddel Klassen für Knuddel-Transaktionen, Knuddel-Töpfe und Knuddel-Beträge
Payment Klassen für In-App-Käufe, den Knuddel-Shop und Loyalty-Programm
Toplist Klassen für die Erstellung und Verwaltung von Toplisten innerhalb von Apps
GlobalApps Klassen für die Konfiguration und Verwaltung von globalen Apps und deren Instanzen
ExternalServerAccess Klassen für HTTP-Zugriffe auf externe Server, inklusive Request/Response-Handling und HTTP-Header
Dice Klassen für Würfelspiele: Konfiguration, Ergebnisse und Events

← Zurück zur Übersicht

Navigation

Einstieg

Kernkonzepte

Features

Tutorials

Referenz & Hilfe

Clone this wiki locally