All Projects → angelobreuer → Lavalink4NET

angelobreuer / Lavalink4NET

Licence: MIT license
Lavalink4NET is a Lavalink wrapper with node clustering, caching and custom players for .NET with support for Discord.Net and DSharpPlus.

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to Lavalink4NET

Shoukaku
A featureful stable wrapper for Lavalink
Stars: ✭ 140 (+47.37%)
Mutual labels:  discord-music-bot, lavalink, lavalink-wrapper
Lavacord
A easy to use Lavalink client that can be used with any discord api wrapper
Stars: ✭ 62 (-34.74%)
Mutual labels:  lavalink, lavalink-wrapper
discord-lavalink-music-bot
This is music bot for discord made with erelajs, lavalink, discordjs v13-dev
Stars: ✭ 34 (-64.21%)
Mutual labels:  discord-music-bot, lavalink
lavamusic
lavalink music bot base in erela.js and discord.js v13
Stars: ✭ 210 (+121.05%)
Mutual labels:  discord-music-bot, lavalink
noteblock
A open-source music bot based on lavalink.
Stars: ✭ 93 (-2.11%)
Mutual labels:  discord-music-bot, lavalink
Discord Music Bot
Discord Music Bot. Play, Playlist, Welcome and Administrative commands.
Stars: ✭ 18 (-81.05%)
Mutual labels:  discord-music-bot, lavalink
LavaJS
A lightweight and Dynamic LavaLink wrapper for Discord bots. Playing music has never been easier!
Stars: ✭ 14 (-85.26%)
Mutual labels:  lavalink, lavalink-wrapper
Discord-Music-Turret-Bot
A standalone Discord music bot, made with DSharpPlus, using Lavalink.
Stars: ✭ 14 (-85.26%)
Mutual labels:  discord-music-bot, lavalink
Laffey
An adorable lavalink discord music bot that has a lot of features inside it.
Stars: ✭ 82 (-13.68%)
Mutual labels:  discord-music-bot, lavalink
NanoSpace
Erela.js & Discord.js@v14 (Prefix Commands!)
Stars: ✭ 59 (-37.89%)
Mutual labels:  discord-music-bot, lavalink
Music-Discord-Bot
A music Discord bot with more than 30+ commands which allows to play music on your server efficiently. Supports Youtube, Spotify, Deezer and Soundcloud links. Skips intros and blanks in the music with Sponsorblock.
Stars: ✭ 57 (-40%)
Mutual labels:  discord-music-bot, lavalink
discord-music
Discord music bot written in Typescript
Stars: ✭ 12 (-87.37%)
Mutual labels:  discord-music-bot
muser
Muser: A powerful Discord music bot made in DJs v13 managed by PGamerX, Peiprjs, and Luckie.
Stars: ✭ 66 (-30.53%)
Mutual labels:  discord-music-bot
hellsnakebot
🤖About A fully customizable bot built with discord.js
Stars: ✭ 14 (-85.26%)
Mutual labels:  discord-music-bot
SparkV
🤖⚡ | The most POWERFUL multipurpose chat/meme bot that will boost the activity in your server.
Stars: ✭ 24 (-74.74%)
Mutual labels:  discord-music-bot
FlareBot
A nice Discord bot made with JDA, FlareBot is a music and server administration bot along with a few other cool features
Stars: ✭ 39 (-58.95%)
Mutual labels:  discord-music-bot
LenoxBot
🖥️ LenoxBot is a Discord bot that offers many cool new features to your Discord server!
Stars: ✭ 218 (+129.47%)
Mutual labels:  discord-music-bot
Green-bot
🎧 Green-bot is a powerfull discord music bot used by 10M users and more than 50,000 servers
Stars: ✭ 103 (+8.42%)
Mutual labels:  discord-music-bot
BrokenDisc
A discord music bot || NO CODING NEEDED!
Stars: ✭ 52 (-45.26%)
Mutual labels:  discord-music-bot
deejay-stereo
Discord music bot built using djs v13, discord-player. Slash Commands only bot
Stars: ✭ 42 (-55.79%)
Mutual labels:  discord-music-bot

CodeFactor.io GitHub tag (latest SemVer) GitHub issues Azure DevOps builds (branch)

Lavalink4NET is a Lavalink wrapper with node clustering, caching and custom players for .NET with support for Discord.Net and DSharpPlus.

Features

  • 🔌 Asynchronous Interface
  • ⚖️ Node Clustering / Load Balancing
  • ✳️ Extensible
  • 🎤 Lyrics
  • 🗳️ Queueing / Voting-System
  • 🎵 Track Decoding and Encoding
  • 🔄 Auto-Reconnect and Resuming
  • 📝 Logging (optional)
  • Request Caching (optional)
  • ⏱️ Inactivity Tracking (optional)
  • 🖋️ Supports Lavalink plugins
  • 🎶 Custom players
  • 🖼️ Artwork resolution
  • 🎚️ Audio filter support
  • 📊 Statistics tracking support
  • Compatible with DSharpPlus and Discord.Net.

   and a lot more...

Lavalink4NET Support Server Banner

NuGet

Prerequisites

  • One or more Lavalink Nodes
  • .NET Core >= 2.0

Getting Started

You can use Lavalink4NET in 3 different modes: Cluster, Node and Rest.

  • Cluster is useful for combining a bunch of nodes to one to load balance.
  • Node is useful when you have a small discord bot with one Lavalink Node.
  • Rest is useful when you only want to resolve tracks.
Using the constructor

Here is an example, how you can create the AudioService for a single node:

var audioService = new LavalinkNode(new LavalinkNodeOptions
{
	RestUri = "http://localhost:8080/",
	WebSocketUri = "ws://localhost:8080/",
	Password = "youshallnotpass"
}, new DiscordClientWrapper(client));
Usage with Dependency Injection / IoC (recommended)
var serviceProvider = new ServiceCollection()
	.AddSingleton<IAudioService, LavalinkNode>()	
	.AddSingleton<IDiscordClientWrapper, DiscordClientWrapper>();
	.AddSingleton(new LavalinkNodeOptions {[...]})
	[...]
	.BuildServiceProvider();
	
var audioService = serviceProvider.GetRequiredService<IAudioService>();

// Do not forget disposing the service provider!

Lookup the LavalinkNodeOptions in the application.yml of your Lavalink Node(s).

Initializing the node

Before using the service you have to initialize it, this can be done using the Ready event of your discord client implementation:

client.Ready += () => audioService.InitializeAsync();
Joining a voice channel and playing a track
// get player
var player = _audioService.GetPlayer<LavalinkPlayer>(guildId) 
    ?? await _audioService.JoinAsync<LavalinkPlayer>(guildId, voiceChannelId);

// resolve a track from youtube
var myTrack = await _audioService.GetTrackAsync("<search query>", SearchMode.YouTube);

// play track
await player.PlayAsync(myTrack);

For more documentation, see: Lavalink4NET Wiki or you could also take a look at Upcoming Features.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].