В настоящее время я пытаюсь создать бота для своего сервера, и одна из вещей, которые я хочу сделать, - это сделать так, чтобы он обнаруживал, когда пользователь присоединяется к любому голосовому каналу, и просто заставлял его отправлять сообщение. Я не могу лично понять это или найти какие-либо ответы в Интернете, поскольку большую часть времени люди обнаруживают это на основе команды, а я хочу, чтобы она была пассивной. Я знаю, что voiceStateUpdate был изменен, и некоторые вещи отличаются от того, как я видел, как другие использовали его в прошлом.

Если у кого-то есть решения, дайте мне знать, спасибо.

4
blanning 13 Окт 2020 в 22:58

1 ответ

Лучший ответ

В discord.js v.12 слушателем, который вам нужно использовать, действительно является voiceStateUpdate. У него есть параметры oldState и newState. С их помощью вы можете обнаружить ряд вещей, включая объект member.

Используя это, вы можете использовать что-то вроде этого, чтобы определить, подключает ли пользователь или бот голосовой канал или отключает его.

client.on('voiceStateUpdate', (oldState, newState) => {
    // check for bot
    if (oldState.member.user.bot) return;

    // the rest of your code
})
2
Worthy Alpaca 13 Окт 2020 в 20:22