Ce que je fais

Bnjour ! Je développe actuellement un bot discord et depuis peu je rencontre un problème que je n'arrive pas à résoudre. Je serais très content si vous pouviez m'aider :)

const Discord = require("discord.js");
const client = new Discord.Client();
const config = require("./config.json");
const prefix = config.prefix;

client.login(config.token);

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`);
  client.user.setActivity('créer le futur').catch(console.error);
});
// Commandes
client.on('message', msg => {

  let command = msg.content.split(" ")[0];
  const args = msg.content.slice(config.prefix.length).split(/ +/);
  command = args.shift().toLowerCase();
  // ping / pong
  if (command === 'ping') {
    return msg.reply('Pong!');
  } else
  // Help
  if (command === 'help') {
    const embed = new Discord.RichEmbed()
      .setTitle("This is your title, it can hold 256 characters")
      .setAuthor("Author Name", "https://i.imgur.com/lm8s41J.png")

      .setColor(0x00AE86)
      .setDescription("This is the main body of text, it can hold 2048 characters.")
      .setFooter("This is the footer text, it can hold 2048 characters", http://i.imgur.com/w1vhFSR.png")
     .setImage("http://i.imgur.com/yVpymuV.png")
     .setThumbnail("http://i.imgur.com/p2qNFag.png")                                  

      .setTimestamp()
      .setURL("https://discord.js.org/#/docs/main/indev/class/RichEmbed")
      .addField("This is a field title, it can hold 256 characters",
      "This is a field value, it can hold 2048 characters.")

      .addField("Inline Field", "They can also be inline.", true)

      .addBlankField(true)
      .addField("Inline Field 3", "You can have a maximum of 25 fields.", true);

      msg.channel.send({embed});
  } else
  // clear
  if (command === 'clear') {
    const modRole = msg.guild.roles.find("name", "Admin-Z");
    if (!msg.member.roles.has(modRole.id))
      return msg.reply("Vous n'avez pas la permission d'utiliser cette commande.").catch (console.error)
    msg.delete();
    const deleteCount = parseInt(args [0], 10);

    if (!deleteCount || deleteCount < 2 || deleteCount > 100)
      return msg.reply("Merci d'indiquer un nombre de message à supprimer entre 2 et 100");
    async function clear() {
    const fetched = await msg.channel.fetchMessages({limit: deleteCount});
     msg.channel.bulkDelete (fetched).catch(console.error);
    }
    clear();
  }
});
// Commandes privées 
client.on ('message', msg => {
  // Hi
  if (msg.author.id !== config.ownerID) return;
  if (msg.content === 'hi') {
    return msg.channel.send('Bonjour maître');
  }
});

client.on ('message', msg => {

  let command = msg.content.split(" ")[0];
  const args = msg.content.slice(config.prefix.length).split(/ +/);
  command = args.shift().toLowerCase();
  // Say
  if (command === 'say') {
    const sayMessage = args.join (" ");
    msg.delete().catch(console.error);
    msg.channel.send(sayMessage);
  }
});

// Gestion des nouveaux membres                                                        client.on('guildMemberAdd', member => {
  member.createDM().then(channel => {
    return channel.send('Bienvenue dans le futur ' + member.displayName)
  }).catch(console.error)                                                                             })

client.on('guildMemberAdd', member => {
  let role = member.guild.roles.find("name", "Membres du Z")
    member.addRole(role).catch (console.error)
});
});

Ce que j'obtiens

Voilà mon code ci dessus comme vous l'avez sans doute remarqué à la fin je suis obligé de mettre deux fois "});" pour clore le bot sinon il me sort une erreur comme : invalid or unexpected token.
Voilà je vous remercie d'avoir lu mon message et si vous pouvez m'aider j'attends avec impatience votre réponse ! Merci :)

1 réponse


Bonjour,

J'ai copier le code dans VSCode et avec l'extension Prettier j'ai trouvé les erreurs de syntaxes:

  • Ligne 29: Il manquait un guillement devant l'url
  • Ligne 91: Le "})" était en trop
  • Dernière ligne: Le "})" était en trop

Code final:

const Discord = require('discord.js')
const client = new Discord.Client()
const config = require('./config.json')
const prefix = config.prefix

client.login(config.token)

client.on('ready', () => {
  console.log(`Logged in as ${client.user.tag}!`)
  client.user.setActivity('créer le futur').catch(console.error)
})
// Commandes
client.on('message', (msg) => {
  let command = msg.content.split(' ')[0]
  const args = msg.content.slice(config.prefix.length).split(/ +/)
  command = args.shift().toLowerCase()
  // ping / pong
  if (command === 'ping') {
    return msg.reply('Pong!')
  }
  // Help
  else if (command === 'help') {
    const embed = new Discord.RichEmbed()
      .setTitle('This is your title, it can hold 256 characters')
      .setAuthor('Author Name', 'https://i.imgur.com/lm8s41J.png')

      .setColor(0x00ae86)
      .setDescription('This is the main body of text, it can hold 2048 characters.')
      .setFooter('This is the footer text, it can hold 2048 characters', 'http://i.imgur.com/w1vhFSR.png')
      .setImage('http://i.imgur.com/yVpymuV.png')
      .setThumbnail('http://i.imgur.com/p2qNFag.png')

      .setTimestamp()
      .setURL('https://discord.js.org/#/docs/main/indev/class/RichEmbed')
      .addField(
        'This is a field title, it can hold 256 characters',
        'This is a field value, it can hold 2048 characters.'
      )

      .addField('Inline Field', 'They can also be inline.', true)

      .addBlankField(true)
      .addField('Inline Field 3', 'You can have a maximum of 25 fields.', true)

    msg.channel.send({ embed })
  }
  // clear
  else if (command === 'clear') {
    const modRole = msg.guild.roles.find('name', 'Admin-Z')
    if (!msg.member.roles.has(modRole.id))
      return msg.reply("Vous n'avez pas la permission d'utiliser cette commande.").catch(console.error)
    msg.delete()
    const deleteCount = parseInt(args[0], 10)

    if (!deleteCount || deleteCount < 2 || deleteCount > 100)
      return msg.reply("Merci d'indiquer un nombre de message à supprimer entre 2 et 100")
    async function clear() {
      const fetched = await msg.channel.fetchMessages({ limit: deleteCount })
      msg.channel.bulkDelete(fetched).catch(console.error)
    }
    clear()
  }
})
// Commandes privées
client.on('message', (msg) => {
  // Hi
  if (msg.author.id !== config.ownerID) return
  if (msg.content === 'hi') {
    return msg.channel.send('Bonjour maître')
  }
})

client.on('message', (msg) => {
  let command = msg.content.split(' ')[0]
  const args = msg.content.slice(config.prefix.length).split(/ +/)
  command = args.shift().toLowerCase()
  // Say
  if (command === 'say') {
    const sayMessage = args.join(' ')
    msg.delete().catch(console.error)
    msg.channel.send(sayMessage)
  }
})

// Gestion des nouveaux membres                                                        client.on('guildMemberAdd', member => {
member
  .createDM()
  .then((channel) => {
    return channel.send('Bienvenue dans le futur ' + member.displayName)
  })
  .catch(console.error)

client.on('guildMemberAdd', (member) => {
  let role = member.guild.roles.find('name', 'Membres du Z')
  member.addRole(role).catch(console.error)
})

J'épsère avoir aidé !