Discord.js: Resolving "message.content doesn't have any value" Issue
In Discord.js versions 12 and later, the message.content property initially has an empty string value when receiving a message event. This occurs due to a change in Discord's API requirements, where message content is no longer provided unless requested explicitly.
Solution
To retrieve the message content, enable the Message Content intent on your developer portal:
Code Modifications
In Discord.js versions 13 and later:
const { Client, GatewayIntentBits, Partials } = require('discord.js'); const client = new Client({ intents: [ GatewayIntentBits.DirectMessages, GatewayIntentBits.Guilds, GatewayIntentBits.GuildBans, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent, ], partials: [Partials.Channel], });
In Discord.js version 12:
const { Client, Intents } = require('discord.js'); const client = new Client({ intents: [ Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES, Intents.FLAGS.MESSAGE_CONTENT, ], });
Don't forget to use the messageCreate event instead of message for message handling:
client.on('messageCreate', (message) => { // Your message handling logic goes here });
By enabling the Message Content intent and modifying your code accordingly, you can now access the message content within your Discord.js event handlers.
The above is the detailed content of Why is `message.content` empty in my Discord.js bot, and how do I fix it?. For more information, please follow other related articles on the PHP Chinese website!