Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yucked/victoria
🌋 - Lavalink wrapper for Discord.NET. Provides more options and performs better than all .NET Lavalink libraries combined.
https://github.com/yucked/victoria
discord discord-music-bot discord-net lavalink lavalink-client lavalink-wrapper lavaplayer victoria
Last synced: 1 day ago
JSON representation
🌋 - Lavalink wrapper for Discord.NET. Provides more options and performs better than all .NET Lavalink libraries combined.
- Host: GitHub
- URL: https://github.com/yucked/victoria
- Owner: Yucked
- Created: 2018-10-01T14:14:15.000Z (over 6 years ago)
- Default Branch: v7
- Last Pushed: 2024-06-21T00:01:35.000Z (8 months ago)
- Last Synced: 2025-01-29T06:14:51.808Z (9 days ago)
- Topics: discord, discord-music-bot, discord-net, lavalink, lavalink-client, lavalink-wrapper, lavaplayer, victoria
- Language: C#
- Homepage: https://github.com/Yucked/Victoria/wiki
- Size: 1.48 MB
- Stars: 194
- Watchers: 9
- Forks: 48
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
🌋 - Lavalink wrapper for Discord.NET which provides more options and performs better than all .NET Lavalink libraries combined.
### `Changelog v7.0`
Victoria 7.x rewrites focuses on Lavalink v4 support. Lavalink v4 introduces several changes which break Victoria's functionality on v6.x, to avoid codebase overhaul on user's end, breaking changes are minimal on Victoria' end.#### `➕ Additions:`
- `ExceptionSeverity` for Lavalink exceptions
- Introduced `ISRC`, `SourceName`, `PluginInfo`, `Artwork` properties in `LavaTrack`
- Added `LavaNodeExtensions`, `LavaPlayerExtensions` for non-API methods.
- Added `GetLavalinkVersionAsync`, `GetLavalinkStatsAsync`, `UpdatePlayerAsync`, `UpdateSessionAsync`, `DestroyPlayerAsync` methods to `LavaNode`.#### `❌ Removals:`
- `ArtworkResolver`, `LyricsResolver` have been moved to Victoria.Addons, this will be a separate package.
- Removed `Bands`, `TextChannel`, `VoiceChannel`, `IsConnected` properties from `LavaPlayer`.#### `💀 Modifications:`
- `Vueue` is renamed to `LavaQueue`, this change my be reverted.
- `LavaPlayer` no longer contains any methods for controlling the player.
- `RoutePlanner` has been merged with `LavaNode`.### `Quick Start`
Full example code @ https://github.com/Yucked/Victoria/tree/examples/v7
> 🐲 Program.cs
```cs
var serviceCollection = new ServiceCollection()
// .. other services
.AddLogging(x => {
x.ClearProviders();
x.AddColorfulConsole();
x.SetMinimumLevel(LogLevel.Trace);
})
.AddLavaNode()
.AddSingleton();
```> 🤖 Discord Service / Events Handler
```cs
private async Task OnReadyAsync() {
// connect to lavalink
await _serviceProvider.UseLavaNodeAsync();
}
```
> 🎸 AudioModule.cs
```cs
[Command("Join")]
public async Task JoinAsync() {
var voiceState = Context.User as IVoiceState;
if (voiceState?.VoiceChannel == null) {
await ReplyAsync("You must be connected to a voice channel!");
return;
}
try {
await lavaNode.JoinAsync(voiceState.VoiceChannel);
await ReplyAsync($"Joined {voiceState.VoiceChannel.Name}!");
audioService.TextChannels.TryAdd(Context.Guild.Id, Context.Channel.Id);
}
catch (Exception exception) {
await ReplyAsync(exception.ToString());
}
}
```