Недавно я создал бота для разногласий, но он не подключается к сети, ошибок нет, также не знаю, почему это мой код.
const TOKEN = "MyBotsToken";
const fs = require('fs')
const Discord = require('discord.js');
const Client = require('./client/Client');
const {
prefix,
token,
} = require('./config.json');
const client = new Client();
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
}
console.info(client.commands);
client.once('ready', () => {
console.info('Ready!');
});
client.once('reconnecting', () => {
console.info('Reconnecting!');
});
client.once('disconnect', () => {
console.info('Disconnect!');
});
client.on('message', async message => {
const args = message.content.slice(prefix.length).split(/ +/);
const commandName = args.shift().toLowerCase();
const command = client.commands.get(commandName);
if (message.author.bot) return;
if (!message.content.startsWith(prefix)) return;
try {
if (commandName == "ban" || commandName == "userinfo") {
command.execute(message, client);
} else {
command.execute(message);
}
} catch (error) {
console.error(error);
message.reply('There was an error trying to execute that command!');
}
console.info("bot is ready for use")
bot.login(MyBotsToken);
});
Мой бот также использует node.js и javascript. Я также пробовал node index.js в cmd. ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше ничего больше
Спасибо Extremepro999
Проблема здесь в том, что ваше действие login
находится внутри вашего события onMessage
.
Это означает, что он будет использоваться только тогда, когда ваш бот обнаружит сообщение. Поскольку он не выходит в сеть, он не может обнаружить сообщение и так далее...
Хорошая новость заключается в том, что вы можете исправить это, просто поместив bot.login(MyBotsToken);
вне события onReady
. Что вам также нужно сделать, так это использовать .login()
на вашем клиентском объекте.
Так это должно выглядеть так.
client.on('message', message => {
// your code
})
client.login(MyBotsToken);
bot.login(MyBotsToken)
должен быть вне client.on('message', async message => {});