SharpLink 1.0.0-beta-0005
dotnet add package SharpLink --version 1.0.0-beta-0005
NuGet\Install-Package SharpLink -Version 1.0.0-beta-0005
<PackageReference Include="SharpLink" Version="1.0.0-beta-0005" />
paket add SharpLink --version 1.0.0-beta-0005
#r "nuget: SharpLink, 1.0.0-beta-0005"
// Install SharpLink as a Cake Addin
#addin nuget:?package=SharpLink&version=1.0.0-beta-0005&prerelease
// Install SharpLink as a Cake Tool
#tool nuget:?package=SharpLink&version=1.0.0-beta-0005&prerelease
SharpLink
A Lavalink wrapper for Discord.Net!
Getting Started
- Follow these instructions to setup Lavalink.
- Once Lavalink is up and running follow the code example below to setup Sharplink.
DiscordSocketClient client = new DiscordSocketClient();
LavalinkManager lavalinkManager = new LavalinkManager(client, new LavalinkManagerConfig
{
RESTHost = "localhost",
RESTPort = 2333,
WebSocketHost = "localhost",
WebSocketPort = 80,
Authorization = "YOUR_SECRET_AUTHORIZATION_KEY",
TotalShards = 1
});
Notes:
You don't have to pass a
LavalinkManagerConfig
since Sharplink uses the default config.
Set
TotalShards
to the total amount of shards your bot uses. If you don't understand whatTotalShards
is you are probably not sharding your bot and should set this value to1
.
Use only a single instance of
LavaLinkManager
. If possible addLavalinkManager
to your DI (Dependency Injection).
Once a LavalinkManager is set up it will need to be started. It is recommended you put this in the ready event.
client.Ready += async () =>
{
await lavalinkManager.StartAsync();
}
From there you can connect to audio channels, play music, and do whatever else you wish to do. Here is an example to connect and play music on a voice channel.
// Get LavalinkPlayer for our Guild and if it's null then join a voice channel.
LavalinkPlayer player = lavalinkManager.GetPlayer(GUILD_ID) ?? await lavalinkManager.JoinAsync(VOICE_CHANNEL);
// Now that we have a player we can go ahead and grab a track and play it
LoadTracksResponse response = await lavalinkManager.GetTracksAsync("IDENTIFIER");
// Gets the first track from the response
LavalinkTrack = response.Tracks.First();
await player.PlayAsync(track);
Notes: To get a track from Youtube use GetTracksAsync($"ytsearch:Query")
. To get a track from SoundCloud use GetTracksAsync($"scsearch:Query")
.
Product | Versions |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- Discord.Net (>= 2.0.0-beta2-00970)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-beta-0005 | 2,134 | 8/15/2018 |
1.0.0-beta-0004 | 672 | 7/9/2018 |
1.0.0-beta-0002 | 745 | 6/23/2018 |
1.0.0-beta-0001 | 652 | 6/3/2018 |
1.0.0-beta | 635 | 5/31/2018 |
- Fixed deadlock in disconnect event (when disconnecting players)
- Removed self deafen completely (no deafen icon)
- Modified LoadTracks API
1. Removed GetTrackAsync
2. GetTracksAsync returns a LoadTracksResponse which returns more verbose info if using Lavalink v3