#javascript #discord.js
#язык JavaScript #discord.js
Вопрос:
Client.once('ready', () =gt; { console.log('Bot online') }); Client.on("message", message =gt; { if (message.channel.id = '915302302682873909') { const logChannel = Client.channels.cache.find(channel =gt; channel.id === "915302371519770664"); //send author logChannel.send(`${message.author}` ": ") .then(message =gt; console.log(`Sent message: ${message.content}`)); //send message content logChannel.send(message.content) .then(message =gt; console.log(`Sent message: ${message.content}`)); } })
Если я запускаю своего бота и отправляю сообщение, чтобы узнать, работает ли он, он отправляет `${message.author}` ": "
его так, как должен, но затем сразу же вылетает со словами TypeError: Cannot read properties of undefined (reading 'send')
Что также действительно странно, так это то, что когда-то (я не мог понять, когда) он отправляет и `${message.author}` ": "
то, и message.content
другое перед сбоем.
Комментарии:
1. Это означает, что канал не удалось найти. Вместо того, чтобы искать канал в кэше, попробуйте выбрать канал.
const logChannel = Client.channels.fetch('915302371519770664');
. Или, если вы не смогли найти канал, верните функцию.if(!logChannel) return;
2. Если я это сделаю, это говорит о том, что logChannel.send не является функцией
3. Когда вы выбираете новый канал, обязательно разрешите его обещание с
await
помощью асинхронной функции или сохраните канал в.then
функции обратного вызова4. Кроме того, почему вы используете шаблонные литералы для всего, кроме первого метода отправки?
5. Я искал другие решения раньше и пробовал некоторые вещи, но потом не удалил их
Ответ №1:
Это означает, что logChannel
значение не определено.
Если ваш идентификатор правильный, вы можете определить его следующим образом:
const logChannel = Client.channels.cache.get('915302371519770664') || Client.channels.fetch('915302371519770664');```