11-06-2021, 09:18 AM
(Dieser Beitrag wurde zuletzt bearbeitet: 01-25-2022, 07:00 PM von Punio85.)
4 - Vorbereitung Commands
als erstes erstellen wir uns eine commands.js in dem Ordner und erweitern die app.js um folgenden Zeilen
( dies einfach am ende der Datei einfügen )
das ganze sorgt dafür das wir Chatnachrichten "abfangen" und verarbeiten können
der Übersicht halber packen wir uns command relevanten Code in separate Dateien
in die commands.js schreiben wir nun folgendes
hier passiert nun folgendes wenn ein command getriggert wird prüfen wir ob eine Datei mit dem Namen des commands im unterordner commands vorhanden ist und führen diese aus
so müssen wir wenn wir ein command erstellen wollen nur im unterordner commands eine neue JS datei mit dem Namen des gewünschten commands erstellen und nicht ständig in einer Datei neuen quellcode hinzufügen
5 - Der erste Command
wir erstellen uns nun den unterordner namens commands in diesem erstellen wir uns eine Datei namens test.js ( wichtig hierbei ist das alles klein geschrieben wird ) mit folgendem inhalt
jetzt können wir den bot erneut starten und mit dem Chat Command !test sollte der bot nun mit "bestanden" antworten
als erstes erstellen wir uns eine commands.js in dem Ordner und erweitern die app.js um folgenden Zeilen
( dies einfach am ende der Datei einfügen )
Javascript
- var commands = require('./commands');
- // wenn eine nachricht im Chat geschrieben wurde fangen wir diese ab
- client.on('chat', function(channel, user, message, _self) {
- if(_self) return; // die eigenen bot Nachrichten werden ignoriert ( deswegen am besten einen bot Channel )
-
- commands.run(client, channel, user, message); // da wir das ganze in ein extra Modul packen ( der Übersicht halber ) müssen wir alles wieder übergeben + den clienten selbst
- });
das ganze sorgt dafür das wir Chatnachrichten "abfangen" und verarbeiten können
der Übersicht halber packen wir uns command relevanten Code in separate Dateien
in die commands.js schreiben wir nun folgendes
Javascript
- module.exports = {
- run: function(client, channel, user, message, _self) {
- const commandTrigger = '!'; // hier legen wir den coammdn trigger fest ( dies kann alles sein am meisten genutzt ist allerdings ein ! oder # )
-
- // da eine Nachricht mehr als nur das command enthalten kann splitten wir uns diese und suchen das command
- var args = message.split(' '); // teilen der Nachricht an Leerzeichen und speichern diese in ein array ( eine variable weil wir dieses nochmal anpassen müssen )
- var command = args.shift().toLowerCase(); // das command befindet sich im Normalfall an 1 stelle ( also 0 weil array immer bei 0 beginnen ) wir speichern es nun in Kleinschreibung
- var trigger = command.charAt(0); // liest den command trigger aus ... z.b. ein "!" zeichen
-
- if (trigger == commandTrigger) { // wir brauchen nur weiter machen wenn es sich auch um ein command handelt
- command = command.slice(commandTrigger.length, command.length); // wir brauchen den trigger am command nicht mehr und entfernen ihn
-
- //der übersicht halber erstellen wir uns für jedes command eine eigene datei wir prüfen ob bei einem Command diese existiert wenn ja führen wir diese aus
- const fs = require('fs');
- const path = './commands/' + command + '.js'; // der phad der datei
-
- fs.access(path, fs.F_OK, (err) => { // prüfe ob das command existiert
- if (!err) { // kein fehler
- command = require('./commands/' + command); // include command
- // wir führen das command aus und übergeben alle nötigen variablen
- command.run(client, channel, user, args); // run command
- } else {
- console.log('try to run undefined command: ' + command);
- }
- });
- }
- }
- }
hier passiert nun folgendes wenn ein command getriggert wird prüfen wir ob eine Datei mit dem Namen des commands im unterordner commands vorhanden ist und führen diese aus
so müssen wir wenn wir ein command erstellen wollen nur im unterordner commands eine neue JS datei mit dem Namen des gewünschten commands erstellen und nicht ständig in einer Datei neuen quellcode hinzufügen
5 - Der erste Command
wir erstellen uns nun den unterordner namens commands in diesem erstellen wir uns eine Datei namens test.js ( wichtig hierbei ist das alles klein geschrieben wird ) mit folgendem inhalt
Javascript
- module.exports = {
- run: function(client, channel, user, args) {
- client.say(channel, "bestanden"); // Chat Nachricht senden
- }
- }
jetzt können wir den bot erneut starten und mit dem Chat Command !test sollte der bot nun mit "bestanden" antworten
als nächstes behandeln wir Cooldowns