Einleitung
Knuddel sind etwas feines! Wir können sie verschenken, als Spieleinsatz nutzen, Smileys und andere virtuelle Güter ertauschen. Knuddel sind so toll, dass sogar unser Bot welche wollen würde, wenn er wüsste was sie sind. Genau das bringen wir ihm nun bei. Unser Appbot wird jeden Nutzer nach einem Knuddel fragen und entsprechend reagieren.
Wenn du es selbst probieren möchtest ist das deine Aufgabe:
Jeder Nutzer der unseren Channel betritt wird gefragt ob er gegen Zahlung eines Knuddels unser Freund sein möchte. Zahlt er, dann speichern wir dies. Hat er bereits gezahlt, dann teilen wir ihm als Teil der Begrüßung mit, dass er unser Freund ist.
Die Lösung findest du im folgendem Abschnitt.
Hallo Welt 1.3 / Gibst du mir einen Knuddel?
var App = {}; // Hier speichern wir den Zugriff auf unseren App-Bot var BOTUSER = KnuddelsServer.getDefaultBotUser(); // Wir definieren ein Array in welchem wir alle User speichern, die uns einen Knuddel gegeben haben var myFriends = []; // Dies ist die von Knuddels vorgegebene onUserJoined-Methode. Durch sie können wir auf den Channelbeitritt eine Users reagieren. App.onUserJoined = function(user) { // Wir speichern den Nick des Nutzers nun in einer eigenen Variable. var nick = user.getNick(); // Wenn der Nutzer ChannelModerator ist dann färben wir seinen Nick in den Blauwert des Channels if(user.isChannelModerator) { nick = '°BB°' + nick + '°r°'; } // Oben haben wir den Zugriff auf unseren Bot gespeichert, diesen nutzern wir hier. // Mit der Methode sendPublicMessage() können wir den Bot eine Nachricht schreiben lassen. var msg = 'Hallo, ' + nick + '. '; // Wir haben oben unsere Willkommensnachricht nun in einer Variable Namens msg gespeichert. Diese werden wir gleich erweitern. // mit += wird der folgende Text an den bereits bestehenden Text angehängt. // Einen Link können wir mittels °>LINKNAME|BEFEHL<° erzeugen. // Wir prüfen ob der User bereits auf unserer Freundesliste steht, falls nein, dann fragen wir ihn ob er gegen Zahlung eines Knuddels unser Freund sein möchte // Ist er bereits auf der Liste, dann sagen wir ihm, dass er zu unseren besten Freunden gehört. msg += myFriends.indexOf(user.getUserId()) === -1 ? 'Willst du mein Freund sein und mir _°BB°°>einen Knuddel geben|/appknuddel ' + BOTUSER.getNick() + '<°_°r°? :)' : 'Du bist einer meiner besten Freunde!'; BOTUSER.sendPublicMessage(msg); }; // Dies ist die von Knuddels vorgegebene onUserLeft-Methode. Durch sie können wir auf das Verlassen des Channels reagieren. App.onUserLeft = function(user) { // Oben haben wir den Zugriff auf unseren Bot gespeichert, diesen nutzern wir hier. // Mit der Methode sendPrivateMessage() können wir den Bot eine private Nachricht senden lassen. BOTUSER.sendPrivateMessage('Besuche uns bald wieder, ' + user.getNick() + '!'); }; // Die onKnuddelReceived Methode wird immer dann aufgerufen, wenn unser App-Bot einen Knuddel erhalten hat. App.onKnuddelReceived = function(user, receiver, amount, reason) { // Sobald wir einen (oder mehrere) Knuddel erhalten bedanken wir uns BOTUSER.sendPrivateMessage('Danke, ' + user.getNick() + '!', user); // Wir speichern den User in unserem Anfangs angelegten myFriends-Objekt, als Schlüssel nehmen wir hierzu seine UserId. myFriends.push(user.getUserId()); };
Weiterführende Informationen
- https://developer.knuddels.de/docs/classes/App.html#method_onKnuddelReceived - onKnuddelReceived in der API-Dokumentation