Am Dienstag habe ich bereits erwähnt, dass es im nächsten Tutorial darum gehen wird Funktionen nur bestimmten Usern zur Verfügung zu stellen. Wie immer versuche ich in einzelnen kleinen Schritten das ganze für euch nachvollziehbar zu gestalten, so dass auch ihr sofern ihr kein Wissen über JavaScript besitzt nach und nach eure eigene kleine User App programmieren könnt.
Aufgabenstellung:
Wir möchten eine User App erstellen, die bestimmte Funktionen (chatCommands) nur von MCMs ausführt.
Hinweis: Bei diesem Tutorial wird vorausgesetzt, dass du einen aktiven Entwickler-Account und Zugang zum FTP-Server hast und bereits mit Hilfe von diesem Beitrag eine eigene App erstellen kannst.
Schritt 1:
Öffne mit deinem Editor die main.js und binde diverse Funktionen (chatCommands) die ausgeführt werden sollen ein. Falls du nicht mehr genau weisst wie das geht, kannst du das hier sowie hier nachlesen.
Schritt 2:
Überlege nun einen Namen für deine Funktion (/NameDerFunktion) und für wen genau sie anwendbar sein soll und gebe schon mal das Grundgerüst vor.
Ich werde dafür die bereits in den vorherigen Tutorials angelegten Funktionennamen /startevent, /stopevent
sowie /huhu
verwenden.
var App = (new function(){ this.chatCommands = { // Hier kommt die Funktionssammlung hin }; }());
Schritt 3:
Für mich steht fest ich möchte, dass die Funktionen zum manuellen Starten eines Events nur von MCMs ausgeführt werden dürfen. Die Begrüßungsfunktion /huhu aber von allen. Daher muss ich nun innerhalb der Funktion mit Hilfe einer If-Abfrage (nähere Informationen dazu findet ihr hier) klären, ob der User der die Funktion eingegeben und abgeschickt hat auch berechtigt ist dies zu tun.
startevent: function(user, params, command) { if(user.isChannelModerator()) { // Hier kommt der Script-Code hin, der euer Event startet user.sendPrivateMessage('Du darfst die Funktion ausführen, weil du MCM bist!'); } else { user.sendPrivateMessage('Du kannst diese Funktion nicht ausführen!'); } },
Wenn euer Script nun so aufgebaut ist, sollte dem nichts mehr im Wege stehen mit den anderen Funktionen weiter zu machen. Denn jetzt wird in der hervorgehobenen Zeile 2 abgefragt, ob der User (der die Funktion abgeschickt hat) auch Channelmoderator ist. Wenn diese definierte Bedingung erfüllt ist, wird alles in den geschweiften Klammern ausgeführt. Zeile 3 und 4. Wenn diese Bedingung allerdings nicht erfüllt wird, dann wird alles was hier beispielhaft in Zeile 6 steht ausgeführt.
Schritt 4:
Erledige nun das oben gelernte auch für die Funktion /stopevent und füge den entstehenden Scriptcode einfach nach Zeile 8 ein. Wenn das noch schwierig sein sollte für dich, kopiere einfach den oberen Quelltext und modifiziere ihn so, dass die Funktion auch auf /stopevent reagiert.
Schritt 5:
Da bis hier hin nun /startevent und /stopevent funktionieren sollten, kannst du aus den anderen Tutorials die bereits fertig gestellte Funktion /huhu oder eine eigene ausgedachte Funktion anwenden. Wenn du /huhu verwendest, musst du dabei keine besondere Bedingung abfragen, da wir diese ja allen Usern im Channel zur Verfügung stellen wollen. Dein Scriptcode sollte nun so oder zumindest so ähnlich aussehen:
var App = (new function(){ this.chatCommands = { // Folgende Beispielfunktionen habe ich ausgewählt startevent: function(user, params, command) { if(user.isChannelModerator()) { // Hier kommt der Script-Code hin, der euer Event startet user.sendPrivateMessage('Du darfst die Funktion ausführen, weil du MCM bist!'); } else { user.sendPrivateMessage('Du kannst diese Funktion nicht ausführen!'); } }, stopevent: function(user, params, command) { if(user.isChannelModerator()) { // Hier kommt der Script-Code hin, der euer Event beendet user.sendPrivateMessage('Du darfst die Funktion ausführen, weil du MCM bist!'); } else { user.sendPrivateMessage('Du kannst diese Funktion nicht ausführen!'); } }, huhu: function(user, params, command){ // Diese Funktion kann von allen Usern ausgeführt werden user.sendPrivateMessage('Hallo!'); } }; }());
Das war es auch schon! Ihr habt es geschafft. Jetzt könnt ihr euch austoben und ganz spezielle Funktionen für die verschiedenen Besuchergruppen definieren! 😉