Skip to content

Toplisten

Marc Staebler edited this page Mar 26, 2026 · 6 revisions

Toplisten

Toplisten sind Ranglisten, die auf UserPersistenceNumbers-Werten basieren. Sie werden automatisch unter /apptop im Channel angezeigt.


Toplist erstellen

// Innerhalb von var App = { ... };
onAppStart: function() {
    var toplistAccess = KnuddelsServer.getToplistAccess();

    // Toplist basierend auf dem UserPersistence-Key "points"
    toplistAccess.createOrUpdateToplist('points', 'Highscore', {
        ascending: false                          // Höchster Wert zuerst
    });
},

Mit Label-Mapping

Du kannst Punktebereichen Labels zuordnen:

toplistAccess.createOrUpdateToplist('level', 'Erfahrungsstufe', {
    labelMapping: {
        0: 'Anfänger',
        100: 'Fortgeschrittener',
        500: 'Experte',
        1000: 'Meister',
        5000: 'Legende'
    }
});

Toplisten verwalten

var toplistAccess = KnuddelsServer.getToplistAccess();

// Alle Toplisten abrufen
var alleToplisten = toplistAccess.getAllToplists();

// Bestimmte Toplist abrufen
var highscore = toplistAccess.getToplist('points');

// Chat-Befehl für die Toplist
var chatCommand = highscore.getChatCommand();  // z.B. "/toplist-points"

// Toplist entfernen
toplistAccess.removeToplist(highscore);

Werte aktualisieren

Die Toplist-Werte werden automatisch aus UserPersistenceNumbers bezogen. Du musst nur die Persistence-Werte aktualisieren:

// Punkte vergeben → Toplist wird automatisch aktualisiert
user.getPersistence().addNumber('points', 50);

Labels abfragen

var toplist = KnuddelsServer.getToplistAccess().getToplist('level');

// Label eines bestimmten Nutzers (User-Objekt oder userId)
var label = toplist.getLabel(user);  // z.B. "Experte"
var labelById = toplist.getLabel(12345);  // Auch per userId möglich

Toplisten im Profil anzeigen

Toplisten werden nicht automatisch im Nutzerprofil angezeigt. Dafür benötigst du AppProfileEntryAccess, mit dem du Einträge im Profil eines Nutzers erstellen kannst:

var appProfileEntryAccess = KnuddelsServer.getAppProfileEntryAccess();

// Toplist-basierten Profileintrag erstellen
var toplist = KnuddelsServer.getToplistAccess().getToplist('points');
appProfileEntryAccess.createOrUpdateEntry(toplist);

AppProfileEntryAccess-Dokumentation


API-Referenz


← Zurück zur Übersicht

Navigation

Einstieg

Kernkonzepte

Features

Tutorials

Referenz & Hilfe

Clone this wiki locally