Herzlich Willkommen auf StreamTalk.de, deiner Community rund um Twitch, Hitbox und Co.
Bei uns kannst Du deine Gedanken zu Twitch, Hitbox und Co. mit anderen teilen und Dich über interessante Themen rund ums Streaming austauschen, z.B. Chatbots, Donations, Sponsoring, Overlays, etc. Erhalte Hilfe und wertvolle Tipps für den Aufbau deines Streaming Channels. Außerdem kannst du deinen Stream in einem eigenen Bereich bei uns vorstellen oder nach Partnern für gemeinsame Projekte suchen.
Wir würden uns freuen, wenn du ein Teil dieser großartigen Community wirst: Jetzt registrieren
Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklärst du dich damit einverstanden, dass wir Cookies setzen. Weitere Informationen
DIESES FORUM IST VERALTET UND NUR NOCH ZUR DATENÜBERNAHME ERREICHBAR BITTE DIE AKTUELLE VERSION VERWENDEN: STREAMTALK.DE
@serad0x
Das scheint mir sehr logisch, aber wo müsste ich den code einfügen?
In der App.js? wenn ich es dort versuche geht das bei mir nicht.
Soll ich das vielleicht. in der tmi.js/lib/commands.js einfügen?
client.say("TheOWord", "@"+userstate.username+" möchte einen sehr schlechten Witz hören, hier ist er: "+badjokes[Math.floor(Math.random()* badjokes.length)]);
}
});
Das "client.on(...)" hast du ja sicherlich irgendwo stehen und wenn du das einfach so mit reinpackst, funktioniert es auch. Macht an sich keinen Unterschied.
@serad0x
Dieser Code hat leider nicht funktioniert, bzw. der Bot hat gestartet aber ist beim befehl !witz gecrashed.
Ich habe aber den Vorherigen code zum Laufen gebracht, jetzt funktioniert alles Einwandfrei, danke dafür nochmals
danke für die sehr gute Erklärung und Einrichung ....
folgendes Problem.
Wenn einer A schreib, soll mit B geantwortet werden.... aber das nur 1x in, ich sag mal 10sek.
Bekommt man das irgendwie gescriptet ?
Das Problem ist nämlich, wenn 5 leute A schreiben, soll nicht 5x mit B geantwortet werden... sondern nur 1x ...
Dafür musst du halt einen Cooldown aktivieren. Also mal dirty:
Quellcode
cooldown['A': timeStamp];
if (currentTimeStamp - cooldown['A'] > 10000) {
say('B')
cooldown['A'] = currentTimeStamp
}
Damit speicherst du immer das letzte mal wo A geschrieben wurde. Und wenn 10sec vorbei sind, kann wieder B ausgegeben werden.
Du kansnt natürlich auch es komplizierter machen, wenn du noch einen "User-Cooldown" statt einen "Globalen"-Cooldown hast. Dann musst du noch den user dazu abspeichern.
hiho ... sehr nettes Tutorial ...
ich hätte da aber ein paar kleine Änderungsvorschläge
JavaScript-Quellcode
const Owner ='DEINCHANNELNAMEAUFTWITCH';
const Bot ='DEINBOTNAMEAUFTWITCH';
// hier können mehrere channels angegeben werden bei den der Bot joinen soll ( mit komma getrennt )
const Channels = [Owner];
var options = {
options: {
debug:true
},
connection: {
cluster:"aws",
reconnect:true
},
identity: {
username: Bot,
password:""
},
channels: Channels
};
var client =new tmi.client(options);
client.connect();
Alles anzeigen
das hat den vorteil das man nicht immer den Channel namen bei nachrichten neu schreiben muss sondern kann einfach die Konstante einfügen ( und sollte der Name sich mal ändern reicht es wenn man die Konstante ändert und nicht den kompletten Code anpassen muss )
JavaScript-Quellcode
client.say(Bot, "Sei gegrüßt "+userstate.username+", auf meinem Channel!");
// oder
client.say(Owner, "Sei gegrüßt "+userstate.username+", auf meinem Channel!");
des weiteren diese kleine Anpassung
das hier kann man vereinfachen
// so ist die nachricht ( für den bot ) IMMER klein geschrieben
var msg = message.toLowerCase();
if(msg =="!beispiel"){
client.say(Bot, "Test");
}
});
( scripte sind jetzt nicht getestet sollten so aber funktionieren wenn nicht einfach bescheid geben ich teste dann mal durch :p )
MFG
-- EDIT --
eine Optimierung hätte ich da noch (sry :p )
da man mehrere nachrichten "abfangen" möchte sollte man nicht mit if arbeiten das ist bei vielen abfragen sehr langsam ( in Performance Sachen gesprochen auch wenn es "nur" Millisekunden sind kann das schnell mal auf mehrere Sekunden ausarten ) ... also macht man es besser mit einem Switch
zu frage 2 ...
dies wäre nur möglich wenn du in regelmäßigen Abständen deine zuschauer liste auslesen lässt ( mittelst Timer oder ähnlichem ) und dann die Daten in eine DB speicherst ( dies hat je nachdem wie oft du ausliest dann aber auch Schwankungen und ist nie 100% korrekt ) und diese wieder ausliest sobald der Command getriggert wird
also für Anfänger dann doch noch sehr schwer um zu setzen aber ja es wäre möglich
hier gibt es auch einiges zu beachten ... du müsstest abfragen ob du überhaupt online bist damit die watchtime auch erst dann zählt ...
die müsstest dir eine Möglichkeit überlegen dies auch "genau" zu speichern ... ergo als erstes eine sagen wir mal variable mit dem wert wann er den chat beigetreten ist ( dies ergibt sich daraus ob diese schon existiert oder eben nicht wenn er Joint ) mit der zeit und dem datum ... wenn er wieder verlässt Addierst du in der Datenbank einfach die Differenz zum ersten Zeitpunkt ...
zu frage 3 ...
da müsstest du mit der Twitch API arbeiten ... dazu solltest du dich aber als aller erstes mit der Twitch API auseinandersetzen ... Ablauf wäre folgender ...
Command wird getriggert ... du stellst mittels ajax eine Verbindung zur Twitch API her und fragst deine Kanal Daten ab ( du bekommst als Antwort ein JSON String ) und gibst dann die gewünschten Daten im chat aus.
auch hier wieder für Anfänger etwas schwer aber nicht unmöglich
zu frage 2 ...
dies wäre nur möglich wenn du in regelmäßigen Abständen deine zuschauer liste auslesen lässt ( mittelst Timer oder ähnlichem ) und dann die Daten in eine DB speicherst ( dies hat je nachdem wie oft du ausliest dann aber auch Schwankungen und ist nie 100% korrekt ) und diese wieder ausliest sobald der Command getriggert wird
also für Anfänger dann doch noch sehr schwer um zu setzen aber ja es wäre möglich
hier gibt es auch einiges zu beachten ... du müsstest abfragen ob du überhaupt online bist damit die watchtime auch erst dann zählt ...
die müsstest dir eine Möglichkeit überlegen dies auch "genau" zu speichern ... ergo als erstes eine sagen wir mal variable mit dem wert wann er den chat beigetreten ist ( dies ergibt sich daraus ob diese schon existiert oder eben nicht wenn er Joint ) mit der zeit und dem datum ... wenn er wieder verlässt Addierst du in der Datenbank einfach die Differenz zum ersten Zeitpunkt ...
zu frage 3 ...
da müsstest du mit der Twitch API arbeiten ... dazu solltest du dich aber als aller erstes mit der Twitch API auseinandersetzen ... Ablauf wäre folgender ...
Command wird getriggert ... du stellst mittels ajax eine Verbindung zur Twitch API her und fragst deine Kanal Daten ab ( du bekommst als Antwort ein JSON String ) und gibst dann die gewünschten Daten im chat aus.
auch hier wieder für Anfänger etwas schwer aber nicht unmöglich
MFG
Danke ich habe erst überlegt, ob ich hier überhaupt reinschreiben soll, da der Artikel ja schon etwas älter ist, aber ja es antwortet mit ja glatt einer nach ein paar stunden geantwortet.
Ok also ist es schon echt nicht einfach. Gibt es dazu irgendwo ein Bsp. Code oder ein ausführliches Tutorial?
Danke für die Antwort. dann muss ich da wohl mal ein bisschen herumprobieren.
Vielleicht gibt es ja noch irgendetwas zur Hilfe...
ich könnte mein Tutorial dies bezüglich erweitern als kleine Hilfe kann dir aber nicht versprechen das es schnell fertig wird aktuell viel um die Ohren
dies wären dann aber allgemein beispiele wie man z.b. etwas in eine DB schreibt oder eben mit der Twitch API arbeitet kein konkretes halt