Ошибка типа: Не удается прочитать свойство «имеет» неопределенного // Discord.js

#javascript

Вопрос:

Итак, я создавал бота для своего сервера Discord. И я получил эту ошибку. Пожалуйста, помните, что я любитель :). Заранее спасибо, ценю это^^.

  const config = require('../config.js');
 module.exports = message => {
  let client = message.client;
  if (message.author.bot) return;
  if (!message.content.startsWith(config.prefix)) return;
  let command = message.content.split(' ')[0].slice(config.prefix.length);
 let params = message.content.split(' ').slice(1);
 let cmd;
 if (client.commands.has(command)) {
   cmd = client.commands.get(command);
 } else if (client.aliases.has(command)) {
   cmd = client.commands.get(client.aliases.get(command));
 };
 if (cmd) {
   if(!message.guild) {
     if(cmd.config.guildOnly === true) {
       return;
     };
   };
   if (cmd.config.permLevel) {
     if(cmd.config.permLevel === "BOT_OWNER") {
  if(!config.geliştiriciler.includes(message.author.id)) {
       message.channel.send(`Bu komutu kullanabilmek için `${cmd.config.permLevel}` yetkisine sahip olmalısın.`).then(msg => msg.delete({timeout: 3000}));
       return;
  }
     }
       if(!message.member.hasPermission(cmd.config.permLevel)) {
     message.channel.send(`Bu komutu kullanabilmek için `${cmd.config.permLevel}` yetkisine sahip olmalısın.`).then(msg => msg.delete({timeout: 3000}));
    return;
     };
   };
   cmd.run(client, message, params);
};
};
 

Комментарии:

1. В зависимости от того, какая строка выдает ошибку, либо client.commands или client.aliases есть undefined .

2. Это должно быть «клиент.команды».

Ответ №1:

Добавьте некоторые логические значения для проверки, не определен ли client.commands/client.aliases.

 if (client.commands amp;amp; client.commands.has(command)) {
      cmd = client.commands.get(command);
    } else if (client.aliases amp;amp; client.aliases.has(command)) {
      cmd = client.commands.get(client.aliases.get(command));
    };
 

Комментарии:

1. Похоже, это сработало! Никаких ошибок на консоли. Спасибо^^

2. Я рад помочь.

Ответ №2:

В строке № 7, пожалуйста, попробуйте это

 const cmd =
  message.client.commands.get(command) ||
  message.client.commands.find(
    (cmd) => cmd.aliases amp;amp; cmd.aliases.includes(command) // if you're also using aliases
  );

if (!command) return;
 

Комментарии:

1. Ошибка ссылки: cmd не определен, с этого момента я получил эту ошибку, поэтому извините, если я делаю что-то не так. Как я уже сказал, я новичок

2. Здесь все новички, братан. Я просто попросил вместо let cmd, пожалуйста, попробуйте использовать предоставленный мной код. Не уверен, что это сработает, но вы можете попробовать. Также console.log(cmd), чтобы проверить, что вы на самом деле получаете.