我有一个创建语音通道的命令,如果该通道为空,则3秒钟后将其删除。因此,如果我创建了频道并且没有人加入,一切都会好起来的,但是,如果频道中有人的时间超过3秒并且离开后,则不会删除该频道。我认为问题出在这里的某个地方(在下面的代码中),但是我不知道如何解决它,有没有可能的方法来解决它?
bot.on(`voiceStateUpdate`, oldMember => {
deleteEmptyChannelAfterDelay(oldMember.voiceChannel);
});
function deleteEmptyChannelAfterDelay(voiceChannel, delayMS = 3000){
if(!voiceChannel) return;
if(voiceChannel.members.first()) return;
if(!voiceChannel.health) voiceChannel.health = 0;
voiceChannel.health += 1;
setTimeout(function(){
if(!voiceChannel) return;
if(voiceChannel.members.first()) return;
voiceChannel.health -= 1;
if(voiceChannel.health > 0) return;
voiceChannel.delete()
.catch(error => console.log(error));
}, delayMS);
}