@ramkrishna-js/framelink 1.0.1 → 1.0.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/README.md CHANGED
@@ -1,8 +1,7 @@
1
1
  <div align="center">
2
+ <img src="https://capsule-render.vercel.app/render?type=waving&color=gradient&height=200&section=header&text=FrameLink&fontSize=80" />
2
3
 
3
- <img src="https://capsule-render.vercel.app/render?type=waving&color=auto&height=250&section=header&text=FrameLink&fontSize=90&animation=fadeIn&fontAlignY=38" />
4
-
5
- **🚀 A lightweight, robust, and plugin-ready Lavalink client (v3 & v4) for Node.js.**
4
+ **A lightweight, robust, and plugin-ready Lavalink client (v3 & v4) for Node.js.**
6
5
 
7
6
  [![npm version](https://img.shields.io/npm/v/@ramkrishna-js/framelink.svg?style=flat-square)](https://www.npmjs.com/package/@ramkrishna-js/framelink)
8
7
  [![npm downloads](https://img.shields.io/npm/dm/@ramkrishna-js/framelink.svg?style=flat-square)](https://www.npmjs.com/package/@ramkrishna-js/framelink)
@@ -17,17 +16,18 @@
17
16
 
18
17
  <hr />
19
18
 
20
- ## Features
21
- - 🎵 **Universal Support:** Seamlessly works with Lavalink v3 and v4.
22
- - 🎼 **Multi-Platform:** Built-in support for YouTube, Spotify, Apple Music, Deezer, and more.
23
- - 🚀 **Performance:** Optimized for speed with minimal memory footprint.
24
- - 🔄 **Smart Queue:** Advanced queue system with automated autoplay logic.
25
- - 🧩 **Extensible:** Robust plugin system to customize your experience.
26
- - 🛡️ **Type-Safe:** Written entirely in TypeScript for a superior DX.
19
+ ## Features
20
+ - **Universal Support:** Seamlessly works with Lavalink v3 and v4.
21
+ - **Multi-Platform:** Built-in support for YouTube, Spotify, Apple Music, Deezer, and more.
22
+ - **Performance:** Optimized for speed with minimal memory footprint.
23
+ - **Advanced Queue:** Smart queue system with shuffling, moving, and track manipulation.
24
+ - **Aggressive Autoplay:** Intelligent recommendation system for continuous playback.
25
+ - **Extensible:** Robust plugin system to customize your experience.
26
+ - **Type-Safe:** Written entirely in TypeScript for a superior DX.
27
27
 
28
28
  <hr />
29
29
 
30
- ## 📦 Installation
30
+ ## Installation
31
31
 
32
32
  ```bash
33
33
  npm install @ramkrishna-js/framelink
@@ -35,7 +35,7 @@ npm install @ramkrishna-js/framelink
35
35
 
36
36
  <hr />
37
37
 
38
- ## ╰┈1️⃣ Quick Start
38
+ ## Quick Start
39
39
 
40
40
  ### Initializing the Manager
41
41
 
@@ -79,7 +79,7 @@ player.play();
79
79
 
80
80
  <hr />
81
81
 
82
- ## ╰┈2️⃣ Event Handling
82
+ ## Event Handling
83
83
 
84
84
  ```typescript
85
85
  manager.on('nodeConnect', (node) => {
@@ -97,7 +97,39 @@ manager.on('queueEnd', (player) => {
97
97
 
98
98
  <hr />
99
99
 
100
- ## ╰┈3️⃣ Supported Platforms
100
+ ## Player & Queue Controls
101
+
102
+ FrameLink provides comprehensive control over your music session:
103
+
104
+ ### Player Methods
105
+ - `player.pause(state: boolean)` - Pause or resume playback.
106
+ - `player.resume()` - Alias for `player.pause(false)`.
107
+ - `player.skip()` - Skip the current track.
108
+ - `player.previous()` - Play the previous track.
109
+ - `player.seek(position: number)` - Seek to a specific position (ms).
110
+ - `player.setVolume(volume: number)` - Set the player volume (0-1000).
111
+ - `player.setFilters(filters: any)` - Apply Lavalink filters.
112
+ - `player.connect(options)` - Join a voice channel.
113
+ - `player.disconnect()` - Leave a voice channel.
114
+
115
+ ### Queue Methods
116
+ - `player.queue.add(track | track[])` - Add tracks to the queue.
117
+ - `player.queue.remove(index)` - Remove a track by index.
118
+ - `player.queue.move(from, to)` - Move a track within the queue.
119
+ - `player.queue.shuffle()` - Randomize the queue order.
120
+ - `player.queue.clear()` - Clear all tracks from the queue.
121
+ - `player.queue.skipTo(index)` - Skip directly to a specific track index.
122
+ - `player.queue.removeDuplicates()` - Remove duplicate tracks from the queue.
123
+
124
+ <hr />
125
+
126
+ ## Aggressive Autoplay
127
+
128
+ Enable `autoplay: true` in your player options to automatically play related tracks when the queue ends. FrameLink uses an aggressive strategy to ensure the music never stops by fetching recommendations based on the previous track's source.
129
+
130
+ <hr />
131
+
132
+ ## Supported Platforms
101
133
 
102
134
  FrameLink supports any platform compatible with Lavalink and its plugins (like LavaSrc):
103
135
  - YouTube / YouTube Music
@@ -110,7 +142,7 @@ FrameLink supports any platform compatible with Lavalink and its plugins (like L
110
142
 
111
143
  <hr />
112
144
 
113
- ## 🧩 Plugins
145
+ ## Plugins
114
146
 
115
147
  FrameLink is built with extensibility in mind. You can easily create and load plugins to extend the manager's functionality.
116
148
 
@@ -134,7 +166,7 @@ const manager = new LavalinkManager({
134
166
 
135
167
  <hr />
136
168
 
137
- ## 🤝 Contributing
169
+ ## Contributing
138
170
 
139
171
  Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
140
172
 
@@ -142,7 +174,7 @@ Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more details.
142
174
 
143
175
  <hr />
144
176
 
145
- ## 📜 License
177
+ ## License
146
178
 
147
179
  Distributed under the MIT License. See [LICENSE](LICENSE) for more information.
148
180
 
@@ -1 +1 @@
1
- {"version":3,"file":"LavalinkManager.d.ts","sourceRoot":"","sources":["../../src/structures/LavalinkManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,YAAY;IACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAM;gBAElB,OAAO,EAAE,sBAAsB;IAWpC,IAAI,CAAC,MAAM,EAAE,MAAM;IAOnB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY;IAO9C,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAS5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASvC,WAAW,IAAI,YAAY,GAAG,SAAS;IAS9C;;;;;OAKG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAa;IAkCtF,iBAAiB,CAAC,MAAM,EAAE,GAAG;CA8C7C"}
1
+ {"version":3,"file":"LavalinkManager.d.ts","sourceRoot":"","sources":["../../src/structures/LavalinkManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,sBAAsB;IACnC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,eAAgB,SAAQ,YAAY;IACtC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,OAAO,EAAE,sBAAsB,CAAC;IAChC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC7B,OAAO,EAAE,MAAM,EAAE,CAAM;gBAElB,OAAO,EAAE,sBAAsB;IAWpC,IAAI,CAAC,MAAM,EAAE,MAAM;IAOnB,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY;IAO9C,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM;IAS5C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IASvC,WAAW,IAAI,YAAY,GAAG,SAAS;IAS9C;;;;;OAKG;IACU,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAa;IAyCtF,iBAAiB,CAAC,MAAM,EAAE,GAAG;CA8C7C"}
@@ -77,15 +77,22 @@ class LavalinkManager extends events_1.EventEmitter {
77
77
  ? query
78
78
  : `${prefixes[source] || source + 'search:'}${query}`;
79
79
  const res = await node.loadTracks(identifier);
80
- // Add helper properties to tracks
81
- if (res.tracks) {
82
- res.tracks = res.tracks.map((track) => ({
83
- ...track,
84
- displayThumbnail: track.info.uri.includes('youtube.com')
85
- ? `https://img.youtube.com/vi/${track.info.identifier}/hqdefault.jpg`
86
- : track.info.artworkUrl || null
87
- }));
80
+ let tracks = [];
81
+ if (res.loadType === 'search' || res.loadType === 'SEARCH_RESULT') {
82
+ tracks = res.data || res.tracks || [];
88
83
  }
84
+ else if (res.loadType === 'playlist' || res.loadType === 'PLAYLIST_LOADED') {
85
+ tracks = res.data?.tracks || res.tracks || [];
86
+ }
87
+ else if (res.loadType === 'track' || res.loadType === 'TRACK_LOADED') {
88
+ tracks = [res.data || res.tracks[0]];
89
+ }
90
+ res.tracks = tracks.map((track) => ({
91
+ ...track,
92
+ displayThumbnail: track.info?.uri?.includes('youtube.com')
93
+ ? `https://img.youtube.com/vi/${track.info.identifier}/hqdefault.jpg`
94
+ : track.info?.artworkUrl || null
95
+ }));
89
96
  return res;
90
97
  }
91
98
  // Handle voice state updates from Discord
@@ -1 +1 @@
1
- {"version":3,"file":"LavalinkManager.js","sourceRoot":"","sources":["../../src/structures/LavalinkManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LavalinkManager.js","sourceRoot":"","sources":["../../src/structures/LavalinkManager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"LavalinkNode.d.ts","sourceRoot":"","sources":["../../src/structures/LavalinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAChC,KAAK,EAAE,GAAG,CAAM;IAChB,SAAS,EAAE,OAAO,CAAS;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAE3B,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;IASnD,OAAO;IA8BP,IAAI,CAAC,OAAO,EAAE,GAAG;IAKX,UAAU,CAAC,UAAU,EAAE,MAAM;IAoB1C,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,WAAW;IA4CnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAKlB"}
1
+ {"version":3,"file":"LavalinkNode.d.ts","sourceRoot":"","sources":["../../src/structures/LavalinkNode.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,IAAI,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,WAAW;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,YAAY;IACd,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAChC,KAAK,EAAE,GAAG,CAAM;IAChB,SAAS,EAAE,OAAO,CAAS;IAC3B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;gBAE3B,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW;IASnD,OAAO;IA8BP,IAAI,CAAC,OAAO,EAAE,GAAG;IAKX,UAAU,CAAC,UAAU,EAAE,MAAM;IAoB1C,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,WAAW;IA8CnB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAKlB"}
@@ -113,9 +113,10 @@ class LavalinkNode {
113
113
  if (player.repeatMode === 'queue' && player.queue.current) {
114
114
  player.queue.add(player.queue.current);
115
115
  }
116
- // Auto-play next track in queue or trigger autoplay
117
- if (player.queue.tracks.length > 0) {
118
- player.play();
116
+ // Transition to next track
117
+ const nextTrack = player.queue.next();
118
+ if (nextTrack) {
119
+ player.play(nextTrack);
119
120
  }
120
121
  else if (player.autoplay) {
121
122
  player.triggerAutoplay();
@@ -1 +1 @@
1
- {"version":3,"file":"LavalinkNode.js","sourceRoot":"","sources":["../../src/structures/LavalinkNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LavalinkNode.js","sourceRoot":"","sources":["../../src/structures/LavalinkNode.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ export declare class Player {
20
20
  paused: boolean;
21
21
  isPlaying: boolean;
22
22
  timestamp: number;
23
+ volume: number;
23
24
  voiceUpdateState: {
24
25
  sessionId?: string;
25
26
  event?: any;
@@ -34,7 +35,34 @@ export declare class Player {
34
35
  setBassboost(value: boolean): this;
35
36
  setNightcore(value: boolean): this;
36
37
  play(track?: string | any, options?: any): Promise<void>;
38
+ skip(): this;
39
+ previous(): this;
40
+ pause(state?: boolean): this;
41
+ resume(): this;
42
+ seek(position: number): this;
37
43
  triggerAutoplay(): Promise<void>;
44
+ connect(options: {
45
+ voiceChannelId: string;
46
+ textChannelId?: string;
47
+ selfDeaf?: boolean;
48
+ selfMute?: boolean;
49
+ }): this;
50
+ disconnect(): this;
51
+ toJSON(): {
52
+ guildId: string;
53
+ voiceChannelId: string | null;
54
+ textChannelId: string | null;
55
+ paused: boolean;
56
+ isPlaying: boolean;
57
+ volume: number;
58
+ repeatMode: RepeatMode;
59
+ autoplay: boolean;
60
+ queue: {
61
+ current: any;
62
+ tracks: any[];
63
+ previous: any[];
64
+ };
65
+ };
38
66
  stop(): void;
39
67
  setVolume(volume: number): void;
40
68
  update(state: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD,qBAAa,MAAM;IACR,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,SAAS,EAAE,MAAM,CAAK;IACtB,gBAAgB,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAM;IAC3D,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAS;IAC1B,UAAU,EAAE,UAAU,CAAS;IAC/B,OAAO,EAAE,GAAG,CAAM;gBAEb,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAUzE,aAAa,CAAC,IAAI,EAAE,UAAU;IAK9B,UAAU,CAAC,OAAO,EAAE,GAAG;IAUvB,YAAY,CAAC,KAAK,EAAE,OAAO;IAgB3B,YAAY,CAAC,KAAK,EAAE,OAAO;IAWrB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,GAAQ;IA4B5C,eAAe;IAgCrB,IAAI;IAQJ,SAAS,CAAC,MAAM,EAAE,MAAM;IAQxB,MAAM,CAAC,KAAK,EAAE,GAAG;IAKjB,OAAO;CAQjB"}
1
+ {"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD,qBAAa,MAAM;IACR,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IACrC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IACpC,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,SAAS,EAAE,MAAM,CAAK;IACtB,MAAM,EAAE,MAAM,CAAO;IACrB,gBAAgB,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAE,CAAM;IAC3D,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAS;IAC1B,UAAU,EAAE,UAAU,CAAS;IAC/B,OAAO,EAAE,GAAG,CAAM;gBAEb,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa;IAUzE,aAAa,CAAC,IAAI,EAAE,UAAU;IAK9B,UAAU,CAAC,OAAO,EAAE,GAAG;IAUvB,YAAY,CAAC,KAAK,EAAE,OAAO;IAgB3B,YAAY,CAAC,KAAK,EAAE,OAAO;IAWrB,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,EAAE,OAAO,GAAE,GAAQ;IAgClD,IAAI;IAQJ,QAAQ;IASR,KAAK,CAAC,KAAK,GAAE,OAAc;IAU3B,MAAM;IAIN,IAAI,CAAC,QAAQ,EAAE,MAAM;IASf,eAAe;IA8BrB,OAAO,CAAC,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE;IAgB3G,UAAU;IAcV,MAAM;;;;;;;;;;;;;;;IAcN,IAAI;IAQJ,SAAS,CAAC,MAAM,EAAE,MAAM;IASxB,MAAM,CAAC,KAAK,EAAE,GAAG;IAKjB,OAAO;CAQjB"}
@@ -10,6 +10,7 @@ class Player {
10
10
  this.paused = false;
11
11
  this.isPlaying = false;
12
12
  this.timestamp = 0;
13
+ this.volume = 100;
13
14
  this.voiceUpdateState = {};
14
15
  this.autoplay = false;
15
16
  this.repeatMode = 'off';
@@ -66,9 +67,12 @@ class Player {
66
67
  if (!track && !this.queue.current && this.queue.tracks.length > 0) {
67
68
  const next = this.queue.next();
68
69
  if (next) {
69
- track = next.track; // Assuming object has .track
70
+ track = next;
70
71
  }
71
72
  }
73
+ if (!track && this.queue.current) {
74
+ track = this.queue.current;
75
+ }
72
76
  if (!track) {
73
77
  if (this.autoplay) {
74
78
  return this.triggerAutoplay();
@@ -76,7 +80,7 @@ class Player {
76
80
  return;
77
81
  }
78
82
  this.isPlaying = true;
79
- // Handle if track is an object (Lavalink track object) or string
83
+ this.queue.current = track;
80
84
  const trackString = typeof track === 'string' ? track : track.track;
81
85
  this.node.send({
82
86
  op: 'play',
@@ -85,35 +89,109 @@ class Player {
85
89
  ...options
86
90
  });
87
91
  }
92
+ skip() {
93
+ this.node.send({
94
+ op: 'stop',
95
+ guildId: this.guildId
96
+ });
97
+ return this;
98
+ }
99
+ previous() {
100
+ if (this.queue.previous.length === 0)
101
+ return this;
102
+ const prev = this.queue.previous.pop();
103
+ if (this.queue.current)
104
+ this.queue.tracks.unshift(this.queue.current);
105
+ this.queue.current = prev;
106
+ this.play(prev);
107
+ return this;
108
+ }
109
+ pause(state = true) {
110
+ this.paused = state;
111
+ this.node.send({
112
+ op: 'pause',
113
+ guildId: this.guildId,
114
+ pause: state
115
+ });
116
+ return this;
117
+ }
118
+ resume() {
119
+ return this.pause(false);
120
+ }
121
+ seek(position) {
122
+ this.node.send({
123
+ op: 'seek',
124
+ guildId: this.guildId,
125
+ position
126
+ });
127
+ return this;
128
+ }
88
129
  async triggerAutoplay() {
89
- const previousTrack = this.queue.previous[this.queue.previous.length - 1];
130
+ const previousTrack = this.queue.previous[this.queue.previous.length - 1] || this.queue.current;
90
131
  if (!previousTrack)
91
- return; // Cannot autoplay without seed
92
- // Use previous track URI or ID for recommendation
93
- // Simple implementation: Search for related tracks or a mix
94
- // Ideally, this uses a specific source feature like "spotify:seed_tracks" or similar via a plugin
95
- // For general usage:
132
+ return;
96
133
  const source = previousTrack.info?.sourceName;
97
134
  let identifier = '';
98
- if (source === 'spotify' || source === 'applemusic' || source === 'deezer') {
99
- // If using Lavasrc, we might get recommendations.
100
- // Common pattern: `sprec:${trackId}` or similar if plugin supports it.
101
- // Fallback to "related" search on YouTube if all else fails?
102
- identifier = `ytsearch:${previousTrack.info.author} - ${previousTrack.info.title}`;
135
+ if (source === 'youtube' || source === 'youtube music') {
136
+ identifier = `https://www.youtube.com/watch?v=${previousTrack.info.identifier}&list=RD${previousTrack.info.identifier}`;
103
137
  }
104
138
  else {
105
139
  identifier = `ytmsearch:${previousTrack.info.author} - ${previousTrack.info.title}`;
106
140
  }
107
141
  const res = await this.node.loadTracks(identifier);
108
142
  if (res && res.tracks && res.tracks.length > 0) {
109
- // Filter out current track?
110
- const nextTrack = res.tracks[0].track === previousTrack.track ? res.tracks[1] : res.tracks[0];
143
+ // Find first track that isn't already in history or queue
144
+ const nextTrack = res.tracks.find((t) => t.track !== previousTrack.track &&
145
+ !this.queue.previous.some(p => p.track === t.track) &&
146
+ !this.queue.tracks.some(q => q.track === t.track)) || res.tracks[0];
111
147
  if (nextTrack) {
112
148
  this.queue.add(nextTrack);
113
- this.play();
149
+ if (!this.isPlaying)
150
+ this.play();
151
+ this.manager.emit('autoplay', this, nextTrack);
114
152
  }
115
153
  }
116
154
  }
155
+ connect(options) {
156
+ this.voiceChannelId = options.voiceChannelId;
157
+ this.textChannelId = options.textChannelId || this.textChannelId;
158
+ this.manager.options.send(this.guildId, {
159
+ op: 4,
160
+ d: {
161
+ guild_id: this.guildId,
162
+ channel_id: this.voiceChannelId,
163
+ self_mute: options.selfMute ?? false,
164
+ self_deaf: options.selfDeaf ?? true
165
+ }
166
+ });
167
+ return this;
168
+ }
169
+ disconnect() {
170
+ this.voiceChannelId = null;
171
+ this.manager.options.send(this.guildId, {
172
+ op: 4,
173
+ d: {
174
+ guild_id: this.guildId,
175
+ channel_id: null,
176
+ self_mute: false,
177
+ self_deaf: false
178
+ }
179
+ });
180
+ return this;
181
+ }
182
+ toJSON() {
183
+ return {
184
+ guildId: this.guildId,
185
+ voiceChannelId: this.voiceChannelId,
186
+ textChannelId: this.textChannelId,
187
+ paused: this.paused,
188
+ isPlaying: this.isPlaying,
189
+ volume: 100, // Should probably track volume in player too
190
+ repeatMode: this.repeatMode,
191
+ autoplay: this.autoplay,
192
+ queue: this.queue.toJSON()
193
+ };
194
+ }
117
195
  stop() {
118
196
  this.isPlaying = false;
119
197
  this.node.send({
@@ -122,10 +200,11 @@ class Player {
122
200
  });
123
201
  }
124
202
  setVolume(volume) {
203
+ this.volume = volume;
125
204
  this.node.send({
126
205
  op: 'volume',
127
206
  guildId: this.guildId,
128
- volume: volume
207
+ volume: this.volume
129
208
  });
130
209
  }
131
210
  update(state) {
@@ -1 +1 @@
1
- {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,19 @@ export declare class Queue {
7
7
  constructor(player: Player);
8
8
  add(track: any | any[]): void;
9
9
  next(): any | null;
10
+ remove(index: number): any;
11
+ move(from: number, to: number): void;
12
+ skipTo(index: number): any;
10
13
  clear(): void;
11
14
  shuffle(): void;
15
+ get size(): number;
16
+ get totalSize(): number;
17
+ get duration(): any;
18
+ removeDuplicates(): void;
19
+ toJSON(): {
20
+ current: any;
21
+ tracks: any[];
22
+ previous: any[];
23
+ };
12
24
  }
13
25
  //# sourceMappingURL=Queue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,KAAK;IACd,SAAgB,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,GAAG,EAAE,CAAM;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAM;IACrB,OAAO,EAAE,GAAG,GAAG,IAAI,CAAQ;gBAEtB,MAAM,EAAE,MAAM;IAInB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE;IAQtB,IAAI,IAAI,GAAG,GAAG,IAAI;IAUlB,KAAK;IAML,OAAO;CAMjB"}
1
+ {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,KAAK;IACd,SAAgB,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,GAAG,EAAE,CAAM;IACnB,QAAQ,EAAE,GAAG,EAAE,CAAM;IACrB,OAAO,EAAE,GAAG,GAAG,IAAI,CAAQ;gBAEtB,MAAM,EAAE,MAAM;IAInB,GAAG,CAAC,KAAK,EAAE,GAAG,GAAG,GAAG,EAAE;IAQtB,IAAI,IAAI,GAAG,GAAG,IAAI;IAUlB,MAAM,CAAC,KAAK,EAAE,MAAM;IAKpB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM;IAM7B,MAAM,CAAC,KAAK,EAAE,MAAM;IASpB,KAAK;IAML,OAAO;IAOd,IAAW,IAAI,WAEd;IAED,IAAW,SAAS,WAEnB;IAED,IAAW,QAAQ,QAElB;IAEM,gBAAgB;IAMhB,MAAM;;;;;CAOhB"}
@@ -24,6 +24,27 @@ class Queue {
24
24
  this.current = nextTrack || null;
25
25
  return this.current;
26
26
  }
27
+ remove(index) {
28
+ if (index < 0 || index >= this.tracks.length)
29
+ return null;
30
+ return this.tracks.splice(index, 1)[0];
31
+ }
32
+ move(from, to) {
33
+ if (from < 0 || from >= this.tracks.length || to < 0 || to >= this.tracks.length)
34
+ return;
35
+ const [track] = this.tracks.splice(from, 1);
36
+ this.tracks.splice(to, 0, track);
37
+ }
38
+ skipTo(index) {
39
+ if (index < 0 || index >= this.tracks.length)
40
+ return null;
41
+ const skipped = this.tracks.splice(0, index);
42
+ if (this.current)
43
+ this.previous.push(this.current);
44
+ this.previous.push(...skipped);
45
+ this.current = this.tracks.shift() || null;
46
+ return this.current;
47
+ }
27
48
  clear() {
28
49
  this.tracks = [];
29
50
  this.previous = [];
@@ -35,6 +56,25 @@ class Queue {
35
56
  [this.tracks[i], this.tracks[j]] = [this.tracks[j], this.tracks[i]];
36
57
  }
37
58
  }
59
+ get size() {
60
+ return this.tracks.length;
61
+ }
62
+ get totalSize() {
63
+ return this.tracks.length + (this.current ? 1 : 0);
64
+ }
65
+ get duration() {
66
+ return this.tracks.reduce((acc, track) => acc + (track.info?.length || 0), 0) + (this.current?.info?.length || 0);
67
+ }
68
+ removeDuplicates() {
69
+ this.tracks = this.tracks.filter((track, index, self) => index === self.findIndex((t) => t.track === track.track));
70
+ }
71
+ toJSON() {
72
+ return {
73
+ current: this.current,
74
+ tracks: this.tracks,
75
+ previous: this.previous
76
+ };
77
+ }
38
78
  }
39
79
  exports.Queue = Queue;
40
80
  //# sourceMappingURL=Queue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;IAMd,YAAY,MAAc;QAJnB,WAAM,GAAU,EAAE,CAAC;QACnB,aAAQ,GAAU,EAAE,CAAC;QACrB,YAAO,GAAe,IAAI,CAAC;QAG9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IAEM,GAAG,CAAC,KAAkB;QACzB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAEM,IAAI;QACP,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAEM,OAAO;QACV,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC9C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACL,CAAC;CACJ;AAxCD,sBAwCC"}
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/structures/Queue.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ramkrishna-js/framelink",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "🚀 A lightweight, robust, and plugin-ready Lavalink client (v3 & v4) for Node.js.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",