client.on('ready', async () => { let quran = require('./models/qqSchema'); // if(1==1) return; try { let qu = await quran.find({}); const player = createAudioPlayer(); let getRandomVid = YTPlayList[Math.floor(Math.random() * YTPlayList.length)]; const playlist = await play.playlist_info(getRandomVid, { incomplete: true }); await playlist.fetch() const videos = await playlist.all_videos(); let filtered = videos.filter(v => !d3aVid.includes(v.id) && v.durationInSec < 5400 && v.durationInSec > 300); let randomVideo = filtered[Math.floor(Math.random() * filtered.length)]; console.log(`${randomVideo.durationRaw} > ${randomVideo.url}`); let stream = await play.stream(randomVideo.url); let resource = createAudioResource(stream.stream, { inputType: stream.type }); //////////////////// for (let i in qu) { let roomid = qu[i].roomID; let room = client.channels.cache.get(roomid); // if (!room) continue; if (room) { console.log(`Playing Quran: ${room.guild.shardId} ` + room.guild.name) let connection = joinVoiceChannel({ channelId: room.id, guildId: room.guild.id, adapterCreator: room.guild.voiceAdapterCreator, }); connection.subscribe(player); connection.on(VoiceConnectionStatus.Disconnected, async (oldState, newState) => { console.log("DisconnectedQQ ?") try { await Promise.race([ entersState(connection, VoiceConnectionStatus.Signalling, 5_000), entersState(connection, VoiceConnectionStatus.Connecting, 5_000), ]); console.log("reconnectedQQ") } catch (error) { if (connection && connection.state.status != "destroyed") { console.log("destroyedQQ") connection.destroy(); } } }); player.play(resource); } } player.play(resource); let count = 1; player.on(AudioPlayerStatus.Idle, async () => { count++ console.log(count + " times") let getRandomVid = YTPlayList[Math.floor(Math.random() * YTPlayList.length)]; const playlist = await play.playlist_info(getRandomVid, { incomplete: true }); await playlist.fetch() const videos = await playlist.all_videos(); let filtered = videos.filter(v => !d3aVid.includes(v.id) && v.durationInSec < 5400 && v.durationInSec > 500); let randomVideo = filtered[Math.floor(Math.random() * filtered.length)]; console.log(`${randomVideo.durationRaw} > ${randomVideo.url}`); let stream = await play.stream(randomVideo.url); let resource = createAudioResource(stream.stream, { inputType: stream.type }); player.play(resource); }); } catch (er) { console.log("catchQur24Er " + er) } });