Bonjour,
Je rencontre un problème lors de la création de l'events messageCreate sur mon bot discord la variable message semble rester "undefined" et je reçois les retour:
Message reçu: undefined
Message ignoré : n'est pas dans un serveur
Voici mon fichier messageCreate.js
const Discord = require("discord.js");
module.exports = {
name: "messageCreate",
once: false,
/**
* @param {Discord.Client} client
* @param {Discord.Message} message
*/
async execute(client, message) {
try {
console.log("Message reçu:", message.content);
if (!message.guild) {
console.log("Message ignoré : n'est pas dans un serveur");
return;
}
if (message.author.bot) {
console.log("Message ignoré : envoyé par un bot");
return;
}
const { ChatFilter } = require("discord-chat-filter");
const chatFilter = new ChatFilter(message.content);
if (chatFilter.filterBadWord(["f*ck", "sh*t"])) {
console.log("Message supprimé : gros mot détecté");
await message.delete();
await message.channel.send("Pas de gros mots.");
}
if (chatFilter.filterLink()) {
console.log("Message supprimé : lien détecté");
await message.delete();
await message.channel.send("Pas de liens.");
}
if (chatFilter.filterMention()) {
console.log("Message supprimé : mention détectée");
await message.delete();
await message.channel.send("Pas de mentions.");
}
if (chatFilter.filterCaps()) {
console.log("Message supprimé : trop de majuscules");
await message.delete();
await message.channel.send("Trop de majuscules.");
}
} catch (error) {
console.error("Une erreur s'est produite lors de l'exécution de l'événement 'messageCreate':", error);
}
},
};
Je ne sais pas si le fichier index.js pourrait interféré
const fs = require("fs-extra");
const path = require("node:path");
const { Client, Collection, GatewayIntentBits, Partials } = require("discord.js");
// eslint-disable-next-line node/no-missing-require, node/no-unpublished-require
const { token } = require("./config/token.json");
const { QuickDB, MySQLDriver } = require("quick.db");
const jsonc = require("jsonc");
const Redis = require("ioredis");
process.on("unhandledRejection", (reason, promise, a) => {
console.log(reason, promise, a);
});
const config = jsonc.parse(fs.readFileSync(path.join(__dirname, "config/config.jsonc"), "utf8"))
const client = new Client({
intents: [
GatewayIntentBits.DirectMessages,
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.GuildMembers,
GatewayIntentBits.MessageContent
],
partials: [Partials.Channel],
presence: {
status: config.status?.status
}
});
[...]
const eventsPath = path.join(__dirname, "events");
const eventFiles = fs.readdirSync(eventsPath).filter((file) => file.endsWith(".js"));
for (const file of eventFiles) {
const filePath = path.join(eventsPath, file);
const event = require(filePath);
if (event.once) {
client.once(event.name, (...args) => event.execute(...args));
} else {
client.on(event.name, (...args) => event.execute(...args, client));
}
}
Merci à quiconque qui apportera sont aide
C'est réglé il fallait remplacer:
async execute(client,message) {
Par
async execute(message, client) {