Good evening I made a bot anti raid but when I mark the command &setup to setup the bot (if a perosnne delete or add a role etc) that is kick ban a derank but I get this error :
/home/container/languages/fr.js:233
list: (dms, dmss, e, i) => `${i 1}・**${e.name}**\n Activé: ${dmss.find(x => x.type === e.name).enabled ? ':white_check_mark:' : ':x:'}\n **Détecté en ${Math.ceil(numAverage(dms.filter(x => x.type === e.name).map(x => x.timeout)))}ms**\n Nombre d'alertes maximums: **${dmss.find(x => x.type === e.name).max}**\n Temps d'intervale: **${ms(dmss.find(x => x.type === e.name).time, { long: true })}**\n Sanctions: **${dmss.find(x => x.type === e.name).sanctions}**\n\n`
TypeError: Cannot read properties of undefined (reading 'enabled')
at Object.list (/home/container/languages/fr.js:233:111)
at /home/container/commands/admin/setup.js:178:66
at Array.map (<anonymous>)
at Object.execute (/home/container/commands/admin/setup.js:178:22)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
CodePudding user response:
And here is the code that makes crash I hesitated to put it because it is long
const { MessageEmbed, DiscordAPIError } = require('discord.js')
const client = require('../index')
const moment = require('moment')
const ms = require('ms')
const date = require('date-and-time');
function duration(mss) {
const sec = Math.floor((mss / 1000) % 60).toString()
const min = Math.floor((mss / (1000 * 60)) % 60).toString()
const hrs = Math.floor((mss / (1000 * 60 * 60)) % 60).toString()
return `${hrs.padStart(2, '') == "0" ? "" : `**${hrs.padStart(2, '')}** heures, `}${min.padStart(2, '') == "0" ? "" : `**${min.padStart(2, '')}** minutes et `}**${sec.padStart(2, '')}** secondes.`
}
function numAverage(a) {
var b = a.length,
c = 0, i;
for (i = 0; i < b; i ) {
c = Number(a[i]);
}
return c / b;
}
let status = {
'online': '<:online:761980233519464458>',
'idle': '<:idle:761980404881948673>',
'offline': '<:invisible:761980539359592508>',
'dnd': '<:dnd:761980584452292608>',
}
let activity = {
'PLAYING': 'Joue à',
'STREAMING': 'Streame',
'LISTENING': 'Écoute',
'WATCHING': 'Regarde',
}
module.exports = {
local: "fr_FR",
formatPermission: (p) => {
return p.replace("CREATE_INSTANT_INVITE", `Créer un invitations`)
.replace("ADMINISTRATOR", `Administrateur`)
.replace("KICK_MEMBERS", `Expulser des membres`)
.replace("BAN_MEMBERS", `Bannir des membres`)
.replace("MANAGE_CHANNELS", `Gérer les salons`)
.replace("MANAGE_GUILD", `Gérer le serveur`)
.replace("ADD_REACTIONS", `Ajouter des réactions`)
.replace("VIEW_AUDIT_LOG", `Voir les logs du serveur`)
.replace("PRIORITY_SPEAKER", `Voix prioritaire`)
.replace("STREAM", `Lancer un stream`)
.replace("VIEW_CHANNEL", `Lire les salons textuels & voir les salons vocaux`)
.replace("SEND_MESSAGES", `Envoyer des messages`)
.replace("SEND_TTS_MESSAGES", `Envoyer des messages TTS`)
.replace("MANAGE_MESSAGES", `Gérer les messages`)
.replace("EMBED_LINKS", `Intégrer des liens`)
.replace("ATTACH_FILES", `Joindre des fichiers`)
.replace("READ_MESSAGE_HISTORY", `Voir les anciens messages`)
.replace("MENTION_EVERYONE", `Mentionner @everyone, @here et tous les rôles`)
.replace("USE_EXTERNAL_EMOJIS", `$Utiliser des émojis externe`)
.replace("VIEW_GUILD_INSIGHTS", `Voir les analyses du serveur`)
.replace("CONNECT", `Se connecter`)
.replace("SPEAK", `Parler`)
.replace("MUTE_MEMBERS", `Couper les micros de membres`)
.replace("DEAFEN_MEMBERS", `Mettre en sourdine des membres`)
.replace("MOVE_MEMBERS", `Déplacer des membres`)
.replace("USE_VAD", `Utiliser la détection de la voix`)
.replace("CHANGE_NICKNAME", `Changer le pseudo`)
.replace("MANAGE_NICKNAMES", `Gérer les pseudos`)
.replace("MANAGE_ROLES", `Gérer les rôles`)
.replace("MANAGE_WEBHOOKS", `Gérer les webhooks`)
.replace("MANAGE_EMOJIS", `Gérer les émojis`)
},
error: (cmd, error, options) => {
if (error == "args") {
return `:x: | Usage incorrect !\nDescription: ${client.translator("fr")[client.commands.get(cmd.name).class][cmd.name].description}\nUsage: \`${options ? options.prefix : client.config.prefix}${cmd.name} ${client.translator("fr")[client.commands.get(cmd.name).class][cmd.name].usage}\`\nExemple: \`${options ? options.prefix : client.config.prefix}${cmd.name} ${client.translator("fr")[client.commands.get(cmd.name).class][cmd.name].example}\``
}
if (error == "userPermissions") {
return `:x: | Vous n'avez pas les permissions suffisantes pour faire cette commande. (${options.permissions.map(p => `\`${p}\``).join("")})`
}
if (error == "botPermissions") {
return `:x: | Je n'ai pas les permissions suffisantes pour faire cette commande. (${options.permissions.map(p => `\`${p}\``).join("")})`
}
if (error == "ownerOnly") {
return `:x: | Seulement ${options.owners.length > 1 ? options.owners.map(o => client.users.cache.get(o).tag).slice(0, -1).join(', ') ' et ' options.owners.map(o => client.users.cache.get(o).tag).slice(-1) : client.users.cache.get(options.owners[0]).tag} ${options.owners.length > 1 ? 'peuvent' : 'peut'} faire cette commande !`
}
if (error == "notInVoiceChannel") {
if (options && options.mentionUser) return `${options.user}, vous n'êtes pas dans un salon vocal.`
return `:x: | Vous n'êtes pas dans un salon vocal.`
}
if (error == "cooldown") {
return `