свойство, но, возможно, если оно отсутствует, вы можете просто проигнорировать событие.

жен начать этот вопрос, сказав, что у меня очень мало знаний о javascript (я практиковался в Java) и просто хотел создать (несколько) простой бот Discord, который бы произносил сообщения в случайное время. Я получил два фрагмента кода из различных руководств, и в настоящее время у меня есть это:

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);
}

Проблема происходит в этом блоке:

 bot.on('message', (msg) => {

      if (msg.content.startsWith(prefix + "on")) {
            if (randOn) {
                msg.channel.sendMessage("Already running.");
            }

Каждый раз, когда я пытаюсь командовать ботом в чате разногласий (! On), в командной строке Node.js / командной строки выдается сообщение об ошибке «Ошибка ввода: не удается прочитать свойство'arsWith" из неопределенного ». Я пробовал разные вещи, чтобы это исправить (удаление «контента» из обоих выражений msg.content ... - никаких жалоб, но абсолютно ничего не происходит), но ... я, честно говоря, понятия не имею, что я делаю. Я проверил каждый пост в интернете, посвященный подобным вещам, и ничего не смог ответить на этот вопрос. Я надеюсь, что это простая синтаксическая вещь / что-то, что не объявлено должным образом ... если у вас есть время и жалость ко мне, пожалуйста, помогите. Я знаю, что попал в беспорядок, но я отказываюсь от него отказываться! Дайте мне знать, какую другую информацию я могу предоставить, чтобы помочь.

Ответы на вопрос(2)

Ваш ответ на вопрос