diff --git a/package.json b/package.json index f52a5f5..e7ad909 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aicbot", - "version": "3.5.0", + "version": "3.5.1", "description": "Discord Bot for playing music", "main": "build/main.js", "scripts": { @@ -27,9 +27,9 @@ "@distube/file": "^1.0.1", "@distube/soundcloud": "^2.0.3", "@distube/spotify": "^2.0.2", - "@distube/youtube": "^1.0.2", + "@distube/youtube": "^1.0.4", "@distube/yt-dlp": "^2.0.1", - "@distube/ytdl-core": "^4.14.1", + "@distube/ytdl-core": "^4.14.3", "@distube/ytsr": "^2.0.4", "@eslint/js": "^9.8.0", "cross-env": "7.0.3", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab651fb..23d3d70 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -27,14 +27,14 @@ importers: specifier: ^2.0.2 version: 2.0.2(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3)) '@distube/youtube': - specifier: ^1.0.2 - version: 1.0.2(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3)) + specifier: ^1.0.4 + version: 1.0.4(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3)) '@distube/yt-dlp': specifier: ^2.0.1 version: 2.0.1(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3)) '@distube/ytdl-core': - specifier: ^4.14.1 - version: 4.14.1 + specifier: ^4.14.3 + version: 4.14.3 '@distube/ytsr': specifier: ^2.0.4 version: 2.0.4 @@ -212,8 +212,8 @@ packages: peerDependencies: distube: '5' - '@distube/youtube@1.0.2': - resolution: {integrity: sha512-vNOE7kGhg3pC87iqT3Q4eu+yTae8Nr3J1XDR67YMH9HAg1RsPjwM7TvfabZoGxIUiPl4ua/PG6s8Nfxf2U9cxQ==} + '@distube/youtube@1.0.4': + resolution: {integrity: sha512-7iQbtLSv4kpgiX2XtP28CB3z2kgaxw6F8+jNu1RztnW7ckPK3N/8Ayl1yh41YpbrRIHbNMzIVTwguYG0s2ZOuA==} peerDependencies: distube: '5' @@ -222,8 +222,8 @@ packages: peerDependencies: distube: '5' - '@distube/ytdl-core@4.14.1': - resolution: {integrity: sha512-ymtw6IZyyUAzE+9Nbnhxa7PcFkPI+5OF9ckJZtqnI7gHlEH41jew6Z/im7mOAhmmiy6ppYXoAL0GhJIGRSGR1g==} + '@distube/ytdl-core@4.14.3': + resolution: {integrity: sha512-z6i5EVGEuKhuvuRNyIqafBSs5aRA28HssnWehCRhEtYrxeFgXImfmpKTjUusHYU5vQt1swSVPVb2JCd22P0CPA==} engines: {node: '>=14.0'} '@distube/ytpl@1.2.1': @@ -1906,9 +1906,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@distube/youtube@1.0.2(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3))': + '@distube/youtube@1.0.4(distube@5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3))': dependencies: - '@distube/ytdl-core': 4.14.1 + '@distube/ytdl-core': 4.14.3 '@distube/ytpl': 1.2.1 '@distube/ytsr': 2.0.4 distube: 5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3) @@ -1921,7 +1921,7 @@ snapshots: distube: 5.0.2(@discordjs/voice@0.17.0(opusscript@0.1.1))(discord.js@14.15.3) undici: 6.19.5 - '@distube/ytdl-core@4.14.1': + '@distube/ytdl-core@4.14.3': dependencies: http-cookie-agent: 6.0.5(tough-cookie@4.1.4)(undici@5.28.4) m3u8stream: 0.8.6 diff --git a/src/audioplayer/AudioPlayersManager.ts b/src/audioplayer/AudioPlayersManager.ts index 7425af0..05e96bf 100644 --- a/src/audioplayer/AudioPlayersManager.ts +++ b/src/audioplayer/AudioPlayersManager.ts @@ -353,7 +353,8 @@ export class AudioPlayersManager { const player = this.playersManager.get(queue.id); if (player) { - player.embedBuilder.setLeaveOnEmpty(await getGuildOptionLeaveOnEmpty(queue.id)); + const leaveOnEmpty = await getGuildOptionLeaveOnEmpty(queue.id); + await player.setLeaveOnEmpty(leaveOnEmpty); await player.init(); } }) diff --git a/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts b/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts index 80b54ee..5ad0703 100644 --- a/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts +++ b/src/audioplayer/eventsHandlers/AudioPlayerEventVoiceChannelUpdate.ts @@ -10,13 +10,13 @@ export async function AudioPlayerEventVoiceChannelUpdate( const messagePlayer = client.audioPlayer.playersManager.get(oldState.guild.id); if (!messagePlayer) return; - if (!(await getGuildOptionLeaveOnEmpty(oldState.guild.id))) return; - - if (isVoiceChannelEmpty(oldState)) { - await messagePlayer.startAfkTimer(); - await client.audioPlayer.pause(oldState.guild); - } else if (!isVoiceChannelEmpty(newState) && messagePlayer.getState() === 'pause') { - await messagePlayer.stopAfkTimer(); - await client.audioPlayer.resume(oldState.guild); + if (await getGuildOptionLeaveOnEmpty(oldState.guild.id)) { + if (isVoiceChannelEmpty(oldState)) { + await messagePlayer.startAfkTimer(); + await client.audioPlayer.pause(oldState.guild); + } else if (!isVoiceChannelEmpty(newState) && messagePlayer.getState() === 'pause') { + await messagePlayer.stopAfkTimer(); + await client.audioPlayer.resume(oldState.guild); + } } } diff --git a/src/schemas/SchemaGuild.ts b/src/schemas/SchemaGuild.ts index f0b4ccd..96f95b2 100644 --- a/src/schemas/SchemaGuild.ts +++ b/src/schemas/SchemaGuild.ts @@ -43,7 +43,7 @@ export async function deleteGuildSettings(guildID: string): Promise { export async function getGuildOptionPrefix(guildID: string): Promise { const guild: GuildModelClass = await getOrCreateGuildSettings(guildID); - return guild.options.prefix; + return guild.options.prefix ?? ENV.BOT_COMMAND_PREFIX; } export async function setGuildOptionPrefix(guildID: string, prefix: string): Promise { @@ -60,5 +60,5 @@ export async function setGuildOptionLeaveOnEmpty(guildID: string, mode: boolean) export async function getGuildOptionLeaveOnEmpty(guildID: string): Promise { const guild: GuildModelClass = await getOrCreateGuildSettings(guildID); - return guild.options.leaveOnEmpty; + return guild.options.leaveOnEmpty ?? true; }