ziplayer 0.0.2 → 0.0.4
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 +156 -150
- package/dist/extensions/BaseExtension.d.ts +9 -0
- package/dist/extensions/BaseExtension.d.ts.map +1 -0
- package/dist/extensions/BaseExtension.js +7 -0
- package/dist/extensions/BaseExtension.js.map +1 -0
- package/dist/extensions/index.d.ts +12 -0
- package/dist/extensions/index.d.ts.map +1 -0
- package/dist/extensions/index.js +31 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/plugins/BasePlugin.d.ts.map +1 -1
- package/dist/plugins/BasePlugin.js.map +1 -1
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/plugins/index.js.map +1 -1
- package/dist/structures/Player.d.ts +6 -2
- package/dist/structures/Player.d.ts.map +1 -1
- package/dist/structures/Player.js +96 -45
- package/dist/structures/Player.js.map +1 -1
- package/dist/structures/PlayerManager.d.ts +16 -4
- package/dist/structures/PlayerManager.d.ts.map +1 -1
- package/dist/structures/PlayerManager.js +66 -6
- package/dist/structures/PlayerManager.js.map +1 -1
- package/dist/structures/Queue.d.ts +4 -2
- package/dist/structures/Queue.d.ts.map +1 -1
- package/dist/structures/Queue.js +16 -1
- package/dist/structures/Queue.js.map +1 -1
- package/dist/types/index.d.ts +16 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +45 -42
- package/src/extensions/BaseExtension.ts +10 -0
- package/src/extensions/index.ts +32 -0
- package/src/index.ts +11 -10
- package/src/plugins/BasePlugin.ts +26 -29
- package/src/plugins/index.ts +32 -32
- package/src/structures/Player.ts +576 -526
- package/src/structures/PlayerManager.ts +143 -86
- package/src/structures/Queue.ts +103 -87
- package/src/types/index.ts +99 -82
- package/tsconfig.json +23 -23
- package/dist/plugins/SoundCloudPlugin.d.ts +0 -22
- package/dist/plugins/SoundCloudPlugin.d.ts.map +0 -1
- package/dist/plugins/SoundCloudPlugin.js +0 -171
- package/dist/plugins/SoundCloudPlugin.js.map +0 -1
- package/dist/plugins/SpotifyPlugin.d.ts +0 -26
- package/dist/plugins/SpotifyPlugin.d.ts.map +0 -1
- package/dist/plugins/SpotifyPlugin.js +0 -183
- package/dist/plugins/SpotifyPlugin.js.map +0 -1
- package/dist/plugins/YouTubePlugin.d.ts +0 -25
- package/dist/plugins/YouTubePlugin.d.ts.map +0 -1
- package/dist/plugins/YouTubePlugin.js +0 -314
- package/dist/plugins/YouTubePlugin.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,150 +1,156 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
//
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
await player.play("
|
|
52
|
-
|
|
53
|
-
//
|
|
54
|
-
player.
|
|
55
|
-
|
|
56
|
-
//
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
//
|
|
60
|
-
player.
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
player.
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
- `
|
|
138
|
-
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
1
|
+
<img width="1244" height="305" alt="logo" src="https://github.com/user-attachments/assets/c8181e90-fdc9-4e08-8fe4-b4419cb8a25b" />
|
|
2
|
+
|
|
3
|
+
# ziplayer
|
|
4
|
+
|
|
5
|
+
A modular Discord voice player with plugin system for @discordjs/voice.
|
|
6
|
+
|
|
7
|
+
## Features
|
|
8
|
+
|
|
9
|
+
- 🎵 **Plugin-based architecture** - Easy to extend with new sources
|
|
10
|
+
- 🎶 **Multiple source support** - YouTube, SoundCloud, Spotify (with fallback)
|
|
11
|
+
- 🔊 **Queue management** - Add, remove, shuffle, clear
|
|
12
|
+
- 🎚️ **Volume control** - 0-200% volume range
|
|
13
|
+
- ⏯️ **Playback control** - Play, pause, resume, stop, skip
|
|
14
|
+
- 🔁 **Auto play** - Automatically replay the queue when it ends
|
|
15
|
+
- 🔂 **Loop control** - Repeat a single track or the entire queue
|
|
16
|
+
- 📊 **Progress bar** - Display playback progress with customizable icons
|
|
17
|
+
- 🔔 **Event-driven** - Rich event system for all player actions
|
|
18
|
+
- 🎭 **Multi-guild support** - Manage players across multiple Discord servers
|
|
19
|
+
- 🗃️ **User data** - Attach custom data to each player for later use
|
|
20
|
+
|
|
21
|
+
## Installation
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install ziplayer @ziplayer/plugin @discordjs/voice discord.js
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
```typescript
|
|
30
|
+
import { PlayerManager } from "ziplayer";
|
|
31
|
+
import { SoundCloudPlugin, YouTubePlugin, SpotifyPlugin } from "@ziplayer/plugin";
|
|
32
|
+
|
|
33
|
+
const soundcloudPlugin = new SoundCloudPlugin();
|
|
34
|
+
const youtubePlugin = new YouTubePlugin();
|
|
35
|
+
const spotifyPlugin = new SpotifyPlugin();
|
|
36
|
+
|
|
37
|
+
// Create player manager with YouTube and SoundCloud plugins
|
|
38
|
+
const manager = new PlayerManager({
|
|
39
|
+
plugins: [soundcloudPlugin, youtubePlugin, spotifyPlugin],
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Create player
|
|
43
|
+
const player = manager.create(guildId, {
|
|
44
|
+
leaveOnEnd: true,
|
|
45
|
+
leaveTimeout: 30000,
|
|
46
|
+
userdata: { channel: textChannel }, // store channel for events
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
// Connect and play
|
|
50
|
+
await player.connect(voiceChannel);
|
|
51
|
+
await player.play("Never Gonna Give You Up", userId);
|
|
52
|
+
|
|
53
|
+
// Play a full YouTube playlist
|
|
54
|
+
await player.play("https://www.youtube.com/playlist?list=PL123", userId);
|
|
55
|
+
|
|
56
|
+
// Enable autoplay
|
|
57
|
+
player.queue.autoPlay(true);
|
|
58
|
+
|
|
59
|
+
// Loop the entire queue
|
|
60
|
+
player.loop("queue");
|
|
61
|
+
|
|
62
|
+
// Play a full SoundCloud playlist
|
|
63
|
+
await player.play("https://soundcloud.com/artist/sets/playlist", userId);
|
|
64
|
+
|
|
65
|
+
// Events
|
|
66
|
+
player.on("willPlay", (track) => {
|
|
67
|
+
console.log(`Up next: ${track.title}`);
|
|
68
|
+
});
|
|
69
|
+
player.on("trackStart", (track) => {
|
|
70
|
+
console.log(`Now playing: ${track.title}`);
|
|
71
|
+
player.userdata?.channel?.send(`Now playing: ${track.title}`);
|
|
72
|
+
});
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Available Plugins
|
|
76
|
+
|
|
77
|
+
### YouTubePlugin
|
|
78
|
+
|
|
79
|
+
Supports YouTube videos and playlists.
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
import { YouTubePlugin } from "@ziplayer/plugin";
|
|
83
|
+
const youtube = new YouTubePlugin();
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### SoundCloudPlugin
|
|
87
|
+
|
|
88
|
+
Supports SoundCloud tracks and playlists.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
import { SoundCloudPlugin } from "@ziplayer/plugin";
|
|
92
|
+
const soundcloud = new SoundCloudPlugin();
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### SpotifyPlugin
|
|
96
|
+
|
|
97
|
+
Supports Spotify tracks, albums, and playlists (requires fallback plugin for streaming).
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
import { SpotifyPlugin } from "@ziplayer/plugin";
|
|
101
|
+
const spotify = new SpotifyPlugin();
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Creating Custom Plugins
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
import { BasePlugin, Track, SearchResult, StreamInfo } from "ziplayer";
|
|
108
|
+
|
|
109
|
+
export class MyPlugin extends BasePlugin {
|
|
110
|
+
name = "myplugin";
|
|
111
|
+
version = "1.0.0";
|
|
112
|
+
|
|
113
|
+
canHandle(query: string): boolean {
|
|
114
|
+
return query.includes("mysite.com");
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
async search(query: string, requestedBy: string): Promise<SearchResult> {
|
|
118
|
+
// Implement search logic
|
|
119
|
+
return {
|
|
120
|
+
tracks: [
|
|
121
|
+
/* ... */
|
|
122
|
+
],
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
async getStream(track: Track): Promise<StreamInfo> {
|
|
127
|
+
// Return audio stream
|
|
128
|
+
return { stream, type: "arbitrary" };
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Events
|
|
134
|
+
|
|
135
|
+
All player events are forwarded through the PlayerManager:
|
|
136
|
+
|
|
137
|
+
- `trackStart` - When a track starts playing
|
|
138
|
+
- `willPlay` - Before a track begins playing
|
|
139
|
+
- `trackEnd` - When a track finishes
|
|
140
|
+
- `queueEnd` - When the queue is empty
|
|
141
|
+
- `playerError` - When an error occurs
|
|
142
|
+
- `queueAdd` - When a track is added
|
|
143
|
+
- `volumeChange` - When volume changes
|
|
144
|
+
- And more...
|
|
145
|
+
|
|
146
|
+
## Progress Bar
|
|
147
|
+
|
|
148
|
+
Display the current playback progress with `getProgressBar`:
|
|
149
|
+
|
|
150
|
+
```typescript
|
|
151
|
+
console.log(player.getProgressBar({ size: 30, barChar: "-", progressChar: "🔘" }));
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## License
|
|
155
|
+
|
|
156
|
+
MIT License
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SourceExtension } from "../types";
|
|
2
|
+
import { Player } from "../structures/Player";
|
|
3
|
+
export declare abstract class BaseExtension implements SourceExtension {
|
|
4
|
+
abstract name: string;
|
|
5
|
+
abstract version: string;
|
|
6
|
+
abstract player: Player | null;
|
|
7
|
+
abstract active(alas: any): boolean;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=BaseExtension.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseExtension.d.ts","sourceRoot":"","sources":["../../src/extensions/BaseExtension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAmC,MAAM,UAAU,CAAC;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,8BAAsB,aAAc,YAAW,eAAe;IAC7D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO;CACnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseExtension.js","sourceRoot":"","sources":["../../src/extensions/BaseExtension.ts"],"names":[],"mappings":";;;AAGA,MAAsB,aAAa;CAMlC;AAND,sCAMC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { BaseExtension } from "./BaseExtension";
|
|
2
|
+
export { BaseExtension } from "./BaseExtension";
|
|
3
|
+
export declare class ExtensionManager {
|
|
4
|
+
private extensions;
|
|
5
|
+
register(extension: BaseExtension): void;
|
|
6
|
+
unregister(name: string): boolean;
|
|
7
|
+
get(name: string): BaseExtension | undefined;
|
|
8
|
+
getAll(): BaseExtension[];
|
|
9
|
+
findExtension(alas: any): BaseExtension | undefined;
|
|
10
|
+
clear(): void;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,qBAAa,gBAAgB;IAC5B,OAAO,CAAC,UAAU,CAAyC;IAE3D,QAAQ,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;IAIxC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI5C,MAAM,IAAI,aAAa,EAAE;IAIzB,aAAa,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa,GAAG,SAAS;IAInD,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExtensionManager = exports.BaseExtension = void 0;
|
|
4
|
+
var BaseExtension_1 = require("./BaseExtension");
|
|
5
|
+
Object.defineProperty(exports, "BaseExtension", { enumerable: true, get: function () { return BaseExtension_1.BaseExtension; } });
|
|
6
|
+
// Extension factory
|
|
7
|
+
class ExtensionManager {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.extensions = new Map();
|
|
10
|
+
}
|
|
11
|
+
register(extension) {
|
|
12
|
+
this.extensions.set(extension.name, extension);
|
|
13
|
+
}
|
|
14
|
+
unregister(name) {
|
|
15
|
+
return this.extensions.delete(name);
|
|
16
|
+
}
|
|
17
|
+
get(name) {
|
|
18
|
+
return this.extensions.get(name);
|
|
19
|
+
}
|
|
20
|
+
getAll() {
|
|
21
|
+
return Array.from(this.extensions.values());
|
|
22
|
+
}
|
|
23
|
+
findExtension(alas) {
|
|
24
|
+
return this.getAll().find((extension) => extension.active(alas));
|
|
25
|
+
}
|
|
26
|
+
clear() {
|
|
27
|
+
this.extensions.clear();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.ExtensionManager = ExtensionManager;
|
|
31
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/extensions/index.ts"],"names":[],"mappings":";;;AAEA,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,oBAAoB;AACpB,MAAa,gBAAgB;IAA7B;QACS,eAAU,GAA+B,IAAI,GAAG,EAAE,CAAC;IAyB5D,CAAC;IAvBA,QAAQ,CAAC,SAAwB;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,aAAa,CAAC,IAAS;QACtB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACD;AA1BD,4CA0BC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAG7B,eAAe,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,7 @@ var PlayerManager_2 = require("./structures/PlayerManager");
|
|
|
24
24
|
Object.defineProperty(exports, "PlayerManager", { enumerable: true, get: function () { return PlayerManager_2.PlayerManager; } });
|
|
25
25
|
__exportStar(require("./types"), exports);
|
|
26
26
|
__exportStar(require("./plugins"), exports);
|
|
27
|
+
__exportStar(require("./extensions"), exports);
|
|
27
28
|
// Default export
|
|
28
29
|
exports.default = PlayerManager_1.PlayerManager;
|
|
29
30
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA2D;AAE3D,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AACtB,0CAAwB;AACxB,4CAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA2D;AAE3D,8CAA6C;AAApC,gGAAA,MAAM,OAAA;AACf,4CAA2C;AAAlC,8FAAA,KAAK,OAAA;AACd,4DAA2D;AAAlD,8GAAA,aAAa,OAAA;AACtB,0CAAwB;AACxB,4CAA0B;AAC1B,+CAA6B;AAE7B,iBAAiB;AACjB,kBAAe,6BAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/BasePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEzE,8BAAsB,UAAW,YAAW,YAAY;
|
|
1
|
+
{"version":3,"file":"BasePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/BasePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEzE,8BAAsB,UAAW,YAAW,YAAY;IACvD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAC1C,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAC1E,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAErD,WAAW,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC;IAI/C,gBAAgB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAIpH,QAAQ,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI/B,eAAe,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAGpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BasePlugin.js","sourceRoot":"","sources":["../../src/plugins/BasePlugin.ts"],"names":[],"mappings":";;;AAEA,MAAsB,UAAU;
|
|
1
|
+
{"version":3,"file":"BasePlugin.js","sourceRoot":"","sources":["../../src/plugins/BasePlugin.ts"],"names":[],"mappings":";;;AAEA,MAAsB,UAAU;IAQ/B,WAAW,CAAE,KAAY;QACxB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChD,CAAC;IAED,gBAAgB,CAAE,QAAgB,EAAE,IAA6D;QAChG,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAE,GAAW;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,eAAe,CAAE,GAAW,EAAE,WAAmB;QAChD,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;CACD;AAvBD,gCAuBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,aAAa;IACzB,OAAO,CAAC,OAAO,CAAsC;IAErD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAIlC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIzC,MAAM,IAAI,UAAU,EAAE;IAItB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIjD,KAAK,IAAI,IAAI;CAGb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;AAEA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,iBAAiB;AACjB,MAAa,aAAa;IAA1B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugins/index.ts"],"names":[],"mappings":";;;AAEA,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AAEnB,iBAAiB;AACjB,MAAa,aAAa;IAA1B;QACS,YAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;IAyBtD,CAAC;IAvBA,QAAQ,CAAC,MAAkB;QAC1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,GAAG,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM;QACL,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,UAAU,CAAC,KAAa;QACvB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;CACD;AA1BD,sCA0BC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { VoiceConnection, AudioPlayer as DiscordAudioPlayer } from "@discordjs/voice";
|
|
3
3
|
import { VoiceChannel } from "discord.js";
|
|
4
|
-
import { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions } from "../types";
|
|
4
|
+
import { Track, PlayerOptions, PlayerEvents, SourcePlugin, SearchResult, ProgressBarOptions, LoopMode } from "../types";
|
|
5
5
|
import { Queue } from "./Queue";
|
|
6
6
|
import { PluginManager } from "../plugins";
|
|
7
|
+
import type { PlayerManager } from "./PlayerManager";
|
|
7
8
|
export declare interface Player {
|
|
8
9
|
on<K extends keyof PlayerEvents>(event: K, listener: (...args: PlayerEvents[K]) => void): this;
|
|
9
10
|
emit<K extends keyof PlayerEvents>(event: K, ...args: PlayerEvents[K]): boolean;
|
|
@@ -19,12 +20,14 @@ export declare class Player extends EventEmitter {
|
|
|
19
20
|
options: PlayerOptions;
|
|
20
21
|
pluginManager: PluginManager;
|
|
21
22
|
userdata?: Record<string, any>;
|
|
23
|
+
private manager;
|
|
22
24
|
private leaveTimeout;
|
|
23
25
|
private currentResource;
|
|
24
26
|
private volumeInterval;
|
|
27
|
+
private skipLoop;
|
|
25
28
|
private withTimeout;
|
|
26
29
|
private debug;
|
|
27
|
-
constructor(guildId: string, options
|
|
30
|
+
constructor(guildId: string, options: PlayerOptions | undefined, manager: PlayerManager);
|
|
28
31
|
private setupEventListeners;
|
|
29
32
|
addPlugin(plugin: SourcePlugin): void;
|
|
30
33
|
removePlugin(name: string): boolean;
|
|
@@ -37,6 +40,7 @@ export declare class Player extends EventEmitter {
|
|
|
37
40
|
resume(): boolean;
|
|
38
41
|
stop(): boolean;
|
|
39
42
|
skip(): boolean;
|
|
43
|
+
loop(mode?: LoopMode): LoopMode;
|
|
40
44
|
setVolume(volume: number): boolean;
|
|
41
45
|
shuffle(): void;
|
|
42
46
|
clearQueue(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,
|
|
1
|
+
{"version":3,"file":"Player.d.ts","sourceRoot":"","sources":["../../src/structures/Player.ts"],"names":[],"mappings":"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"}
|