Bonjour, j'ai une erreur lorsque j'essaye de faire un débogage, c'est celle-ci:

Uncaught TypeError TypeError: Intents is not a constructor
at <anonymous> (c:\Users\moi\Desktop\NOM_DE_MON_DOSSIER\index.js:7:17)
at Module._compile (internal/modules/cjs/loader:1159:14)
at Module._extensions..js (internal/modules/cjs/loader:1213:10)
at Module.load (internal/modules/cjs/loader:1037:32)
at Module._load (internal/modules/cjs/loader:878:12)
at executeUserEntryPoint (internal/modules/run_main:81:12)
at <anonymous> (internal/main/run_main_module:23:47)

const Discord = require('discord.js');
const { Intents } = Discord;
const ytdl = require('ytdl-core');

const TOKEN = 'mon token';

const intents = new Intents(); // Créez une instance de l'objet Intents
intents.add(Intents.GUILDS_MESSAGES);
intents.add(Intents.GUILD_MEMBERS);
intents.add(Intents.GUILD_VOICE_STATES);

const client = new Discord.Client({ intents: intents });

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
});

client.on('message', message => {
  if (message.content.startsWith('!play')) {
    const searchString = message.content.split(' ').slice(1).join(' ');
    const url = `https://www.youtube.com/results?search_query=${encodeURIComponent(searchString)}`;
    ytdl.getInfo(url, (err, info) => {
      if (err) return console.error(err);
      const video = info.videos[0];
      const videoURL = `https://www.youtube.com/watch?v=${video.video_id}`;
      message.channel.send(`Playing: ${video.title}`);
      message.member.voice.channel.join().then(connection => {
        connection.play(ytdl(videoURL, { filter: 'audioonly' }));
      });      
      });
      }
      });

      client.login("mon token");

Ce que j'ai essayer de faire pour régler l'erreur:

  • npm install discord.js qui me permet de mettre à jours la bibliothèque discord.js
  • j'ai pourtant fais npm install @latest pour mettre à jours mon package.json

Quelqu'un à une idée s'il vous plait ? :(

1 réponse


Bonjour, le message d'erreur est assez explicite:

Intents is not a constructor

tu peux faire un log de Intents pour observer sa valeur mais à priori tu peux pas l'intancier.
Du coups ces cette ligne qui plante:

const intents = new Intents();

De mon côté pour la version 14.7.1 de discord.js Discord.Intents est undefined

Tu peux faire un:

console.log(Intents);

Pour voir ce qu'il contient.

A noter que le guide de discord.js à l'air de montrer une façon de paramètrer les intents en utilisant une classe GatewayIntentBits
de cette maniére la:

const { Client, GatewayIntentBits } = require('discord.js');

const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
        GatewayIntentBits.GuildMembers,
    ],
});

Voir Discord.js guide intents