Итак, я пытался сделать эту работу около 3 часов, и я почти сдаюсь.Фильтр запрещенных слов (tmi.js)
Мой текущий код:
var tmi = require('tmi.js');
var linksDisallowed = ["http://", "https://", ".dk"];
var options = {
\t options: {
\t \t debug: true
\t },
\t connection: {
\t \t cluster: "aws",
\t \t reconnect: true
\t },
\t identity: {
\t \t username: "botstormen",
\t \t password: "**CENSORED FOR SECURITY REASONS**"
\t },
\t channels: ["dunkstormen"]
};
var client = new tmi.client(options);
client.connect();
client.on('connected', function(adress, port) {
\t client.action("dunkstormen", "joinede chatten og er klar til at hjælpe! :3");
});
client.on('chat', function(channel, user, message, self) {
\t if(message === "!social" || message === "!Social") {
\t \t client.action("dunkstormen", "Twitter: twitter.com/dunkstormen Facebook: facebook.com/dunkstormen");
\t }
});
client.on('chat', function(channel, user, message, self) {
\t for (var i = 0; i < 3; i++) {
\t \t
\t \t if(message.indexOf(linksDisallowed[i]) >= 0) {
\t \t \t client.say("Hello, " + user);
\t \t }
\t \t
\t }
});
Но всякий раз, когда я ввожу один из слова в массиве linksDisallowed в чат бота просто мгновенно падает со следующей ошибкой:
C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\commands.js:207
if (message.toLowerCase().startsWith("/me ") || message.toLowerCase().startsWith("\\me ")) {
^
TypeError: Cannot read property 'toLowerCase' of undefined
at client.say (C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\commands.js:207:20)
at client.<anonymous> (C:\Users\Benjamin Jørgensen\Desktop\botstormen\app.js:37:11)
at client.EventEmitter.emit (C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\events.js:99:50)
at client.handleMessage (C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\client.js:792:34)
at C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\client.js:919:18
at Array.forEach (native)
at client._onMessage (C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\lib\client.js:917:11)
at WebSocket.onMessage (C:\Users\Benjamin Jørgensen\Desktop\botstormen\node_modules\tmi.js\node_modules\ws\lib\WebSocket.js:442:14)
at emitTwo (events.js:87:13)
at WebSocket.emit (events.js:172:7)
Спасибо, но теперь у меня есть вопрос, что пользователь просто возвращает [объект Object] вместо фактического имени пользователя. – Dunkstormen
Отредактировано. BTW, я никогда не использовал tmijs или дергался ... Просто прочитал doc :) – Salketer
Спасибо за вашу помощь! Это очень ценится :) – Dunkstormen