#javascript #discord.js
Вопрос:
В настоящее время новичок в кодировании ботов Discord и следил за онлайн-учебником.
Я застрял в попытке заставить метод сообщений клиента регистрировать сообщение, введенное пользователем.
Вот мой код:
require('dotenv').config();
const Discord = require('discord.js');
const client = new Discord.Client({ intents: ["GUILD_MESSAGES"] });
client.on('ready', () => {
console.log(`${client.user.tag} has logged in`);
});
client.on('message', (msg) => {
console.log(msg.content);
});
client.login(process.env.TOKEN);
Учебник немного устарел с тех пор, как был обновлен Discordjs, и я не уверен, связана ли проблема с намерением или чем-то еще.
Бот может войти на сервер и отображается как онлайн, при этом консоль регистрирует логин.
Однако консоль никогда не сможет регистрировать отправленные сообщения. Любая помощь будет признательна.
Комментарии:
1. Содержимое сообщения будет устаревшим, если оно вам действительно не нужно. Сообщение от discord об этом: support-dev.discord.com/hc/en-us/articles/… Вы все еще можете получить сообщение, если ваш бот был упомянут. В противном случае рассмотрите возможность использования команд. Ответ был правильным, моя точка зрения остается в силе.
Ответ №1:
Вам нужно включить оба намерения:
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]
Вы все еще можете использовать client.on('message')
, но он будет сопровождаться DEPRACATED
предупреждением, поэтому, начиная с версии 13, вы должны использовать client.on('messageCreate')
Ответ №2:
Согласно документам:
//discord.js V12
-client.on('message', (msg) => {
//discord.js V13
client.on('messageCreate', (msg) => {