Skip to content

Knuddel und Zahlungen

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

Knuddel und Zahlungen

Knuddel ist die Premiumwährung auf Knuddels. UserApps können Knuddel empfangen, verwalten und an Nutzer auszahlen.


Grundkonzept

Jede App hat ein eigenes Knuddel-Konto (über den BotUser). Nutzer können Knuddel an die App senden, und die App kann Knuddel an Nutzer auszahlen. Dies ermöglicht In-App-Käufe, Belohnungssysteme und Spiele mit Einsätzen.


Knuddel empfangen (Nutzer → App)

Ein Nutzer kann freiwillig Knuddel an die App transferieren:

// Servercode – Nutzer sendet Knuddel an die App
// "Spende" ist der Anzeigetext für den Transfer
var knuddelAmount = new KnuddelAmount(2);
user.transferKnuddelToApp(knuddelAmount, 'Spende', {
    onError: function(message) {
        user.sendPrivateMessage("Bezahlung fehlgeschlagen. " + message);
    },
    onSuccess: function() {
        user.sendPrivateMessage("Vielen Dank für die Spende!");
    }
});

Knuddel auszahlen (App → Nutzer)

Die App kann Knuddel aus ihrem Konto an Nutzer senden:

function sendKnuddel(receiver, amount, reason) {
    var bot = KnuddelsServer.getDefaultBotUser();
    var logger = KnuddelsServer.getDefaultLogger();

    // Prüfen ob genug Knuddel vorhanden
    var botKnuddel = bot.getKnuddelAmount().asNumber();
    if (botKnuddel < amount) {
        logger.warn('Nicht genug Knuddel (' + amount + ') für ' + receiver.getNick());
        return;
    }
    if (amount <= 0) {
        return;
    }

    var knuddelAmount = new KnuddelAmount(amount);
    var transferOptions = {
        displayReasonText: reason,
        transferDisplayType: KnuddelTransferDisplayType.Private,
        onSuccess: function() {
            // Transfer erfolgreich
        },
        onError: function(logMsg) {
            logger.warn('Knuddeltransfer fehlgeschlagen (' + amount + '): '
                + receiver.getNick() + ' : ' + logMsg);
        }
    };

    bot.transferKnuddel(receiver, knuddelAmount, transferOptions);
}

// Aufruf: receiver ist ein User-Objekt, kein Nickname!
sendKnuddel(user, 1.25, "Gewinn aus dem Quiz");

Hinweis: KnuddelAmount erlaubt maximal 2 Dezimalstellen.

Transfer-Anzeigetypen

KnuddelTransferDisplayType.Private  // Empfänger erhält eine private Nachricht (/p) mit Transfer-Info
KnuddelTransferDisplayType.Post     // Empfänger erhält eine Post-Nachricht (/m) mit Transfer-Info
KnuddelTransferDisplayType.Public   // Transfer wird öffentlich im Channel angezeigt
KnuddelTransferDisplayType.Silent   // Keine Benachrichtigung – der Transfer erfolgt still

Kontostand abfragen

var bot = KnuddelsServer.getDefaultBotUser();

// Knuddel-Betrag des Bots
var botKnuddel = bot.getKnuddelAmount().asNumber();

// Knuddel-Konto eines Nutzers (bei der App)
var userAccount = user.getKnuddelAccount();
var kontostand = userAccount.getKnuddelAmount().asNumber();

PaymentAccess – Knuddel-Shop

Über PaymentAccess kannst du Nutzer zum Knuddel-Kauf auffordern oder den Shop öffnen:

var paymentAccess = KnuddelsServer.getPaymentAccess();

// Knuddel-Shop für einen Nutzer öffnen
paymentAccess.openKnuddelShop(user, 'Für In-App-Käufe');

// Knuddel-Kauf mit konkretem Betrag initiieren
paymentAccess.startKnuddelPurchase(user, new KnuddelAmount(5), {
    displayReasonText: 'Premium-Feature freischalten'
});

PaymentAccess-Dokumentation


API-Referenz


← Zurück zur Übersicht

Navigation

Einstieg

Kernkonzepte

Features

Tutorials

Referenz & Hilfe

Clone this wiki locally