Skip to content

Commit df2c566

Browse files
authored
Merge pull request #62 from RainyXeon/dev
add: nodeReconnect event
2 parents a2e6254 + 86e7c1d commit df2c566

File tree

5 files changed

+60
-49
lines changed

5 files changed

+60
-49
lines changed

README.md

Lines changed: 42 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ Here: [https://rainlinkjs.vercel.app/](https://rainlinkjs.vercel.app/)
2828
# 💿 Used by
2929

3030
| Name | Creator | Variants |
31-
| ---------------------------------------------------- | ------------ | ----------------- |
31+
|------------------------------------------------------|--------------|-------------------|
3232
| [ByteBlaze](https://github.com/RainyXeon/ByteBlaze) | RainyXeon | Modded / Built in |
3333

3434
If you want to add your own bot create a pull request with your bot added. Please add your full name.
@@ -38,7 +38,7 @@ If you want to add your own bot create a pull request with your bot added. Pleas
3838
This is the list of all rainlink plugin currently supported
3939

4040
| Name | Type | Link | Author |
41-
| ------------------ | -------- | ----------------------------------------------------------------------------------------------------------------------------- | --------- |
41+
|--------------------|----------|-------------------------------------------------------------------------------------------------------------------------------|-----------|
4242
| rainlink-nico | Official | [npmjs](https://www.npmjs.com/package/rainlink-nico) / [github](https://github.com/RainyProduction/rainlink-nico) | RainyXeon |
4343
| rainlink-deezer | Official | [npmjs](https://www.npmjs.com/package/rainlink-deezer) / [github](https://github.com/RainyProduction/rainlink-deezer) | RainyXeon |
4444
| rainlink-apple | Official | [npmjs](https://www.npmjs.com/package/rainlink-apple) / [github](https://github.com/RainyProduction/rainlink-apple) | RainyXeon |
@@ -50,50 +50,12 @@ This is the list of all rainlink plugin currently supported
5050
This is the list of all rainlink driver currently supported (codename is made up by me)
5151

5252
| Driver Name | Voice Server | Language | Supported Version | Codename | Notes |
53-
| ----------------- | ----------------------------------------------------- | ---------- | ----------------- | -------- | ----------------------------------------------------------------- |
53+
|-------------------|-------------------------------------------------------|------------|-------------------|----------|-------------------------------------------------------------------|
5454
| lavalink/v4/koinu | [Lavalink](https://github.com/lavalink-devs/Lavalink) | Java | v4.0.0 - v4.x.x | koinu | |
5555
| lavalink/v3/koto | [Lavalink](https://github.com/lavalink-devs/Lavalink) | Java | v3.0.0 - v3.7.x | koto | `filter` and `resume` in lavalink below v3.4 not supported |
5656
| nodelink/v2/nari | [Nodelink](https://github.com/PerformanC/NodeLink) | Javascript | v2.0.0 - v2.x.x | nari | Some `filter` mode in nodelink not supported |
5757
| frequenc/v1/miku | [FrequenC](https://github.com/PerformanC/FrequenC) | C | IN TESTING | miku | This driver is in testing so don't use it or you will have errors |
5858

59-
# 📃 Migrtation logs:
60-
## 0.9.2 -> 1.0.0
61-
```diff
62-
src/index.ts
63-
- Plugin
64-
- Plugin.VoiceReceiver
65-
- Plugin.PlayerMoved
66-
src/Interface/Constants.ts
67-
- VoiceConnect = 'voiceConnect',
68-
- VoiceDisconnect = 'voiceDisconnect',
69-
- VoiceError = 'voiceError',
70-
- VoiceStartSpeaking = 'voiceStartSpeaking',
71-
- VoiceEndSpeaking = 'voiceEndSpeaking',
72-
src/Plugin/RainlinkPlugin.ts
73-
+ isRainlinkPlugin
74-
```
75-
76-
## 0.9.0 -> 0.9.2
77-
```diff
78-
src/Node/RainlinkRest.ts
79-
- getLavalinkInfo()
80-
+ getInfo()
81-
```
82-
83-
## 0.8.0 -> 0.9.0
84-
```diff
85-
src/Player/RainlinkPlayer.ts
86-
- <RainlinkPlayer>.setFilter("nightcore")
87-
+ <RainlinkPlayer>.filter.set()
88-
+ <RainlinkPlayer>.filter
89-
90-
src/Interface/Constants.ts
91-
+ RainlinkFilterMode
92-
93-
src/index.ts (Add new class)
94-
+ RainlinkFilter
95-
```
96-
9759
# 💾 Example bot:
9860

9961
```js
@@ -168,10 +130,47 @@ client.on("messageCreate", async msg => {
168130
}
169131
})
170132

171-
172133
client.login('');
173134
```
174135
136+
# 📃 Migrtation logs:
137+
## 0.9.2 -> 1.0.0
138+
```diff
139+
src/index.ts
140+
- Plugin
141+
- Plugin.VoiceReceiver
142+
- Plugin.PlayerMoved
143+
src/Interface/Constants.ts
144+
- VoiceConnect = 'voiceConnect',
145+
- VoiceDisconnect = 'voiceDisconnect',
146+
- VoiceError = 'voiceError',
147+
- VoiceStartSpeaking = 'voiceStartSpeaking',
148+
- VoiceEndSpeaking = 'voiceEndSpeaking',
149+
src/Plugin/RainlinkPlugin.ts
150+
+ isRainlinkPlugin
151+
```
152+
153+
## 0.9.0 -> 0.9.2
154+
```diff
155+
src/Node/RainlinkRest.ts
156+
- getLavalinkInfo()
157+
+ getInfo()
158+
```
159+
160+
## 0.8.0 -> 0.9.0
161+
```diff
162+
src/Player/RainlinkPlayer.ts
163+
- <RainlinkPlayer>.setFilter("nightcore")
164+
+ <RainlinkPlayer>.filter.set()
165+
+ <RainlinkPlayer>.filter
166+
167+
src/Interface/Constants.ts
168+
+ RainlinkFilterMode
169+
170+
src/index.ts (Add new class)
171+
+ RainlinkFilter
172+
```
173+
175174
# ✨ Special thanks
176175
177176
- [@Deivu](https://github.com/Deivu): Founder of [@shipgirlproject](https://github.com/shipgirlproject) and creator of [Shoukaku](https://www.npmjs.com/package/shoukaku) / **inspired**
@@ -182,4 +181,4 @@ client.login('');
182181
183182
# 💫 Credits
184183
- [@RainyXeon](https://github.com/RainyXeon): Owner of Rainlink
185-
- [@PAINFUEG0](https://github.com/PAINFUEG0): Tester and member of [#TeamRain](https://comming.soon)
184+
- [@PAINFUEG0](https://github.com/PAINFUEG0): Tester of [#TeamRain](https://comming.soon)

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rainlink",
3-
"version": "1.0.5-hotfix1",
3+
"version": "1.0.6",
44
"description": "Another lavalink wrapper but focus on stability and rich features",
55
"repository": {
66
"type": "git",

src/Interface/Constants.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ export enum RainlinkEvents {
66
// Node
77
NodeConnect = 'nodeConnect',
88
NodeDisconnect = 'nodeDisconnect',
9+
NodeReconnect = 'nodeReconnect',
910
NodeClosed = 'nodeClosed',
1011
NodeError = 'nodeError',
1112
// Player

src/Node/RainlinkNode.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,8 @@ export class RainlinkNode {
172172
/** Reconnect back to this lavalink server */
173173
public reconnect(noClean: boolean) {
174174
if (!noClean) this.clean();
175+
this.debug(`Node is trying to reconnect! URL: ${this.driver.wsUrl}`);
176+
this.manager?.emit(RainlinkEvents.NodeReconnect, this)
175177
this.driver.connect();
176178
}
177179

src/Rainlink.ts

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ export declare interface Rainlink {
4646
* @event Rainlink#nodeDisconnect
4747
*/
4848
on(event: 'nodeDisconnect', listener: (node: RainlinkNode, code: number, reason: Buffer) => void): this;
49+
/**
50+
* Emitted when a lavalink server is trying to reconnect.
51+
* @event Rainlink#nodeReconnect
52+
*/
53+
on(event: 'nodeReconnect', listener: (node: RainlinkNode) => void): this;
4954
/**
5055
* Emitted when a lavalink server is closed.
5156
* @event Rainlink#nodeClosed
@@ -168,6 +173,8 @@ export declare interface Rainlink {
168173
once(event: 'nodeConnect', listener: (node: RainlinkNode) => void): this;
169174
/** @ignore */
170175
once(event: 'nodeDisconnect', listener: (node: RainlinkNode, code: number, reason: Buffer) => void): this;
176+
/** @ignore */
177+
once(event: 'nodeReconnect', listener: (node: RainlinkNode) => void): this;
171178
/** @ignore */
172179
once(event: 'nodeClosed', listener: (node: RainlinkNode) => void): this;
173180
/** @ignore */
@@ -236,6 +243,8 @@ export declare interface Rainlink {
236243
off(event: 'nodeConnect', listener: (node: RainlinkNode) => void): this;
237244
/** @ignore */
238245
off(event: 'nodeDisconnect', listener: (node: RainlinkNode, code: number, reason: Buffer) => void): this;
246+
/** @ignore */
247+
once(event: 'nodeReconnect', listener: (node: RainlinkNode) => void): this;
239248
/** @ignore */
240249
off(event: 'nodeClosed', listener: (node: RainlinkNode) => void): this;
241250
/** @ignore */
@@ -538,11 +547,11 @@ export class Rainlink extends EventEmitter {
538547
userAgent: `Discord/Bot/${metadata.name}/${metadata.version} (${metadata.github})`,
539548
nodeResolver: undefined,
540549
structures: {
541-
player: undefined,
542-
rest: undefined,
543-
queue: undefined,
544-
filter: undefined
545-
},
550+
player: undefined,
551+
rest: undefined,
552+
queue: undefined,
553+
filter: undefined
554+
},
546555
resumeTimeout: 300,
547556
};
548557
}

0 commit comments

Comments
 (0)