#node.js #discord #discord.js #bots #message
Вопрос:
Этот код работал в прошлом, однако я обнаружил, что channel.send
он больше не работает, есть идеи, почему или как я должен отправлять сообщения?
client.on('ready', () =gt; { client.user.setActivity("I'm online!", { type: 'PLAYING' }); client.guilds.cache.forEach(guild =gt; { let channel = guild.channels.cache.get('CHANNELID') channel.send(`**Hello!**`); console.log('Bot is online!') }) });
Ошибка: TypeError: Cannot read property 'send' of undefined
Я понятия не имею, почему это больше не работает…
Комментарии:
1. Вы ездите на велосипеде по всем гильдиям…?
2. Как я должен это сделать?
3. Нет, вы делаете это, но вы не должны… выбирать гильдию
let guild = client.guilds.cache.get("id")
и выбирать канал сguild.channels.cache.get("id")
4. Я нашел способ заставить это работать.. в любом случае спасибо! 🙂
Ответ №1:
Это работает… не уверен, почему и хотел бы получить объяснение, почему предыдущий код печатал неопределенную ошибку, однако я не знаю.
Решение: client.channels.cache.get('ChannelID').send('Hello!');
client.on('ready', () =gt; { client.user.setActivity("I'm online", { type: 'PLAYING' }); client.channels.cache.get('ChannelID').send(`**Hello!**`); console.log('Bot is online!') });
Комментарии:
1. Вы получили
undefined
ошибку, потому что просматривали все гильдии, пытаясь получить доступ к определенному каналу. Если канал не найден, он выброситundefined
илиnull
, что означает, что канал не найден. Вот почему ваш второй код работает, а первый выдает ошибки ввода. Почему это работало раньше, я понятия не имею, этого не должно было быть, по крайней мере, я так думаю.