C# Discord Müzik Botu Yapımı – 2021

Lavalink

C# discord müzik botu yapımında kullanılabilecek eklenti Lavaplayer ve JDA-Audio tabanlı bağımsız ses gönderme düğümü. Parçalarınızın hiçbirine ulaşmadan ses göndermenize izin verir.

Üretimde FredBoat, Dyno, LewdBot ve daha fazlası tarafından kullanılmaktadır.

Özellikleri

  • Lavaplayer tarafından desteklenmektedir
  • Minimum CPU / bellek ayak izi
  • Twitch / YouTube akış desteği
  • Olay sistemi
  • Aranıyor
  • Ses kontrol
  • Lavaplayer izlerini çözmek için REST API (JVM dışı istemciler için kullanılır)
  • İstatistikler (yük dengeleme için iyidir)
  • Temel kimlik doğrulama
  • Prometheus ölçümleri
  • Docker görüntüleri

Gereksinimler

  • Java 11 * LTS veya üstü gerekir.
  • Linux AMD64 üzerinde çalışan OpenJDK veya Zulu resmi olarak desteklenmektedir.

Darwin (Mac), Windows AMD64 ve Linux ARM (Raspberry Pi) desteği, en iyi çaba esasına göre sağlanır. Bu, Lavaplayer’ın yerel kitaplıklarına bağlıdır.

Diğer JVM’ler için destek de en iyi çabadır. Periyodik CPU kullanım istatistikleri her yerde çalışmayabilir.

* Java 11’in Discord’un TLS 1.3’ü ile ilgili bazı sorunları olduğu görülüyor. Java 14’ün başka teşhis edilmemiş HTTPS sorunları vardır. Java 13 kullanın. Docker görüntüleri güncellendi. Bkz. # 258 , # 260

Değişiklik günlüğü

Lütfen buraya bakın

Sürüm oluşturma politikası

Lavalink’in genel api’si (çok geniş anlamda “api”) iki ana alana ayrılabilir:

  • İstemci Etki Alanı: Hem websocket protokolünden hem de genel http uç noktalarından oluşan, istemcilere sunulan api
  • Sunucu Etki Alanı: Çalışma zamanı ortamı, yapılandırması vb. İle sunucu uygulaması.

Bir etki alanında kırılabilecek değişikliklerin diğerini etkilemesine gerek yoktur. Örnekler:

  • Bir uç noktayı kaldırma. Bu, istemci etki alanı için önemli bir değişikliktir, ancak sunucunun kendisini çalıştırmak için önemli bir değişiklik değildir.
  • Minimum Java sürümünü yükseltme: Bu, sunucu etki alanı için önemli bir değişikliktir, ancak istemci uygulamaları bununla daha az ilgilenemezdi.

C# discord müzik botu yapımı Lavalink için yukarıdakiler göz önüne alındığında, aşağıdaki versiyonlama modeli Lavalink projesine iyi bir şekilde katkıda bulunur:

Bu da ilginizi çekebilir  Ekim 2011 Aylık Gelir Raporum – Akıllı Pasif Gelir

api.major.minor.patch

  • Api : Değişiklikler Lavalink’in istemci alanına son verildiğinde çarpılır Örnekler: Bir uç noktanın kaldırılması, bir uç noktanın çıktısının geriye uyumlu olmayan bir şekilde değiştirilmesi
  • Büyük : Değişiklikler Lavalink sunucu etki alanına verildiğinde çarpılır Örnekler: Yapılandırmayı geriye dönük olmayan bir şekilde değiştirerek gerekli Java sürümünü çarpma
  • Önemsiz : Herhangi bir etki alanındaki yeni özellikler Örnekler: Yeni isteğe bağlı uç nokta veya işlem kodu, ek yapılandırma seçenekleri, büyük alt sistemlerin veya bağımlılıkların değiştirilmesi
  • Yama : Herhangi bir etki alanındaki hata düzeltmeleri Örnekler: Bir yarış koşulunu düzeltme, beklenmedik istisnaları düzeltme, teknik özelliklere uygun olmayan çıktıyı düzeltme vb.

Majör, minör ve yama, Anlamsal Sürüm Oluşturmaya bağlı kalmak için en iyi çabayı gösterirken , onu ek bir api sürümüyle önceden eklemek, istemci uygulamalarının geliştiricileri için iki şekilde hayatı kolaylaştırır: Lavalink projesinin gerçekten alakalı İstemci geliştiricilerdeki değişiklikleri bozar ve bunun karşılığında, istemci geliştiriciler api sürümünü, müşterilerinin Lavalink sunucusuyla uyumluluğunu kullanıcılarına açık bir şekilde iletmek için kullanabilir.

İstemci Kütüphaneleri:

Sunucu yapılandırması

İkilileri CI sunucusundan veya GitHub yayınlarından indirin .

application.ymlÇalışma dizininize bir dosya koyun . Misal

çalıştırmak için komut satırına yazmanız gerekir; java -jar Lavalink.jar

C# discord müzik botu yapımında Discord.NET için daha fazla seçenek sunan ve tüm .NET Lavalink kitaplıklarının toplamından daha iyi performans gösteren Lavalink sarıcı.—

Özellikleri:

C# discord müzik botu yapımında victoria kütüphanesi versiyon 5’in piyasaya sürülmesiyle, Victoria artık önceki tüm versiyonların özelliklerine sahip. Bu özelliklerden bazıları şunlardır:

  • Lavalink özellikleriyle güncel kalmak
  • Victoria’yı ihtiyaçlarınız için genişletme yeteneği
  • OVH ve Genius’tan şarkı sözü desteği
  • YouTube, Vimeo, SoundCloud, Twitch için sanat eseri desteği
  • Yerleşik Kuyruk desteği LinkedList
  • Tamamen eşzamansız
  • STJ ve özel dönüştürücüler ile hızlı serileştirme ve serileştirme
  • Parça dizesini süpernova hızıyla çözme (Pluspy’ye teşekkürler!)
  • Eksiksiz belgelerle anlaşılması kolay API
  • VE bu projenin mümkün olamayacağı sevgi dolu bir topluluk!
Bu da ilginizi çekebilir  Parmesanlı Tortellini Isırıkları - Lanet olsun Lezzetli

C# Discord Müzik Botu Yapımı İçin Hızlı Başlangıç:

C# discord müzik botu yapımında Victoria’ya başlamak oldukça basit ve hızlıdır:

  • Nuget’ten Victoria paketi ekleyin.
  • Ekle LavaNodeve LavaConfigiçin ServiceCollection.
// Çok sayıda programınız yoksa programınızda YALNIZCA BİR LavaNode ve LavaConfig örneği olduğundan emin olun. 
// Lavalink örnekleri çalışıyor ve düğüm havuzu oluşturmak istiyor (kullanıcıların çoğunun yapmadığı). 
// 5.1.2 ve öncesi sürümler için.

	var services = new ServiceCollection()
		// Other services DiscordSocketClient, CommandService, etc
		.AddSingleton<LavaNode>()
		.AddSingleton<LavaConfig>();
		
	var provider = services.BuildServiceProvider();
// Çok sayıda programınız yoksa programınızda YALNIZCA BİR LavaNode ve LavaConfig örneği olduğundan emin olun. 
// Lavalink örnekleri çalışıyor ve düğüm havuzu oluşturmak istiyor (kullanıcıların çoğunun yapmadığı). 
// 5.1.2 ve öncesi sürümler için.


	var services = new ServiceCollection()
		// Other services DiscordSocketClient, CommandService, etc
		.AddLavaNode(x => {
            x.SelfDeaf = false;
        });
		
	var provider = services.BuildServiceProvider();
  • C# discord müzik botu yapımında discordSocketClient veya DiscordShardedClient Ready olay çağrınızda _instanceOfLavaNode.ConnectAsync ();
	discordSocketClient.Ready += OnReadyAsync;
	....
	
	private async Task OnReadyAsync() {
	// Zaten bağlıysa ConnectAsync'i yeniden çağırmaktan kaçının
        // (Zaten bağlıysa InvalidOperationException oluşturur).
		if (!_instanceOfLavaNode.IsConnected) {
			_instanceOfLavaNode.ConnectAsync();
		}
		
		// Diğer hazır ilgili şeyler
	}
  • C# discord müzik botu yapımında Bir Müzik / Ses komut modülü oluşturun ve Victoria ile ilgili komutları yazmaya başlayın!
public sealed class MusicModule : SocketCommandContext {
	private readonly LavaNode _lavaNode;
	
	public MusicModule(LavaNode lavaNode)
		=> _lavaNode = lavaNode;
		
	[Command("Join")]
	public async Task JoinAsync() {	
            if (_lavaNode.HasPlayer(Context.Guild)) {
                await ReplyAsync("Zaten bir ses kanalına bağlıyım!");
                return;
            }

            var voiceState = Context.User as IVoiceState;
            if (voiceState?.VoiceChannel == null) {
                await ReplyAsync("Bir ses kanlaına bağlanmalısınız!");
                return;
            }

            try {
                await _lavaNode.JoinAsync(voiceState.VoiceChannel, Context.Channel as ITextChannel);
                await ReplyAsync($"{voiceState.VoiceChannel.Name} kanalına katıldım!");
            }
            catch (Exception ex) {
                await ReplyAsync(ex.Message);
            }
	}
}

Discord.NET ile bot yapım yazımızı buradan inceleyebilirsiniz!

Teşekkürler Bunu zaten beğendin
Yorum yok