【问题标题】:Discord bot won't log messagesDiscord 机器人不会记录消息
【发布时间】:2021-10-27 23:33:00
【问题描述】:

目前是 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 已更新,该教程有点过时,我不确定问题是否与意图或其他原因有关。

机器人能够登录服务器并显示为在线,控制台注册登录。

但是,控制台永远无法记录任何发送的消息。任何帮助将不胜感激。

【问题讨论】:

  • 如果你真的不需要消息内容,它们将被弃用。不和谐的帖子:support-dev.discord.com/hc/en-us/articles/… 如果您的机器人被提及,您仍然可以收到消息。否则考虑使用命令。答案做出了正确的回应,我的观点仍然成立。

标签: javascript discord.js


【解决方案1】:

您需要包含两个意图:

intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]

您仍然可以使用client.on('message'),但它会带有DEPRACATED 警告,因此从v13 开始您应该使用client.on('messageCreate')

【讨论】:

    【解决方案2】:

    根据docs

    //discord.js V12
    -client.on('message', (msg) => {
    //discord.js V13
    +client.on('messageCreate', (msg) => {
    

    【讨论】:

      猜你喜欢
      • 2019-09-16
      • 2021-03-23
      • 2020-08-24
      • 2020-07-04
      • 2021-08-19
      • 2020-08-12
      • 1970-01-01
      • 2021-08-01
      • 2021-05-09
      相关资源
      最近更新 更多