使用 Discord.js 向频道发送消息时遇到问题
我正在尝试制作一个机器人,一旦用户发送特定消息,就会向频道发送消息.我已经设法让它在机器人登录后发送一条消息,但是 client.on()
函数不会做任何事情.如果我做错了什么,请告诉我,提前谢谢!
I'm trying to make a bot that sends a message to a channel once a user sends a specific message. I've managed to make it send a message once the bot logs in, but the client.on()
function won't do anything. Please let me know if I'm doing something wrong, thank you in advance!
const { Client, Intents } = require("discord.js");
const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
client.login("<bot token>");
client.once("ready", () => {
console.log("Ready!");
channel.send("hello world"); //This works
const guild = client.guilds.cache.get("<server id>");
const channel = guild.channels.cache.get("<channel id>");
//This is the issue. Nothing happens when I send "!ping" in the server
client.on("message", message => {
if (message.content === "!ping") {
channel.send("pong");
}
});
});
推荐答案
您需要启用 GUILD_MESSAGES
Intent:
You need to enable the GUILD_MESSAGES
intent:
const client = new Client({
intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]
});
这将使您能够接收在公会中发送的消息的 MESSAGE_CREATE
事件.
This will enable you to receive the MESSAGE_CREATE
event for messages sent in guilds.
可以在 Discord 开发者文档中找到完整的意图列表.
A full list of intents can be found on the Discord developer docs.
此外,如果您使用 Discord.js v13,message
事件已被弃用,因为它已重命名为 messageCreate
.
Additionally, if you are using Discord.js v13, the message
event has been deprecated as it has been renamed to messageCreate
.
相关文章