Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kagchi/lavalink-repl
Lavalink on replit
https://github.com/kagchi/lavalink-repl
lavalink lavalink-hosting lavalink-musicbot lavalink-on-repl lavalink-on-replit lavalink-repl lavalink-server replit
Last synced: 3 months ago
JSON representation
Lavalink on replit
- Host: GitHub
- URL: https://github.com/kagchi/lavalink-repl
- Owner: KagChi
- License: mit
- Created: 2021-01-26T12:14:33.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2022-06-30T16:23:54.000Z (over 2 years ago)
- Last Synced: 2024-10-11T00:54:31.286Z (4 months ago)
- Topics: lavalink, lavalink-hosting, lavalink-musicbot, lavalink-on-repl, lavalink-on-replit, lavalink-repl, lavalink-server, replit
- Language: Shell
- Homepage:
- Size: 45.9 KB
- Stars: 52
- Watchers: 1
- Forks: 125
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# lavalink-repl
Lavalink on replit
## Connecting
- [x] Lavalink's port will always 443
- [x] Default password `youshallnotpass`
- [x] using custom lavalink client if your client doesnt support secure options## Important notes:
- [x] Do not change port in `application.yml`
- [x] To keep this 24/7 you need to make an account on UptimeRobot service, and make HTTP request to your app every 5 minutes. For example, if your app is named `lavalink-repl` and your repl username is `ahmasa` then make HTTP request to `https://lavalink-repl.ahmasa.repl.co`
- [x] Do not forget to set your password (in `application.yml` file)
- [x] Connection to node must be secured E.g https/wss\
- [x] Does not automatically update, you must specify `AUTO_UPDATE` true in environtment variables
## Advantages:
- [x] Use java 13 :3
- [x] Easy setup
- [x] Using Dev build
## Glitch
- for glitch user here [Repo](https://github.com/KagChi/lavalink-glitch)## Example
- [x] Latest Shoukaku (v1.6.x)
```js
const { Client } = require('discord.js');
const { Shoukaku, Libraries } = require('shoukaku');const LavalinkServer = [{ name: 'my-lavalink-server', url: 'lavalink-repl.ahmasa.repl.co:443', auth: 'youshallnotpass', secure: true }];
const ShoukakuOptions = { moveOnDisconnect: false, resumable: false, resumableTimeout: 30, reconnectTries: 2, restTimeout: 10000 };class ExampleBot extends Client {
constructor(opts) {
super(opts);
this.shoukaku = new Shoukaku(new Libraries.DiscordJS(this), LavalinkServer, ShoukakuOptions);
}login(token) {
this._setupShoukakuEvents();
this._setupClientEvents();
return super.login(token);
}_setupShoukakuEvents() {
this.shoukaku.on('ready', (name) => console.log(`Lavalink ${name}: Ready!`));
this.shoukaku.on('error', (name, error) => console.error(`Lavalink ${name}: Error Caught,`, error));
this.shoukaku.on('close', (name, code, reason) => console.warn(`Lavalink ${name}: Closed, Code ${code}, Reason ${reason || 'No reason'}`));
this.shoukaku.on('disconnected', (name, reason) => console.warn(`Lavalink ${name}: Disconnected, Reason ${reason || 'No reason'}`));
this.shoukaku.on("debug", (name, reason) => console.debug(`Lavalink node ${name}`, reason || "No reason"));
}_setupClientEvents() {
this.on('messageCreate', async (msg) => {
if (msg.author.bot || !msg.guild) return;
if (!msg.content.startsWith('$play')) return;
if (this.shoukaku.players.get(msg.guild.id)) return;
const args = msg.content.split(' ');
if (!args[0]) return;
const node = this.shoukaku.getNode();
let query = args.join(' ');
let data = await node.rest.resolve(query);
if (!data) return;
const player = await node.joinChannel({
guildId: msg.guild.id,
shardId: msg.guild.shardId || 0,
channelId: msg.member.voice.channelId,
deaf: true
});
const events = ['end', 'error', 'closed', 'disconnect', 'nodeDisconnect'];
for (const event of events) {
player.on(event, info => {
console.log(info);
player.disconnect();
});
}
data = data.tracks.shift();
player.playTrack(data);
await msg.channel.send({ content: `Now Playing ${data.info.title}`});
});
this.on('ready', () => console.log('Bot is now ready'));
}
}new ExampleBot()
.login('token')
.catch(console.error);
```
Example bot [here](https://github.com/KagChi/noteblock)