yukimu 1.2.0 → 1.3.0
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/.cache/replit/env/latest +72 -72
- package/.cache/replit/env/latest.json +1 -1
- package/.cache/replit/toolchain.json +1 -1
- package/dist/ConnectionPool.d.ts +1 -0
- package/dist/ConnectionPool.d.ts.map +1 -1
- package/dist/ConnectionPool.js +11 -24
- package/dist/ConnectionPool.js.map +1 -1
- package/dist/Constants.d.ts +3 -49
- package/dist/Constants.d.ts.map +1 -1
- package/dist/Constants.js +6 -61
- package/dist/Constants.js.map +1 -1
- package/dist/Node.d.ts +1 -1
- package/dist/Node.d.ts.map +1 -1
- package/dist/Node.js +17 -17
- package/dist/Node.js.map +1 -1
- package/dist/Player.d.ts +9 -5
- package/dist/Player.d.ts.map +1 -1
- package/dist/Player.js +73 -54
- package/dist/Player.js.map +1 -1
- package/dist/Plugin.d.ts +0 -14
- package/dist/Plugin.d.ts.map +1 -1
- package/dist/Plugin.js +0 -12
- package/dist/Plugin.js.map +1 -1
- package/dist/Queue.d.ts +0 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +7 -22
- package/dist/Queue.js.map +1 -1
- package/dist/Resolver.d.ts +1 -1
- package/dist/Resolver.d.ts.map +1 -1
- package/dist/Resolver.js +24 -10
- package/dist/Resolver.js.map +1 -1
- package/dist/Rest.d.ts +3 -4
- package/dist/Rest.d.ts.map +1 -1
- package/dist/Rest.js +26 -16
- package/dist/Rest.js.map +1 -1
- package/dist/TrackCache.d.ts +0 -5
- package/dist/TrackCache.d.ts.map +1 -1
- package/dist/TrackCache.js +6 -23
- package/dist/TrackCache.js.map +1 -1
- package/dist/WsQueue.d.ts +2 -11
- package/dist/WsQueue.d.ts.map +1 -1
- package/dist/WsQueue.js +5 -21
- package/dist/WsQueue.js.map +1 -1
- package/dist/Yukimu.d.ts +3 -12
- package/dist/Yukimu.d.ts.map +1 -1
- package/dist/Yukimu.js +2 -8
- package/dist/Yukimu.js.map +1 -1
- package/dist/connector/DiscordJS.d.ts +1 -18
- package/dist/connector/DiscordJS.d.ts.map +1 -1
- package/dist/connector/DiscordJS.js.map +1 -1
- package/dist/connector/Eris.d.ts +1 -16
- package/dist/connector/Eris.d.ts.map +1 -1
- package/dist/connector/Eris.js +2 -4
- package/dist/connector/Eris.js.map +1 -1
- package/dist/connector/Oceanic.d.ts +1 -13
- package/dist/connector/Oceanic.d.ts.map +1 -1
- package/dist/connector/Oceanic.js +2 -4
- package/dist/connector/Oceanic.js.map +1 -1
- package/dist/errors/YukimuError.d.ts.map +1 -1
- package/dist/errors/YukimuError.js +0 -1
- package/dist/errors/YukimuError.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -5
- package/dist/index.js.map +1 -1
- package/dist/plugins/AutoResume.d.ts +0 -13
- package/dist/plugins/AutoResume.d.ts.map +1 -1
- package/dist/plugins/AutoResume.js +10 -18
- package/dist/plugins/AutoResume.js.map +1 -1
- package/dist/plugins/PlayerMoved.js.map +1 -1
- package/dist/types.d.ts +25 -34
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/ConnectionPool.ts +14 -31
- package/src/Constants.ts +6 -62
- package/src/Node.ts +44 -51
- package/src/Player.ts +86 -91
- package/src/Plugin.ts +0 -16
- package/src/Queue.ts +7 -32
- package/src/Resolver.ts +25 -14
- package/src/Rest.ts +34 -28
- package/src/TrackCache.ts +7 -30
- package/src/WsQueue.ts +9 -29
- package/src/Yukimu.ts +10 -45
- package/src/connector/DiscordJS.ts +5 -12
- package/src/connector/Eris.ts +6 -17
- package/src/connector/Oceanic.ts +5 -15
- package/src/errors/YukimuError.ts +0 -2
- package/src/index.ts +4 -26
- package/src/plugins/AutoResume.ts +13 -37
- package/src/plugins/PlayerMoved.ts +4 -4
- package/src/types.ts +26 -26
- package/tsconfig.json +3 -1
package/src/connector/Oceanic.ts
CHANGED
|
@@ -1,27 +1,17 @@
|
|
|
1
1
|
import { Connector } from "./Connector";
|
|
2
|
-
import type { Yukimu } from "../Yukimu";
|
|
3
|
-
|
|
4
|
-
interface OceanicClient {
|
|
5
|
-
guilds: Map<string, { shard: { send(payload: unknown): void } }>;
|
|
6
|
-
on(event: "packet", listener: (packet: { t: string; d: unknown }) => void): this;
|
|
7
|
-
}
|
|
8
2
|
|
|
9
3
|
export class Oceanic extends Connector {
|
|
10
|
-
private client:
|
|
4
|
+
private client: any;
|
|
11
5
|
|
|
12
|
-
constructor(client:
|
|
6
|
+
constructor(client: any) {
|
|
13
7
|
super();
|
|
14
8
|
this.client = client;
|
|
15
9
|
}
|
|
16
10
|
|
|
17
11
|
public listen(): void {
|
|
18
|
-
this.client.on("packet", (packet:
|
|
19
|
-
if (packet.t === "VOICE_STATE_UPDATE")
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
if (packet.t === "VOICE_SERVER_UPDATE") {
|
|
23
|
-
this.manager.handleVoiceServerUpdate(packet.d as Parameters<Yukimu["handleVoiceServerUpdate"]>[0]);
|
|
24
|
-
}
|
|
12
|
+
this.client.on("packet", (packet: any) => {
|
|
13
|
+
if (packet.t === "VOICE_STATE_UPDATE") this.manager.handleVoiceStateUpdate(packet.d);
|
|
14
|
+
if (packet.t === "VOICE_SERVER_UPDATE") this.manager.handleVoiceServerUpdate(packet.d);
|
|
25
15
|
});
|
|
26
16
|
}
|
|
27
17
|
|
|
@@ -22,12 +22,10 @@ export class PlayerError extends YukimuError {
|
|
|
22
22
|
export class RestError extends YukimuError {
|
|
23
23
|
public readonly status: number;
|
|
24
24
|
public readonly path: string;
|
|
25
|
-
|
|
26
25
|
constructor(message: string, status: number, path: string) {
|
|
27
26
|
super(message);
|
|
28
27
|
this.name = "RestError";
|
|
29
28
|
this.status = status;
|
|
30
|
-
this.status = status;
|
|
31
29
|
this.path = path;
|
|
32
30
|
}
|
|
33
31
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// Core
|
|
2
1
|
export { Yukimu } from "./Yukimu";
|
|
3
2
|
export { Node } from "./Node";
|
|
4
3
|
export { Player } from "./Player";
|
|
@@ -9,38 +8,17 @@ export { ConnectionPool } from "./ConnectionPool";
|
|
|
9
8
|
export { TrackCache } from "./TrackCache";
|
|
10
9
|
export { WsQueue } from "./WsQueue";
|
|
11
10
|
export { Plugin } from "./Plugin";
|
|
12
|
-
|
|
13
|
-
// Connectors
|
|
14
11
|
export { Connector } from "./connector/Connector";
|
|
15
12
|
export { DiscordJS } from "./connector/DiscordJS";
|
|
16
13
|
export { Eris } from "./connector/Eris";
|
|
17
14
|
export { Oceanic } from "./connector/Oceanic";
|
|
18
|
-
|
|
19
|
-
// Built-in Plugins
|
|
20
15
|
export { PlayerMoved } from "./plugins/PlayerMoved";
|
|
21
16
|
export { AutoResume } from "./plugins/AutoResume";
|
|
22
|
-
|
|
23
|
-
// Errors
|
|
24
17
|
export { YukimuError, NodeError, PlayerError, RestError } from "./errors/YukimuError";
|
|
25
|
-
|
|
26
|
-
// Constants (enums)
|
|
27
18
|
export * from "./Constants";
|
|
28
|
-
|
|
29
|
-
// Types — export individually to avoid conflicts with Constants
|
|
30
19
|
export type {
|
|
31
|
-
YukimuOptions,
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
PlayerOptions,
|
|
36
|
-
SpotifyOptions,
|
|
37
|
-
SearchSource,
|
|
38
|
-
Track,
|
|
39
|
-
TrackInfo,
|
|
40
|
-
SearchResult,
|
|
41
|
-
PlaylistInfo,
|
|
42
|
-
LavalinkException,
|
|
43
|
-
VoiceState,
|
|
44
|
-
FilterOptions,
|
|
45
|
-
YukimuEvents,
|
|
20
|
+
YukimuOptions, NodeOptions, NodeStats, NodeInfo,
|
|
21
|
+
PlayerOptions, SpotifyOptions, SearchSource,
|
|
22
|
+
Track, TrackInfo, SearchResult, PlaylistInfo,
|
|
23
|
+
LavalinkException, VoiceState, FilterOptions, YukimuEvents,
|
|
46
24
|
} from "./types";
|
|
@@ -1,30 +1,24 @@
|
|
|
1
1
|
import { Plugin } from "../Plugin";
|
|
2
2
|
import type { Yukimu } from "../Yukimu";
|
|
3
|
-
import type { Player } from "../Player";
|
|
4
|
-
import type { Node } from "../Node";
|
|
5
|
-
import type { Track } from "../types";
|
|
6
|
-
|
|
7
|
-
interface SavedState {
|
|
8
|
-
guildId: string;
|
|
9
|
-
voiceChannelId: string;
|
|
10
|
-
textChannelId?: string;
|
|
11
|
-
volume: number;
|
|
12
|
-
loop: "none" | "track" | "queue";
|
|
13
|
-
position: number;
|
|
14
|
-
trackEncoded?: string;
|
|
15
|
-
data: [string, unknown][];
|
|
16
|
-
}
|
|
17
3
|
|
|
18
4
|
export class AutoResume extends Plugin {
|
|
19
5
|
public name = "AutoResume";
|
|
20
|
-
private states: Map<string,
|
|
6
|
+
private states: Map<string, any> = new Map();
|
|
21
7
|
|
|
22
8
|
public load(manager: Yukimu): void {
|
|
23
|
-
manager.on("trackStart", (player:
|
|
24
|
-
|
|
9
|
+
manager.on("trackStart", (player: any, track: any) => {
|
|
10
|
+
if (!player.queue.current) return;
|
|
11
|
+
this.states.set(player.guildId, {
|
|
12
|
+
guildId: player.guildId,
|
|
13
|
+
voiceChannelId: player.voiceChannelId,
|
|
14
|
+
volume: player.volume,
|
|
15
|
+
loop: player.loop,
|
|
16
|
+
position: player.position,
|
|
17
|
+
trackEncoded: player.queue.current.encoded,
|
|
18
|
+
});
|
|
25
19
|
});
|
|
26
20
|
|
|
27
|
-
manager.on("nodeReady", async (node:
|
|
21
|
+
manager.on("nodeReady", async (node: any) => {
|
|
28
22
|
if (!node.resumed) return;
|
|
29
23
|
for (const [guildId, state] of this.states) {
|
|
30
24
|
const player = manager.players.get(guildId);
|
|
@@ -36,26 +30,8 @@ export class AutoResume extends Plugin {
|
|
|
36
30
|
}
|
|
37
31
|
});
|
|
38
32
|
|
|
39
|
-
manager.on("playerDestroy", (player:
|
|
33
|
+
manager.on("playerDestroy", (player: any) => {
|
|
40
34
|
this.states.delete(player.guildId);
|
|
41
35
|
});
|
|
42
36
|
}
|
|
43
|
-
|
|
44
|
-
private save(player: Player): void {
|
|
45
|
-
if (!player.queue.current) return;
|
|
46
|
-
this.states.set(player.guildId, {
|
|
47
|
-
guildId: player.guildId,
|
|
48
|
-
voiceChannelId: player.voiceChannelId!,
|
|
49
|
-
textChannelId: player.textChannelId,
|
|
50
|
-
volume: player.volume,
|
|
51
|
-
loop: player.loop,
|
|
52
|
-
position: player.position,
|
|
53
|
-
trackEncoded: player.queue.current.encoded,
|
|
54
|
-
data: [...player.data.entries()],
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
public getSavedState(guildId: string): SavedState | undefined {
|
|
59
|
-
return this.states.get(guildId);
|
|
60
|
-
}
|
|
61
37
|
}
|
|
@@ -5,9 +5,9 @@ export class PlayerMoved extends Plugin {
|
|
|
5
5
|
public name = "PlayerMoved";
|
|
6
6
|
|
|
7
7
|
public load(manager: Yukimu): void {
|
|
8
|
-
manager.on("playerMove", async (player, oldChannel, newChannel) => {
|
|
8
|
+
manager.on("playerMove", async (player: any, oldChannel: string, newChannel: string) => {
|
|
9
9
|
if (!newChannel) {
|
|
10
|
-
if (
|
|
10
|
+
if (manager.options.moveOnDisconnect) {
|
|
11
11
|
await manager.destroyPlayer(player.guildId).catch(() => {});
|
|
12
12
|
}
|
|
13
13
|
return;
|
|
@@ -15,9 +15,9 @@ export class PlayerMoved extends Plugin {
|
|
|
15
15
|
player.voiceChannelId = newChannel;
|
|
16
16
|
});
|
|
17
17
|
|
|
18
|
-
manager.on("socketClosed", async (player, code, reason, byRemote) => {
|
|
18
|
+
manager.on("socketClosed", async (player: any, code: number, reason: string, byRemote: boolean) => {
|
|
19
19
|
if (code === 4014 || code === 4006) {
|
|
20
|
-
if (
|
|
20
|
+
if (manager.options.moveOnDisconnect) {
|
|
21
21
|
await manager.destroyPlayer(player.guildId).catch(() => {});
|
|
22
22
|
}
|
|
23
23
|
}
|
package/src/types.ts
CHANGED
|
@@ -31,8 +31,8 @@ export type SearchSource =
|
|
|
31
31
|
export interface Track {
|
|
32
32
|
encoded: string;
|
|
33
33
|
info: TrackInfo;
|
|
34
|
-
pluginInfo?: Record<string,
|
|
35
|
-
requester?:
|
|
34
|
+
pluginInfo?: Record<string, any>;
|
|
35
|
+
requester?: any;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export interface TrackInfo {
|
|
@@ -55,11 +55,10 @@ export interface SearchResult {
|
|
|
55
55
|
tracks: Track[];
|
|
56
56
|
playlistInfo?: PlaylistInfo;
|
|
57
57
|
exception?: LavalinkException;
|
|
58
|
-
pluginInfo?: Record<string,
|
|
58
|
+
pluginInfo?: Record<string, any>;
|
|
59
|
+
data?: any;
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
import { LoadType } from "./Constants";
|
|
62
|
-
|
|
63
62
|
export interface PlaylistInfo {
|
|
64
63
|
name: string;
|
|
65
64
|
selectedTrack: number;
|
|
@@ -70,7 +69,7 @@ export interface PlaylistInfo {
|
|
|
70
69
|
|
|
71
70
|
export interface LavalinkException {
|
|
72
71
|
message?: string;
|
|
73
|
-
severity:
|
|
72
|
+
severity: string;
|
|
74
73
|
cause: string;
|
|
75
74
|
}
|
|
76
75
|
|
|
@@ -88,6 +87,7 @@ export interface VoiceState {
|
|
|
88
87
|
token: string;
|
|
89
88
|
endpoint: string;
|
|
90
89
|
sessionId: string;
|
|
90
|
+
channelId?: string;
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
export interface NodeStats {
|
|
@@ -100,7 +100,7 @@ export interface NodeStats {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
export interface NodeInfo {
|
|
103
|
-
version: { semver: string; major: number; minor: number; patch: number
|
|
103
|
+
version: { semver: string; major: number; minor: number; patch: number };
|
|
104
104
|
buildTime: number;
|
|
105
105
|
git: { branch: string; commit: string; commitTime: number };
|
|
106
106
|
jvm: string;
|
|
@@ -117,29 +117,29 @@ export interface FilterOptions {
|
|
|
117
117
|
tremolo?: { frequency?: number; depth?: number };
|
|
118
118
|
vibrato?: { frequency?: number; depth?: number };
|
|
119
119
|
rotation?: { rotationHz?: number };
|
|
120
|
-
distortion?:
|
|
120
|
+
distortion?: any;
|
|
121
121
|
channelMix?: { leftToLeft?: number; leftToRight?: number; rightToLeft?: number; rightToRight?: number };
|
|
122
122
|
lowPass?: { smoothing?: number };
|
|
123
123
|
volume?: number;
|
|
124
|
-
[key: string]:
|
|
124
|
+
[key: string]: any;
|
|
125
125
|
}
|
|
126
126
|
|
|
127
127
|
export type YukimuEvents = {
|
|
128
|
-
nodeConnecting: [node:
|
|
129
|
-
nodeConnect: [node:
|
|
130
|
-
nodeReady: [node:
|
|
131
|
-
nodeDisconnect: [node:
|
|
132
|
-
nodeError: [node:
|
|
133
|
-
trackStart: [player:
|
|
134
|
-
trackEnd: [player:
|
|
135
|
-
trackError: [player:
|
|
136
|
-
trackStuck: [player:
|
|
137
|
-
playerCreate: [player:
|
|
138
|
-
playerDestroy: [player:
|
|
139
|
-
playerUpdate: [player:
|
|
140
|
-
playerMove: [player:
|
|
141
|
-
playerError: [player:
|
|
142
|
-
queueEnd: [player:
|
|
143
|
-
autoplayRequest: [player:
|
|
144
|
-
socketClosed: [player:
|
|
128
|
+
nodeConnecting: [node: any];
|
|
129
|
+
nodeConnect: [node: any];
|
|
130
|
+
nodeReady: [node: any];
|
|
131
|
+
nodeDisconnect: [node: any, code: number, reason: string];
|
|
132
|
+
nodeError: [node: any, error: Error];
|
|
133
|
+
trackStart: [player: any, track: Track];
|
|
134
|
+
trackEnd: [player: any, track: Track, reason: string];
|
|
135
|
+
trackError: [player: any, track: Track, exception: LavalinkException];
|
|
136
|
+
trackStuck: [player: any, track: Track, threshold: number];
|
|
137
|
+
playerCreate: [player: any];
|
|
138
|
+
playerDestroy: [player: any];
|
|
139
|
+
playerUpdate: [player: any];
|
|
140
|
+
playerMove: [player: any, oldChannel: string, newChannel: string];
|
|
141
|
+
playerError: [player: any, error: Error];
|
|
142
|
+
queueEnd: [player: any];
|
|
143
|
+
autoplayRequest: [player: any, track: Track];
|
|
144
|
+
socketClosed: [player: any, code: number, reason: string, byRemote: boolean];
|
|
145
145
|
};
|
package/tsconfig.json
CHANGED
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
"sourceMap": true,
|
|
14
14
|
"resolveJsonModule": true,
|
|
15
15
|
"forceConsistentCasingInFileNames": true,
|
|
16
|
-
"noImplicitAny": false
|
|
16
|
+
"noImplicitAny": false,
|
|
17
|
+
"noUnusedLocals": false,
|
|
18
|
+
"noUnusedParameters": false
|
|
17
19
|
},
|
|
18
20
|
"include": ["src/**/*"],
|
|
19
21
|
"exclude": ["node_modules", "dist", "example"]
|