magmastream 2.9.3-dev.24 → 2.9.3-dev.25

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.
@@ -544,11 +544,9 @@ class Manager extends events_1.EventEmitter {
544
544
  const hasGuild = this.resolveGuild(state.guildId);
545
545
  if (!hasGuild)
546
546
  continue;
547
- const lavaPlayer = await node.rest.getPlayer(state.guildId);
548
- if (!lavaPlayer) {
549
- await this.destroy(state.guildId);
547
+ const lavaPlayer = (await node.rest.get(`/v4/sessions/${state.node.sessionId}/players/${state.guildId}`));
548
+ if (!lavaPlayer)
550
549
  continue;
551
- }
552
550
  const playerOptions = {
553
551
  guildId: state.options.guildId,
554
552
  textChannelId: state.options.textChannelId,
@@ -561,7 +559,6 @@ class Manager extends events_1.EventEmitter {
561
559
  };
562
560
  const player = this.create(playerOptions);
563
561
  this.emit(Enums_1.ManagerEventTypes.Debug, `[MANAGER] Recreating player: ${state.guildId} from saved file: ${Utils_1.JSONUtils.safe(state.options, 2)}`);
564
- player.connect();
565
562
  if (state.isAutoplay) {
566
563
  const savedUser = state.data.clientUser;
567
564
  if (savedUser) {
@@ -636,7 +633,6 @@ class Manager extends events_1.EventEmitter {
636
633
  else {
637
634
  await player.queue.clearPrevious();
638
635
  }
639
- await player.pause(state.paused);
640
636
  if (state.trackRepeat)
641
637
  player.setTrackRepeat(true);
642
638
  if (state.queueRepeat)
@@ -682,6 +678,13 @@ class Manager extends events_1.EventEmitter {
682
678
  filterActions[filter](true);
683
679
  }
684
680
  }
681
+ player.connect();
682
+ if (lavaPlayer.track) {
683
+ await player.play(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester, currentTrack.isAutoplay), {
684
+ startTime: lavaPlayer.state.position ?? 0,
685
+ });
686
+ }
687
+ await player.pause(state.paused);
685
688
  try {
686
689
  await promises_1.default.rm(Utils_1.PlayerUtils.getPlayerStatePath(guildId), { force: true });
687
690
  this.emit(Enums_1.ManagerEventTypes.Debug, `[MANAGER] Deleted player state folder for guild ${guildId}`);
@@ -723,7 +726,7 @@ class Manager extends events_1.EventEmitter {
723
726
  const hasGuild = this.resolveGuild(guildId);
724
727
  if (!hasGuild)
725
728
  continue;
726
- const lavaPlayer = await node.rest.getPlayer(state.guildId);
729
+ const lavaPlayer = (await node.rest.get(`/v4/sessions/${state.node.sessionId}/players/${state.guildId}`));
727
730
  if (!lavaPlayer)
728
731
  await this.destroy(guildId);
729
732
  const playerOptions = {
@@ -738,7 +741,6 @@ class Manager extends events_1.EventEmitter {
738
741
  };
739
742
  const player = this.create(playerOptions);
740
743
  this.emit(Enums_1.ManagerEventTypes.Debug, `[MANAGER] Recreating player: ${guildId} from Redis`);
741
- player.connect();
742
744
  if (state.isAutoplay) {
743
745
  const savedUser = state.data.clientUser;
744
746
  if (savedUser) {
@@ -820,7 +822,6 @@ class Manager extends events_1.EventEmitter {
820
822
  else {
821
823
  await player.queue.clearPrevious();
822
824
  }
823
- await player.pause(state.paused);
824
825
  if (state.trackRepeat)
825
826
  player.setTrackRepeat(true);
826
827
  if (state.queueRepeat)
@@ -867,6 +868,13 @@ class Manager extends events_1.EventEmitter {
867
868
  filterActions[filter](true);
868
869
  }
869
870
  }
871
+ player.connect();
872
+ if (lavaPlayer.track) {
873
+ await player.play(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester, currentTrack.isAutoplay), {
874
+ startTime: lavaPlayer.state.position ?? 0,
875
+ });
876
+ }
877
+ await player.pause(state.paused);
870
878
  // After processing, delete the Redis key
871
879
  await this.redis.del(key);
872
880
  this.emit(Enums_1.ManagerEventTypes.Debug, `[MANAGER] Deleted player state from Redis: ${key}`);
@@ -487,10 +487,11 @@ class Node {
487
487
  case "ready":
488
488
  this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[NODE] Node message: ${Utils_1.JSONUtils.safe(payload, 2)}`);
489
489
  this.rest.setSessionId(payload.sessionId);
490
+ const hadPreviousSession = this.sessionId && this.sessionId !== payload.sessionId;
490
491
  this.sessionId = payload.sessionId;
491
492
  await this.updateSessionId();
492
493
  this.info = await this.fetchInfo();
493
- if (payload.resumed) {
494
+ if (payload.resumed || !hadPreviousSession) {
494
495
  await this.manager.loadPlayerStates(this.options.identifier);
495
496
  }
496
497
  if (this.options.enableSessionResumeOption) {
@@ -684,7 +684,6 @@ class PlayerUtils {
684
684
  const snapshot = {
685
685
  options: player.options,
686
686
  voiceState: player.voiceState,
687
- clusterId: player.clusterId,
688
687
  guildId: player.guildId,
689
688
  voiceChannelId: player.voiceChannelId ?? null,
690
689
  textChannelId: player.textChannelId ?? null,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "magmastream",
3
- "version": "2.9.3-dev.24",
3
+ "version": "2.9.3-dev.25",
4
4
  "description": "A user-friendly Lavalink client designed for NodeJS.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",