
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
The ShipGirl Project. Shoukaku (c) Kancolle for Shoukaku
✅ Currently being used by:
✅ Designed to used in Discord.JS v12
✅ Straightforward, Maintained, and Reliable.
✅ Stable for long term usage.
✅ Offers features that other libraries don't have.
✅ Very cute and reliable Shipgirl ❤ (Important)
https://deivu.github.io/Shoukaku/?api
For Stable
npm i shoukaku
For Master
npm i Deivu/Shoukaku
You can view it on CHANGELOGS.MD file in this repository.
If you need help on using this, Join Here ShipGirls Community and ask at #support
.
Feel free to open an issue in the Issues section of this repository.
If you want to help in development, you can use the wrapper and report the issues you experienced on using it, or Submit a PR if you think you can improve something.
There is a Discord.JS actual implementation and a simple implementation examples below.
View Kongou's source code here
const { Client } = require('discord.js');
const { Shoukaku } = require('shoukaku');
const LavalinkServer = [{ name: 'Localhost', host: 'localhost', port: 6969, auth: 'big_weeb' }];
const ShoukakuOptions = { moveOnDisconnect: false, resumable: false, resumableTimeout: 30, reconnectTries: 2, restTimeout: 10000 };
class ExampleBot extends Client {
constructor(opts) {
super(opts);
this.shoukaku = new Shoukaku(this, LavalinkServer, ShoukakuOptions);
}
login(token) {
this._setupShoukakuEvents();
this._setupClientEvents();
return super.login(token);
}
_setupShoukakuEvents() {
this.shoukaku.on('ready', (name) => console.log(`Lavalink Node: ${name} is now connected`));
// You must handle error event
this.shoukaku.on('error', (name, error) => console.log(`Lavalink Node: ${name} emitted an error.`, error));
this.shoukaku.on('close', (name, code, reason) => console.log(`Lavalink Node: ${name} closed with code ${code}. Reason: ${reason || 'No reason'}`));
this.shoukaku.on('disconnected', (name, reason) => console.log(`Lavalink Node: ${name} disconnected. Reason: ${reason || 'No reason'}`));
}
_setupClientEvents() {
this.on('message', async (msg) => {
if (msg.author.bot || !msg.guild) return;
if (!msg.content.startsWith('$play')) return;
if (this.shoukaku.getPlayer(msg.guild.id)) return;
const args = msg.content.split(' ');
if (!args[1]) return;
const node = this.shoukaku.getNode();
let data = await node.rest.resolve(args[1]);
if (!data) return;
if (Array.isArray(data)) data = data[0];
const player = await node.joinVoiceChannel({
guildID: msg.guild.id,
voiceChannelID: msg.member.voice.channelID
});
const cleanFunction = (param) => {
console.log(param);
player.disconnect();
}
player.on('end', cleanFunction);
player.on('closed', cleanFunction);
player.on('error', cleanFunction);
player.on('nodeDisconnect', cleanFunction);
await player.playTrack(data.track);
await msg.channel.send("Now Playing: " + data.info.title);
});
this.on('ready', () => console.log('Bot is now ready'));
}
}
new ExampleBot()
.login('token')
.catch(console.error);
FAQs
A stable and updated wrapper around Lavalink
The npm package shoukaku receives a total of 792 weekly downloads. As such, shoukaku popularity was classified as not popular.
We found that shoukaku demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.