-
Notifications
You must be signed in to change notification settings - Fork 1
Knuddel und Zahlungen
Marc Staebler edited this page Mar 26, 2026
·
6 revisions
Knuddel ist die Premiumwährung auf Knuddels. UserApps können Knuddel empfangen, verwalten und an Nutzer auszahlen.
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.
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!");
}
});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:
KnuddelAmounterlaubt maximal 2 Dezimalstellen.
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 stillvar 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();Ü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'
});- KnuddelAmount – Betrags-Wrapper
- KnuddelAccount – Nutzerkonto
- KnuddelTransfer – Transfer-Objekt
- KnuddelTransferDisplayType – Anzeigetypen
- PaymentAccess – Zahlungs-API
- KnuddelShop – Shop-Produkte
- Erste Schritte – Voraussetzungen, Einrichtung, deine erste App
-
Projektstruktur – Dateien, Ordner und
app.config - Dev-Server – Entwicklungsumgebung und Testen
-
App-Lifecycle und Hooks –
onAppStart,onUserJoinedund Co. -
Server-API Grundlagen –
KnuddelsServer,Channel,Logger - Client-Server-Kommunikation – Events zwischen Frontend und Backend
-
Benutzer und Nachrichten –
User,BotUser, Nachrichten senden - HTML-UI und AppContent – Popups, Overlays, Globale Apps-UI
-
Datenspeicherung –
AppPersistence,UserPersistence -
Knuddel und Zahlungen – Transfers, Käufe,
KnuddelAccount - Toplisten – Ranglisten und Highscores
- Globale Apps – Apps im "Apps & Spiele"-Menü
- Quests – Aufgaben für Nutzer
- Externe Server-Kommunikation – HTTP-Requests an externe APIs
- Tutorials – Übersicht aller Tutorials
- Tic-Tac-Toe – Multiplayer-Spiel mit Bestenliste
- Best Practices – Tipps, Limits und häufige Fehler
- FAQ – Häufig gestellte Fragen
- KCode-Formatierung – Nachrichten-Formatierung mit KCode