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

1 réponse


NicolasBAUD
Auteur
Réponse acceptée

C'est réglé il fallait remplacer:
async execute(client,message) {
Par
async execute(message, client) {