Как я могу настроить бота на самооглушение?

#discord.js

Вопрос:

Я хочу, чтобы мой бот присоединился к комнате и сам себя оглушил.

Мой код таков:

 client.on('ready', async () => {
    console.log(`Logged in ${client.user.tag}`)
    const voicechannel = client.channels.cache.get("869738167576723506");
    voicechannel.join();
    voicechannel.setSelfdeaf(true)
})
 

Ошибка, которую я получаю, заключается в следующем:

voicechannel.setSelfMute Ошибка типа: не является функцией

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

1. Это не может быть вашей текущей ошибкой. Этот код не отображается setSelfMute . Это показывает setSelfdeaf

2. Пожалуйста, не создавайте больше работы для других людей, вандализируя ваши посты. Публикуя в сети Stack Exchange, вы предоставляете не подлежащее отзыву право в соответствии с лицензией CC BY-SA 4.0 для Stack Exchange распространять этот контент (т. Е. Независимо от вашего будущего выбора). Согласно политике обмена стеками, распространяемой является невандализированная версия сообщения. Таким образом, любой вандализм будет пресечен. Если вы хотите узнать больше об удалении сообщения, пожалуйста, ознакомьтесь с разделом: Как работает удаление?

Ответ №1:

.setSelfMute() является ли метод voiceState не voiceChannel таким, чтобы использовать его, вам нужно получить состояние голоса после подключения

 client.on('ready', async () => {
    console.log(`Logged in ${client.user.tag}`)
    const voicechannel = client.channels.cache.get("869738167576723506");
    await voicechannel.join();
    voicechannel.guild.me.voice.setSelfdeaf(true)
})
 

дополнительные документы: https://discord.js.org/#/docs/main/stable/class/VoiceState?scrollTo=setSelfDeaf

Ответ №2:

Там нет никакой VoiceChannel.setSelfdeaf функции в discord.js как показано здесь. Используйте это вместо

 const voicechannel = client.channels.cache.get("...");
    await voicechannel.join();
voicechannel.guild.me.voice.setSelfDeaf(true)