Как исправить не удается прочитать свойство "отправить" неопределенного - PullRequest
0 голосов
/ 01 августа 2020

У этого вопроса может быть несколько дубликатов, но код там другой, и ни один из ответов мне не подходит. Я новичок в разногласиях. js так что это может быть просто глупая ошибка.

Это мой код -

var Discord = require('discord.io');
var logger = require('winston');
var auth = require('./auth.json');
// 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 + ')');
});
client.on('message', function(message) {
    if (message.startsWith('^')) { //condition is false, even though message starts with ^
        if (message.startsWith('^ping')) {
            message.mentions.users.forEach((k, v) => {
                message.channel.send('Hello,' + v + '!');
            });
        } else if (message.startsWith('^dice')) {
            message.channel.send('You rolled a a' + Math.floor((Math.random() * 100) + 1) + "!");
        } else {
            message.channel.send("Command not found.");
        }
    } else {
        message.channel.send("debug") //error in this line
    }
});

Я действительно не знаю, как это исправить, поэтому все решения, которые я пробовал, приводят к этой ошибке. Также, если вы видите какие-либо другие исправления в этом коде, укажите на это. Вот ошибка:

        message.channel.send("debug")
                        ^

TypeError: Cannot read property 'send' of undefined
    at DiscordClient.<anonymous> (C:\Users\user\Documents\UltraBot\bot.js:32:25)
    at DiscordClient.emit (events.js:315:20)
    at DiscordClient.handleWSMessage (C:\Users\user\Documents\UltraBot\node_modules\discord.io\lib\index.js:1854:11)
    at WebSocket.emit (events.js:315:20)
    at Receiver.ontext (C:\Users\user\Documents\UltraBot\node_modules\ws\lib\WebSocket.js:841:10)
    at C:\Users\user\Documents\UltraBot\node_modules\ws\lib\Receiver.js:536:18
    at Receiver.applyExtensions (C:\Users\user\Documents\UltraBot\node_modules\ws\lib\Receiver.js:371:5)
    at C:\Users\user\Documents\UltraBot\node_modules\ws\lib\Receiver.js:508:14
    at Receiver.flush (C:\Users\user\Documents\UltraBot\node_modules\ws\lib\Receiver.js:347:3)
    at Receiver.finish (C:\Users\user\Documents\UltraBot\node_modules\ws\lib\Receiver.js:541:12)

1 Ответ

1 голос
/ 01 августа 2020

Проблема в том, что вы используете код для Discord. js при использовании пакета Discord.io . Способы отправки и получения сообщений сильно различаются. Я предлагаю вам перейти на Discord. js, так как это то, для чего вы пишете код для работы.

...