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.
Files changed (92) hide show
  1. package/.cache/replit/env/latest +72 -72
  2. package/.cache/replit/env/latest.json +1 -1
  3. package/.cache/replit/toolchain.json +1 -1
  4. package/dist/ConnectionPool.d.ts +1 -0
  5. package/dist/ConnectionPool.d.ts.map +1 -1
  6. package/dist/ConnectionPool.js +11 -24
  7. package/dist/ConnectionPool.js.map +1 -1
  8. package/dist/Constants.d.ts +3 -49
  9. package/dist/Constants.d.ts.map +1 -1
  10. package/dist/Constants.js +6 -61
  11. package/dist/Constants.js.map +1 -1
  12. package/dist/Node.d.ts +1 -1
  13. package/dist/Node.d.ts.map +1 -1
  14. package/dist/Node.js +17 -17
  15. package/dist/Node.js.map +1 -1
  16. package/dist/Player.d.ts +9 -5
  17. package/dist/Player.d.ts.map +1 -1
  18. package/dist/Player.js +73 -54
  19. package/dist/Player.js.map +1 -1
  20. package/dist/Plugin.d.ts +0 -14
  21. package/dist/Plugin.d.ts.map +1 -1
  22. package/dist/Plugin.js +0 -12
  23. package/dist/Plugin.js.map +1 -1
  24. package/dist/Queue.d.ts +0 -1
  25. package/dist/Queue.d.ts.map +1 -1
  26. package/dist/Queue.js +7 -22
  27. package/dist/Queue.js.map +1 -1
  28. package/dist/Resolver.d.ts +1 -1
  29. package/dist/Resolver.d.ts.map +1 -1
  30. package/dist/Resolver.js +24 -10
  31. package/dist/Resolver.js.map +1 -1
  32. package/dist/Rest.d.ts +3 -4
  33. package/dist/Rest.d.ts.map +1 -1
  34. package/dist/Rest.js +26 -16
  35. package/dist/Rest.js.map +1 -1
  36. package/dist/TrackCache.d.ts +0 -5
  37. package/dist/TrackCache.d.ts.map +1 -1
  38. package/dist/TrackCache.js +6 -23
  39. package/dist/TrackCache.js.map +1 -1
  40. package/dist/WsQueue.d.ts +2 -11
  41. package/dist/WsQueue.d.ts.map +1 -1
  42. package/dist/WsQueue.js +5 -21
  43. package/dist/WsQueue.js.map +1 -1
  44. package/dist/Yukimu.d.ts +3 -12
  45. package/dist/Yukimu.d.ts.map +1 -1
  46. package/dist/Yukimu.js +2 -8
  47. package/dist/Yukimu.js.map +1 -1
  48. package/dist/connector/DiscordJS.d.ts +1 -18
  49. package/dist/connector/DiscordJS.d.ts.map +1 -1
  50. package/dist/connector/DiscordJS.js.map +1 -1
  51. package/dist/connector/Eris.d.ts +1 -16
  52. package/dist/connector/Eris.d.ts.map +1 -1
  53. package/dist/connector/Eris.js +2 -4
  54. package/dist/connector/Eris.js.map +1 -1
  55. package/dist/connector/Oceanic.d.ts +1 -13
  56. package/dist/connector/Oceanic.d.ts.map +1 -1
  57. package/dist/connector/Oceanic.js +2 -4
  58. package/dist/connector/Oceanic.js.map +1 -1
  59. package/dist/errors/YukimuError.d.ts.map +1 -1
  60. package/dist/errors/YukimuError.js +0 -1
  61. package/dist/errors/YukimuError.js.map +1 -1
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +0 -5
  64. package/dist/index.js.map +1 -1
  65. package/dist/plugins/AutoResume.d.ts +0 -13
  66. package/dist/plugins/AutoResume.d.ts.map +1 -1
  67. package/dist/plugins/AutoResume.js +10 -18
  68. package/dist/plugins/AutoResume.js.map +1 -1
  69. package/dist/plugins/PlayerMoved.js.map +1 -1
  70. package/dist/types.d.ts +25 -34
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +2 -2
  73. package/src/ConnectionPool.ts +14 -31
  74. package/src/Constants.ts +6 -62
  75. package/src/Node.ts +44 -51
  76. package/src/Player.ts +86 -91
  77. package/src/Plugin.ts +0 -16
  78. package/src/Queue.ts +7 -32
  79. package/src/Resolver.ts +25 -14
  80. package/src/Rest.ts +34 -28
  81. package/src/TrackCache.ts +7 -30
  82. package/src/WsQueue.ts +9 -29
  83. package/src/Yukimu.ts +10 -45
  84. package/src/connector/DiscordJS.ts +5 -12
  85. package/src/connector/Eris.ts +6 -17
  86. package/src/connector/Oceanic.ts +5 -15
  87. package/src/errors/YukimuError.ts +0 -2
  88. package/src/index.ts +4 -26
  89. package/src/plugins/AutoResume.ts +13 -37
  90. package/src/plugins/PlayerMoved.ts +4 -4
  91. package/src/types.ts +26 -26
  92. package/tsconfig.json +3 -1
@@ -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: OceanicClient;
4
+ private client: any;
11
5
 
12
- constructor(client: OceanicClient) {
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: { t: string; d: unknown }) => {
19
- if (packet.t === "VOICE_STATE_UPDATE") {
20
- this.manager.handleVoiceStateUpdate(packet.d as Parameters<Yukimu["handleVoiceStateUpdate"]>[0]);
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
- NodeOptions,
33
- NodeStats,
34
- NodeInfo,
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, SavedState> = new Map();
6
+ private states: Map<string, any> = new Map();
21
7
 
22
8
  public load(manager: Yukimu): void {
23
- manager.on("trackStart", (player: Player, track: Track) => {
24
- this.save(player);
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: 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: 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 ((manager.options as any).moveOnDisconnect) {
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 ((manager.options as any).moveOnDisconnect) {
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, unknown>;
35
- requester?: unknown;
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, unknown>;
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: "common" | "suspicious" | "fault";
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; preRelease?: string; build?: string };
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?: { sinOffset?: number; sinScale?: number; cosOffset?: number; cosScale?: number; tanOffset?: number; tanScale?: number; offset?: number; scale?: number };
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]: unknown;
124
+ [key: string]: any;
125
125
  }
126
126
 
127
127
  export type YukimuEvents = {
128
- nodeConnecting: [node: import("./Node").Node];
129
- nodeConnect: [node: import("./Node").Node];
130
- nodeReady: [node: import("./Node").Node];
131
- nodeDisconnect: [node: import("./Node").Node, code: number, reason: string];
132
- nodeError: [node: import("./Node").Node, error: Error];
133
- trackStart: [player: import("./Player").Player, track: Track];
134
- trackEnd: [player: import("./Player").Player, track: Track, reason: string];
135
- trackError: [player: import("./Player").Player, track: Track, exception: LavalinkException];
136
- trackStuck: [player: import("./Player").Player, track: Track, threshold: number];
137
- playerCreate: [player: import("./Player").Player];
138
- playerDestroy: [player: import("./Player").Player];
139
- playerUpdate: [player: import("./Player").Player];
140
- playerMove: [player: import("./Player").Player, oldChannel: string, newChannel: string];
141
- playerError: [player: import("./Player").Player, error: Error];
142
- queueEnd: [player: import("./Player").Player];
143
- autoplayRequest: [player: import("./Player").Player, track: Track];
144
- socketClosed: [player: import("./Player").Player, code: number, reason: string, byRemote: boolean];
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"]