Modul: Knuddel

Ein KnuddelTransfer ist ein Container-Objekt für die Daten, die bei einer Knuddel-Transaktion von einem User an eine App anfallen.

Implementiert man den App-Hook onBeforeKnuddelReceived, so kann man dort entscheiden, ob man den KnuddelTransfer annimmt oder ablehnt.

Methoden

accept

()

Nimmt die Knuddel aus dem KnuddelTransfer an und übergibt sie an den BotUser, der mit getReceiver() abgefragt werden kann.

Diese Methode wirft eine Exception, wenn sie auf einen bereits verarbeiteten Transfer aufgerufen wird. Sie kann nur erfolgreich aus dem AppHook onBeforeKnuddelReceived aufgerufen werden.

Beispiel:

this.onBeforeKnuddelReceived = function(knuddelTransfer) {
    if (knuddelTransfer.getSender().isAppDeveloper()) {
         // Nimmt die Knuddel an und sendet sie an den Bot.
         // Im Anschluss wird onKnuddelReceived aufgerufen.
        knuddelTransfer.accept();
        knuddelTransfer.getSender().sendPrivateMessage('Vielen Dank!');
    } else {
        // Lehnt die Knuddel ab und sendet sie zurück an den absendenden
        // User oder KnuddelAccount.
        knuddelTransfer.reject('Sorry, Knuddel nehme ich von meinem Herrchen an.');
    }
};

getKnuddelAmount

() KnuddelAmount

Liefert die Anzahl der Knuddel, die mit diesem Transfer überwiesen werden.

Rückgabewert:

Beispiel:

var knuddelAmount = knuddelTransfer.getKnuddelAmount();

getReceiver

() BotUser

Liefert den BotUser, der die Knuddel des KnuddelTransfer erhält, wenn dieser mit KnuddelPot/accept:method angenommen wurde.

Rückgabewert:

Beispiel:

var receivingBotUser = knuddelTransfer.getReceiver();

getSender

() User

Liefert den User, der den KnuddelTransfer ausgelöst hat.

Rückgabewert:

User:

Beispiel:

var sendingUser = knuddelTransfer.getSender();
sendingUser.sendPrivateMessage('Danke für die Knuddel :)');

getTransferReason

() String

Liefert den Grund für den Transfer, der bei der Überweisung angegeben wurde mit /appknuddel BOTNICK:KNUDDEL:GRUND.

Rückgabewert:

Beispiel:

var transferReason = knuddelTransfer.getTransferReason();
var knuddelAmount = knuddelTransfer.getKnuddelAmount();
var sender = knuddelTransfer.getSender().getProfileLink();
var logger = KnuddelsServer.getDefaultLogger();
var logMsg = sender + ' hat gerade ' + knuddelAmount + ' Knuddel überwiesen.' + '°#°Grund: ' + transferReason;
logger.info(logMsg);

isProcessed

() Boolean

Liefert die Information, ob der KnuddelTransfer bereits verarbeitet wurde. Falls die Methode false zurückliefert muss noch entschieden werden, ob der KnuddelTransfer angenommen oder abgelehnt wird.

Rückgabewert:

reject

(
  • reason
)

Lehnt die Knuddel aus dem KnuddelTransfer ab und sendet sie zurück an den Absender. Als Grund sieht der Absender den übergebenen reason.

Diese Methode wirft eine Exception, wenn sie auf einen bereits verarbeiteten Transfer aufgerufen wird. Sie kann nur erfolgreich aus dem AppHook onBeforeKnuddelReceived aufgerufen werden.

In der Methode onBeforeKnuddelReceived kann genau ein Aufruf einer dieser drei Methoden gemacht werden: accept, KnuddelTransfer/addToPot:method, reject

Parameter:

Beispiel:

if (knuddelTransfer.getSender().isAppDeveloper()) {
    knuddelTransfer.accept();
} else {
    knuddelTransfer.reject('Sorry, Knuddel nehme ich von meinem Herrchen an.');
}