javascript TypeError: Não é possível ler a propriedade 'beginWith' de undefined - discord bot
Devo começar esta pergunta dizendo que tenho muito pouco conhecimento de javascript (sou praticado em Java) e só queria criar um bot Discord (um tanto) simples que diria mensagens em momentos aleatórios. Eu Frankensinei 2 partes de código de vários tutoriais juntos e atualmente tenho o seguinte:
var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
//random bot code
var randomMessage;
var randOn = false;
var responseArray = [ //add more messages here
"Ayy, lmao!",
"Say what?",
"roflmaotntpmp"
];
var prefix = "!";
var timer = [5,10]; //set min and max in seconds for random messages
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, {
colorize: true
});
logger.level = 'debug';
// Initialize Discord Bot
var bot = new Discord.Client({
token: auth.token,
autorun: true
});
bot.on('ready', function (evt) {
logger.info('Connected');
logger.info('Logged in as: ');
logger.info(bot.username + ' - (' + bot.id + ')');
});
bot.on('message', (msg) => {
if (msg.content.startsWith(prefix + "on")) {
if (randOn) {
msg.channel.sendMessage("Already running.");
}
else {
msg.channel.sendMessage("Random message started.")
randomMessage = setTimeout(function() {
randMsg(msg.channel);
}, 1000*timer[0]);
}
}
else if (msg.content.startsWith(prefix + "off")) {
if (randOn) {
clearTimeout(randomMessage);
msg.channel.sendMessage("Random message disabled.");
}
else {
msg.channel.sendMessage("Not running.");
}
}
});
function randomIntFromInterval(min, max) {
return Math.floor(Math.random()*(max-min+1)+min);
}
function randMsg(msgChan) {
console.log("callback");
var interval = 1000*randomIntFromInterval(timer[0],timer[1]);
var rand = randomIntFromInterval(0,responseArray.length-1);
if(responseArray[rand]) {
msgChan.sendMessage(responseArray[rand]);
}
randomMessage = setTimeout(function() {
randMsg(msgChan);
}, interval);
}
O problema está ocorrendo neste bloco:
bot.on('message', (msg) => {
if (msg.content.startsWith(prefix + "on")) {
if (randOn) {
msg.channel.sendMessage("Already running.");
}
Toda vez que tento comandar o bot no meu chat de discórdia (! On), recebo o erro "TypeError: Não é possível ler a propriedade 'beginWith' of undefined" no Node.js / prompt de comando. Eu tentei várias coisas para corrigi-lo (removendo "conteúdo" de ambas as instruções msg.content ... - sem queixas, mas absolutamente nada acontece), mas ... Sinceramente, não tenho idéia do que estou fazendo. Eu verifiquei cada post na internet que lida com coisas semelhantes e nada foi capaz de responder a isso. Espero que seja uma coisa simples de sintaxe / algo não declarado corretamente .... se você tiver algum tempo e pena de mim, por favor, ajude. Eu sei que me meti em uma bagunça, mas me recuso a abandoná-la! Deixe-me saber que outras informações posso fornecer para ajudar.