magmastream 2.9.3-dev.2 → 2.9.3-dev.3
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/dist/index.d.ts +4 -1
- package/dist/statestorage/JsonQueue.js +1 -2
- package/dist/statestorage/MemoryQueue.js +1 -2
- package/dist/statestorage/RedisQueue.js +1 -2
- package/dist/structures/Manager.js +3 -2
- package/dist/structures/Node.js +1 -6
- package/dist/structures/Player.js +2 -0
- package/dist/structures/Utils.js +6 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1189,6 +1189,8 @@ interface Track {
|
|
|
1189
1189
|
pluginInfo: TrackPluginInfo;
|
|
1190
1190
|
/** Add your own data to the track. */
|
|
1191
1191
|
customData: Record<string, unknown>;
|
|
1192
|
+
/** If the track is autoplayed. */
|
|
1193
|
+
readonly isAutoplay: boolean;
|
|
1192
1194
|
}
|
|
1193
1195
|
/**
|
|
1194
1196
|
* Track Plugin Info
|
|
@@ -3471,9 +3473,10 @@ declare abstract class TrackUtils {
|
|
|
3471
3473
|
* Builds a Track from the raw data from Lavalink and a optional requester.
|
|
3472
3474
|
* @param data The raw data from Lavalink to build the Track from.
|
|
3473
3475
|
* @param requester The user who requested the track, if any.
|
|
3476
|
+
* @param isAutoPlay Whether the track is autoplayed. Defaults to false.
|
|
3474
3477
|
* @returns The built Track.
|
|
3475
3478
|
*/
|
|
3476
|
-
static build<T = AnyUser>(data: TrackData, requester?: T): Track;
|
|
3479
|
+
static build<T = AnyUser>(data: TrackData, requester?: T, isAutoplay?: boolean): Track;
|
|
3477
3480
|
/**
|
|
3478
3481
|
* Validates a search result.
|
|
3479
3482
|
* @param result The search result to validate.
|
|
@@ -56,8 +56,7 @@ class JsonQueue {
|
|
|
56
56
|
this.manager.emit(Enums_1.ManagerEventTypes.Debug, `[JSONQUEUE] Added ${tracks.length} track(s) to queue`);
|
|
57
57
|
if (this.manager.players.has(this.guildId) && this.manager.players.get(this.guildId).isAutoplay) {
|
|
58
58
|
if (!isArray) {
|
|
59
|
-
|
|
60
|
-
if (AutoplayUser && AutoplayUser.id === track.requester.id) {
|
|
59
|
+
if (track.isAutoplay) {
|
|
61
60
|
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
62
61
|
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
63
62
|
details: {
|
|
@@ -84,8 +84,7 @@ class MemoryQueue extends Array {
|
|
|
84
84
|
}
|
|
85
85
|
if (this.manager.players.has(this.guildId) && this.manager.players.get(this.guildId).isAutoplay) {
|
|
86
86
|
if (!isArray) {
|
|
87
|
-
|
|
88
|
-
if (AutoplayUser && AutoplayUser.id === track.requester.id) {
|
|
87
|
+
if (track.isAutoplay) {
|
|
89
88
|
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
90
89
|
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
91
90
|
details: {
|
|
@@ -81,8 +81,7 @@ class RedisQueue {
|
|
|
81
81
|
// Autoplay logic
|
|
82
82
|
if (this.manager.players.has(this.guildId) && this.manager.players.get(this.guildId).isAutoplay) {
|
|
83
83
|
if (!Array.isArray(track)) {
|
|
84
|
-
|
|
85
|
-
if (AutoplayUser && AutoplayUser.id === track.requester.id) {
|
|
84
|
+
if (track.isAutoplay) {
|
|
86
85
|
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, this.manager.players.get(this.guildId), {
|
|
87
86
|
changeType: Enums_1.PlayerStateEventTypes.QueueChange,
|
|
88
87
|
details: {
|
|
@@ -579,7 +579,7 @@ class Manager extends events_1.EventEmitter {
|
|
|
579
579
|
if (lavaPlayer.track) {
|
|
580
580
|
await player.queue.clear();
|
|
581
581
|
if (currentTrack) {
|
|
582
|
-
await player.queue.add(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester));
|
|
582
|
+
await player.queue.add(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester, currentTrack.isAutoplay));
|
|
583
583
|
}
|
|
584
584
|
const remainingQueue = queueTracks.filter((t) => t.uri !== lavaPlayer.track.info.uri);
|
|
585
585
|
if (remainingQueue.length > 0) {
|
|
@@ -774,7 +774,7 @@ class Manager extends events_1.EventEmitter {
|
|
|
774
774
|
if (lavaPlayer.track) {
|
|
775
775
|
await player.queue.clear();
|
|
776
776
|
if (currentTrack) {
|
|
777
|
-
await player.queue.add(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester));
|
|
777
|
+
await player.queue.add(Utils_1.TrackUtils.build(lavaPlayer.track, currentTrack.requester, currentTrack.isAutoplay));
|
|
778
778
|
}
|
|
779
779
|
const remainingQueue = queueTracks.filter((t) => t.uri !== lavaPlayer.track.info.uri);
|
|
780
780
|
if (remainingQueue.length > 0) {
|
|
@@ -1107,6 +1107,7 @@ class Manager extends events_1.EventEmitter {
|
|
|
1107
1107
|
}
|
|
1108
1108
|
this.emit(Enums_1.ManagerEventTypes.PlayerDisconnect, player, player.voiceChannelId);
|
|
1109
1109
|
player.voiceChannelId = null;
|
|
1110
|
+
player.state = Enums_1.StateTypes.Disconnected;
|
|
1110
1111
|
player.voiceState = Object.assign({});
|
|
1111
1112
|
if (player.options.pauseOnDisconnect) {
|
|
1112
1113
|
await player.pause(true);
|
package/dist/structures/Node.js
CHANGED
|
@@ -632,12 +632,7 @@ class Node {
|
|
|
632
632
|
player.playing = true;
|
|
633
633
|
player.paused = false;
|
|
634
634
|
this.manager.emit(Enums_1.ManagerEventTypes.TrackStart, player, track, payload);
|
|
635
|
-
|
|
636
|
-
if (!track.requester || !track.requester.id) {
|
|
637
|
-
console.log(track);
|
|
638
|
-
console.warn(`[WARN] Track requester missing for guild ${player.guildId}`, track);
|
|
639
|
-
}
|
|
640
|
-
if (AutoplayUser && track.requester && AutoplayUser.id === track.requester.id) {
|
|
635
|
+
if (track.isAutoplay) {
|
|
641
636
|
this.manager.emit(Enums_1.ManagerEventTypes.PlayerStateUpdate, oldPlayer, player, {
|
|
642
637
|
changeType: Enums_1.PlayerStateEventTypes.TrackChange,
|
|
643
638
|
details: {
|
|
@@ -1005,6 +1005,7 @@ class Player {
|
|
|
1005
1005
|
nowPlayingMessage: this.nowPlayingMessage,
|
|
1006
1006
|
isAutoplay: this.isAutoplay,
|
|
1007
1007
|
applyVolumeAsFilter: this.options.applyVolumeAsFilter,
|
|
1008
|
+
pauseOnDisconnect: this.options.pauseOnDisconnect,
|
|
1008
1009
|
};
|
|
1009
1010
|
// If force is true, destroy the existing player for the new guild
|
|
1010
1011
|
if (force && newPlayer) {
|
|
@@ -1015,6 +1016,7 @@ class Player {
|
|
|
1015
1016
|
newOptions.selfMute = newOptions.selfMute ?? oldPlayerProperties.selfMute;
|
|
1016
1017
|
newOptions.volume = newOptions.volume ?? oldPlayerProperties.volume;
|
|
1017
1018
|
newOptions.applyVolumeAsFilter = newOptions.applyVolumeAsFilter ?? oldPlayerProperties.applyVolumeAsFilter;
|
|
1019
|
+
newOptions.pauseOnDisconnect = newOptions.pauseOnDisconnect ?? oldPlayerProperties.pauseOnDisconnect;
|
|
1018
1020
|
// Deep clone the current player
|
|
1019
1021
|
const clonedPlayer = this.manager.create(newOptions);
|
|
1020
1022
|
// Connect the cloned player to the new voice channel
|
package/dist/structures/Utils.js
CHANGED
|
@@ -85,9 +85,10 @@ class TrackUtils {
|
|
|
85
85
|
* Builds a Track from the raw data from Lavalink and a optional requester.
|
|
86
86
|
* @param data The raw data from Lavalink to build the Track from.
|
|
87
87
|
* @param requester The user who requested the track, if any.
|
|
88
|
+
* @param isAutoPlay Whether the track is autoplayed. Defaults to false.
|
|
88
89
|
* @returns The built Track.
|
|
89
90
|
*/
|
|
90
|
-
static build(data, requester) {
|
|
91
|
+
static build(data, requester, isAutoplay = false) {
|
|
91
92
|
if (typeof data === "undefined") {
|
|
92
93
|
throw new MagmastreamError_1.MagmaStreamError({
|
|
93
94
|
code: Enums_1.MagmaStreamErrorCode.UTILS_TRACK_BUILD_FAILED,
|
|
@@ -138,6 +139,7 @@ class TrackUtils {
|
|
|
138
139
|
requester: requester,
|
|
139
140
|
pluginInfo: data.pluginInfo,
|
|
140
141
|
customData: {},
|
|
142
|
+
isAutoplay: isAutoplay,
|
|
141
143
|
};
|
|
142
144
|
track.displayThumbnail = track.displayThumbnail.bind(track);
|
|
143
145
|
if (this.trackPartial) {
|
|
@@ -560,7 +562,7 @@ class AutoPlayUtils {
|
|
|
560
562
|
context: { recommendedResult },
|
|
561
563
|
});
|
|
562
564
|
}
|
|
563
|
-
return [TrackUtils.build(data, requester)];
|
|
565
|
+
return [TrackUtils.build(data, requester, true)];
|
|
564
566
|
}
|
|
565
567
|
case Enums_1.LoadTypes.Short:
|
|
566
568
|
case Enums_1.LoadTypes.Search: {
|
|
@@ -572,7 +574,7 @@ class AutoPlayUtils {
|
|
|
572
574
|
context: { recommendedResult },
|
|
573
575
|
});
|
|
574
576
|
}
|
|
575
|
-
return data.map((d) => TrackUtils.build(d, requester));
|
|
577
|
+
return data.map((d) => TrackUtils.build(d, requester, true));
|
|
576
578
|
}
|
|
577
579
|
case Enums_1.LoadTypes.Album:
|
|
578
580
|
case Enums_1.LoadTypes.Artist:
|
|
@@ -582,7 +584,7 @@ class AutoPlayUtils {
|
|
|
582
584
|
case Enums_1.LoadTypes.Playlist: {
|
|
583
585
|
const data = recommendedResult.data;
|
|
584
586
|
if (this.isPlaylistRawData(data)) {
|
|
585
|
-
return data.tracks.map((d) => TrackUtils.build(d, requester));
|
|
587
|
+
return data.tracks.map((d) => TrackUtils.build(d, requester, true));
|
|
586
588
|
}
|
|
587
589
|
throw new MagmastreamError_1.MagmaStreamError({
|
|
588
590
|
code: Enums_1.MagmaStreamErrorCode.UTILS_AUTOPLAY_BUILD_FAILED,
|