Voila pour passer le temps je m'amuse à développer un bot Discord, pour mon serveur sauf que je rencontre un problème. En effet je suis en train de créer une commande warn, et je veux que dès que je lance mon bot, il regarde dans un fichier 'warns.json' avant de faire quoi que ce sois. Le problème c'est qu'il m'affiche toujours la même erreur et je ne comprends pas pourquoi, vous pouvez m'aider ?
const Discord = require('discord.js');
const bot = new Discord.Client();
const config = require('./config.json');
const fs = require('fs');
var prefix = '!';
const warns = JSON.parse(fs.readFileSync('./warns.json'))
bot.login(config.token);
bot.on('ready', function(){
console.log(bot.user.username + ' est connecté !');
bot.user.setActivity('une classe virtuelle', {type: "WATCHING"});
})
bot.on("message", function (message) {
if (!message.guild) return
let args = message.content.trim().split(/ +/g)
if (args[0].toLowerCase() === prefix + "warn") {
if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("Vous n'avez pas la permission d'utiliser cette commande")
let member = message.mentions.members.first()
if (!member) return message.channel.send("Veuillez mentionner un membre")
if (member.highestRole >= message.member.highestRole && message.author.id !== message.guild.ownerID) return message.channel.send("Vous ne pouvez pas warn ce membre")
let reason = args.slice(2).join(' ')
if (!reason) return message.channel.send("Veuillez indiquer une raison")
if (!warns[member.id]) {
warns[member.id] = []
}
warns[member.id].unshift({
reason: reason,
date: Date.now(),
mod: message.author.id
})
fs.writeFileSync('./warns.json', JSON.stringify(warns))
message.channel.send(member + " a été warn pour " + reason + " :white_check_mark:")
}
if (args[0].toLowerCase() === prefix + "infractions") {
if (!message.member.hasPermission('MANAGE_MESSAGES')) return message.channel.send("Vous n'avez pas la permission d'utiliser cette commande")
let member = message.mentions.members.first()
if (!member) return message.channel.send("Veuillez mentionner un membre")
let embed = new Discord.MessageEmbed()
.setAuthor(member.user.username, member.user.displayAvatarURL)
.addField('10 derniers warns', ((warns[member.id] && warns[member.id].length) ? warns[member.id].slice(0, 10).map(e => e.reason) : "Ce membre n'a aucun warns"))
.setTimestamp()
message.channel.send(embed)
}
})
Et voici le message d'erreur :
Waiting for the debugger to disError: ENOENT: no such file or directory, open './warns.json'
at Object.openSync (fs.js:457:3)
at Object.readFileSync (fs.js:359:35)
at Object.<anonymous> (c:\Users\Ugo\Bot-Discord\Amae\index.js:8:29)
at Module._compile (internal/modules/cjs/loader.js:1155:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1178:10)
at Module.load (internal/modules/cjs/loader.js:1002:32)
at Function.Module._load (internal/modules/cjs/loader.js:901:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
at internal/main/run_main_module.js:18:47
J'ai l'impression que sa vient d'une librairie (fs) mais j'en suis pas sur et je n'arrive pas à corriger le problème
- Edité par Swynn 31 mars 2020 à 10:15:31
ENOENT: no such file or directory, open '...'
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.