@Hotiton

Ошибка Cannot read properties of null (reading 'id'), что сделать?

Часть кода выглядит так
const channelId = channel.id;
	const guildId = channel.guild.id;
	const adapterCreator = channel.guild.voiceAdapterCreator;

	if (channelId || guildId || adapterCreator) {

		if (command === 'join') {
			const connection = joinVoiceChannel({
				channelId,
				guildId,
				adapterCreator
			});
			message.channel.send(`Already here !`);
		}
	} else {
		message.channel.send(`Please log into the voice channel`);
		return;
	}
});
, и когда я захожу в голосовой канал, то всё работает, но мне хотелось добавить, если пользователя нет в голосовом канале, то отправляется "Please log into the voice channel". И всё бы хорошо, но когда я ввожу команду не в голосовом канале, то появляется ошибка
TypeError: Cannot read properties of null (reading 'id')
. Как исправить ?
  • Вопрос задан
  • 567 просмотров
Решения вопроса 1
bingo347
@bingo347 Куратор тега Node.js
Crazy on performance...
Если правильно помню, то channel.guild существует только если канал, в котором активирован бот находится на каком-либо сервере.
Соответственно оно будет null, если например активировать бота, написав команду ему в личку.

Можно так:
const channelId = channel.id;
const guildId = channel.guild?.id;
const adapterCreator = channel.guild?.voiceAdapterCreator;

if (!channelId || !guildId || !adapterCreator) {
  message.channel.send(`Please log into the voice channel`);
  return;
}

if (command === 'join') {
  const connection = joinVoiceChannel({
    channelId,
    guildId,
    adapterCreator
  });
  message.channel.send(`Already here !`);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы