streamify-audio 2.1.3 → 2.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/discord/Manager.js +20 -6
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "streamify-audio",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.5",
|
|
4
4
|
"description": "Dual-mode audio library: HTTP streaming proxy + Discord player (Lavalink alternative). Supports YouTube, Spotify, SoundCloud with audio filters.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
package/src/discord/Manager.js
CHANGED
|
@@ -179,7 +179,9 @@ class Manager extends EventEmitter {
|
|
|
179
179
|
|
|
180
180
|
if (session.currentTrack) {
|
|
181
181
|
const track = deserializeTrack(session.currentTrack);
|
|
182
|
+
log.debug('MANAGER', `[RESTORE] Playing track: ${track.title}`);
|
|
182
183
|
await player.play(track);
|
|
184
|
+
log.debug('MANAGER', `[RESTORE] Track play() returned`);
|
|
183
185
|
|
|
184
186
|
if (session.positionMs > 0 && !track.isLive && options.seekToPosition !== false) {
|
|
185
187
|
try {
|
|
@@ -195,15 +197,27 @@ class Manager extends EventEmitter {
|
|
|
195
197
|
player.queue.addMany(tracks);
|
|
196
198
|
}
|
|
197
199
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
+
log.debug('MANAGER', `[RESTORE] Checking voice channel members`);
|
|
201
|
+
let memberCount = 0;
|
|
202
|
+
try {
|
|
203
|
+
const members = voiceChannel.members;
|
|
204
|
+
if (members) {
|
|
205
|
+
memberCount = members.filter(m => !m.user.bot).size;
|
|
206
|
+
}
|
|
207
|
+
} catch (e) {
|
|
208
|
+
log.debug('MANAGER', `[RESTORE] Error getting members: ${e.message}`);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
if (memberCount === 0 && player.autoPause.enabled) {
|
|
200
212
|
player.pause();
|
|
201
213
|
player._autoPaused = true;
|
|
202
214
|
log.info('MANAGER', `Session restored but auto-paused (empty channel)`);
|
|
203
215
|
}
|
|
204
216
|
|
|
205
|
-
|
|
206
|
-
|
|
217
|
+
log.debug('MANAGER', `[RESTORE] Emitting sessionRestored event`);
|
|
218
|
+
this.emit('sessionRestored', { guildId, voiceChannelId: player.voiceChannelId });
|
|
219
|
+
log.debug('MANAGER', `[RESTORE] Returning true`);
|
|
220
|
+
return true;
|
|
207
221
|
}
|
|
208
222
|
|
|
209
223
|
async restoreAllSessions(options = {}) {
|
|
@@ -214,8 +228,8 @@ class Manager extends EventEmitter {
|
|
|
214
228
|
|
|
215
229
|
for (const session of sessions) {
|
|
216
230
|
try {
|
|
217
|
-
const
|
|
218
|
-
if (
|
|
231
|
+
const success = await this.restoreSession(session.guildId, options);
|
|
232
|
+
if (success) {
|
|
219
233
|
restored.push({ guildId: session.guildId });
|
|
220
234
|
}
|
|
221
235
|
} catch (error) {
|