Chcę zablokować słowa przysięgłych za pomocą mojego botu Discord. Więc stworzyłem plik JSON z tych, które chcę zablokować i nazwać to swear_words. W teście dodałem swetę do testowania. Następnie włączam go na górze mojego {x1}} Plik:

const { swear_words, mute_content } = require(`./swear-words.json`);

A następnie mój kod blokujący na dole:

client.on(`message`, message => {
    for (var i=0; i < swear_words.length; i++) {
        if (message.content.includes(swear_words[i])) {
            message.delete();
            message.channel.send(mute_content);
            console.log("Someone tried to swear.");
        }
    }
});

To działa, gdy wpisuję sware, ale nie Sware. Więc dodaj swear_words.prototype.toLowerCase(), aby zrobić:

if (message.content.includes(swear_words.prototype.toLowerCase() === swear_words[i])) {}

A potem dostaję:

TypeError: Cannot read property 'toLowerCase' of undefined

Co to jest? Czy nie może przeczytać mojego JSON?

Z góry dziękuję za jakąkolwiek pomoc.

1
yowof 17 kwiecień 2021, 01:45

1 odpowiedź

Najlepsza odpowiedź

Użyj .toLowerCase( ) na treści wiadomości, ponieważ zwraca ciąg.

if (message.content.toLowerCase( ).includes(swear_words[i])) {
1
gXLg 16 kwiecień 2021, 23:00