我的不和谐机器人在 13.0.0 之后无法工作

Posted

技术标签:

【中文标题】我的不和谐机器人在 13.0.0 之后无法工作【英文标题】:My discord bot isn't working after 13.0.0 【发布时间】:2021-10-20 07:06:25 【问题描述】:

我正在试用 discord.js 版本 13.1.0,并且我正在遵循 discord 的关于如何设置机器人的指南。我已遵循所有步骤。当我运行机器人并将消息或命令发送到服务器时,控制台不会打印任何内容。有什么想法吗?

我的代码:

const  Client, Intents  = require("discord.js");

const client = new Client( intents: [Intents.FLAGS.GUILDS] );

client.once("ready", () => 
  console.log("Ready!");
);

client.on("interactionCreate", (interaction) => 
  console.log(interaction);
);

client.login(process.env.TOKEN);

【问题讨论】:

消息不会发出交互事件,你试过用messageCreate 这能回答你的问题吗? “message event listener not working properly”、“Having trouble sending a message to a channel with Discord.js”、“Discord bot is not replying to messages”。 【参考方案1】:

来自Discord Developer Portal:

交互是当用户使用应用程序命令或消息组件时,您的应用程序收到的消息。

应用程序命令是指一种特殊类型的命令,您必须向 Discord API 注册。要了解有关应用程序命令的更多信息,请阅读this。

从discord.js docs主页,如何注册一个应用(斜杠)命令:

const  REST  = require('@discordjs/rest');
const  Routes  = require('discord-api-types/v9');

const commands = [
  name: 'ping',
  description: 'Replies with Pong!'
]; 

const rest = new REST( version: '9' ).setToken('token');

(async () => 
  try 
    console.log('Started refreshing application (/) commands.');

    await rest.put(
      Routes.applicationGuildCommands(CLIENT_ID, GUILD_ID),
       body: commands ,
    );

    console.log('Successfully reloaded application (/) commands.');
   catch (error) 
    console.error(error);
  
)();

但是,如果您正在寻找一种方法来回复(或只是捕获)在 TextChannel 中发送的普通消息,那么您可能正在寻找 messageCreate 事件。

client.on("messageCreate", (message) => 
    console.log(message);
);

还要注意,要接收messageCreate 事件,您需要GUILD_MESSAGES 意图。

const client = new Discord.Client( intents: ["GUILDS", "GUILD_MESSAGES"] );

【讨论】:

谢谢。我改变了我的意图,它现在可以响应消息。

以上是关于我的不和谐机器人在 13.0.0 之后无法工作的主要内容,如果未能解决你的问题,请参考以下文章

截至今天,我的不和谐机器人无法找到我的成员

为啥当我输入 node main.js 时我的不和谐机器人无法上线?

试图制作一个命令页面来列出我的不和谐机器人上的所有命令,但不知道如何[关闭]

如何让我的不和谐机器人回复“跟进”消息

试图在 heroku 上托管我的不和谐机器人但我无法获得工人。请告诉我如何解决这个问题以及在哪里

如何让我的不和谐机器人只在聊天中工作?