Discord Bot Yapımı C# | DSharpPlus
DSharpPlus
DSharpPlus is an unofficial .NET wrapper for the Discord API. It was originally a fork of DiscordSharp by Suicvne, but has since been rewritten to fit quality and API standards, as well as target wider range of .NET implementations.
Source

Merhaba arkadaşlar bir .NET kütüphanesi olan DSharpPlus' ı kullanarak bir Discord Bot yapacağız. DSharpPlus .Net üzerinden Discord apisini kullanmamızı sağlayan bir kütüphanedir.
Bu api sayesinde çok kolay bir şekilde Discord botları tasarlayabilir bot tasarlama mantığını anlayabilirsiniz.
Yararlı Linkler
DSharpPlus Website
GitHub
Nuget
Discord Developers
Discord Developer Uygulama Oluşturma
Şimdi arkadaşlar öncelikle Discord Developers üzerinden yeni bir uygulama oluşturmamız gerekiyor. Bunun için Discord Developers ' a gidiyoruz.
My Apps bölümünden New App'a tıklıyoruz.
Bu alana tıkladıktan sonra karşığımıza aşağıdaki gibi bir alan gelecek.
Bu gelen alana uygulamamızın adını açıklamasını ve ikonunu giriyoruz. Ve Create App'a basıyoruz.
Uygulamamız başarıyla oluşturuldu. Şimdi uygulamamızın sayfasında aşağıya iniyoruz. Ve Create Bot User alanına tıklıyoruz.
Botumuz oluşturuluyor.
Şimdi karşımıza gelen bu alanda 2 yere ihtiyacımız var. Birincisi token alanı bunu C# uygulamamızda kullanacağız botun mesaj almasını ve göndermesini sağlamak için. İkiniciside Generate OAuth2 URL alanı buradan ise botumuzu sunucumuza kaydedeceğiz.
Token bölümümüzdeki click to reveal bölümüne tıklıyoruz. Ve çıkan token kodumuzu bir yere kaydediyoruz.
Generate OAuth2 URL alanı için öncelikle sunucumuzu açmamız gerekiyor. Ben şimdi C# uygulamamızı hazırlamaya geçeceğim o hazır olunca sunucumuzu açıp Generate OAuth2 URL oluşturma alanını kullanarak botumuzu sunucumuza kaydedeceğiz.
C# Uygulaması
Öncelikle Visual Studio'yu açıyoruz. Proje adımızı giriyoruz ve bir Console Application uygulaması oluşturuyoruz.
Şimdi uygulamamızı oluşturuduğumuza göre kütüphanemizi Nuget ile projemize ekleyeceğiz.
Bunun için üst tarafta verdiğim Nuget linkimizdeki kodu Nuget Console bölümümüze yazıyoruz.
Kodumuz:
Install-Package DSharpPlus -Version 3.2.3
Nuget paket eklemeyi detaylı açıkladığım eğitime buradan ulaşabilirsiniz.
Turkish Tutorial of NuGet Package Manager C#
Kütüphanemiz başarıyla projemize eklendi.
Kütüphanemizi programımızda kullanabilmek için en üst kısmımıza kütüphanemizin using kodunu ekliyoruz.
Kodumuz:
using DSharpPlus;
Şimdi öncelikle Main metodumuzun üstüne bir discord client nesnesi tanımlamız gerekiyor.
Kodumuz şu şekilde:
static DiscordClient discord;
Şimdide bir metot oluşturmamız gerekiyor botumuzun sürekli açık kalıp mesaj bekleyip cevap vermesi için. Bu aynı zamanda kütüphanemizi kullanarak botumuzun tüm mesajları okumasını ve gerekli kriteler sağlandığında cevap vermesini sağlayacak.
Metodumuz şu şekilde:
static async Task MainAsync(string[] args)
{
discord = new DiscordClient(new DiscordConfiguration
{
Token = "tokenininiz buraya",
TokenType = TokenType.Bot
});
``` discord.MessageCreated += async e =>```
``` {```
if (e.Message.Content.ToLower().StartsWith("selam"))
await e.Message.RespondAsync("Aleyküm Selam Reis");
};
await discord.ConnectAsync();
await Task.Delay(-1);
}
Kodlarımızı açıklamam gerekirse öncelikle yukarıda oluşturduğumuz nesnemizi kullanarak. Yeni bir Client oluşturuyoruz ve Tokenimizi bu client içine giriyoruz. Sonra tokenimizi verdiğimiz botumuzun
MessageCreated fonksiyonuna geliyoruz ve eğer mesaj selam ile başlıyorsa cevap Aleyküm Selam Reis olsun diye bir bölüm yazıyoruz.
Bunu istediğiniz gibi değiştirebilirsiniz tabi bu tamamen sizin hayal gücünüze sağlık örnek kripto para görüntüleme botları world coin index apisini kullanarak widget çeker mesaja göre upvote botları post linkini alıp upvote gönderir eğer upvote gönderildiyse upvoted mesajı gönderir gönderilemediyse hata mesajı gönderir gibi. Dediğim gibi bu tamamen sizin hayal gücünüze kalmış.
Fonksiyonumuzda bu kadardı son olarak Main fonksiyonumuzun içine yazdığımız fonksiyonumuzu çağırıyoruz.
Kodumuz:
MainAsync(args).ConfigureAwait(false).GetAwaiter().GetResult();
Şaka gibi ama C# projemiz bu kadar kütüphanemiz sayesinde ortalama 30 satır bir kodla botumuz hazır.
Not: Bottan cevap açabilmek için hazırladığınız C# projenizin açık olması gerekiyor.
Sunucu oluşturma Ve Botu Kaydetme
Şimdi C# projemizde tamamlandığına göre bir sunucu oluşturup botumuzu bu sunucuya kaydetmemiz gerekiyor.
Discord App 'a giriş yapıyoruz.
Kanallarımızın bulunduğu sol taraftaki + butonuna tıklıyoruz.
Karşımıza gelen alanda oluştur bir sunucu oluştur diyoruz.
Karşımızı böyle bir alan geliyor burada sunucumuzun adını,bölgesini ve simgesini seçip oluştur'a basıyoruz. Sunucumuz başarılı bir şekilde oluşturuluyor.
Şimdi C# projemize geri dönüp f5 e basarak projemizi çalıştırıyoruz.
Programımızda aktif olduğuna göre şimdi tek yapmamız gereken botumuzu sunucuma bağlamak bunun için yukarda bahsettiğim Generate OAuth2 URL alanını kullanıcaz. Tekrar Discord Developers ' a gidiyoruz. My apps bölümünden uygulamamıza giriyoruz yukarda gösterdiğim Generate OAuth2 URL bölümüne tıklıyoruz.
Çıkan ekrandaki url'mizi kopyalarıyoruz ve tarayıcımıza yapıştırıyoruz.
Bu linke tıklayınca karşımıza botumuzu hangi sunucumuza ekleyeceğimiz bir alan çıkıyor.
Burada biraz önce oluşturduğumuz sunucumuzu seçip Doğrula'ya basıyoruz.
Sunucumuzda yetklilendirme işlemimizde tamamlandı. C# Projemiz açık botunumuz tokenimizle beklemede şimdi tek yapmamız gereken sunucumuza girip botumuzu denemek.
:) Benim ilk denemem biraz stresli oldu kodları tam olarak oturtamadığım için ama sonradan çözdüm sorunu evet arkadaşlar gördüğünüz gibi botumuz çalışıyor eğitim konumuz bu kadardı. Katkı yapabildiysem ne mutlu bana yine takıldığınız bir yer veya aklınıza takılan bir soru olursa yorumlarda belirtebilirsiniz.
Saygılarımla Ve Sevgilerimle
Samet Aydın
Posted on Utopian.io - Rewarding Open Source Contributors
Tesekkur ederim yarin ilk isim yaomaya koyulmak
Rica ederim katkı sağlaması dileğiyle yine bir sorunuz olursa burdan veya discord üzerinden ulaşabilirsiniz
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Thanks :)
Harika bir anlatım. Vakit bulur bulmaz deneyeceğim. Paylaştığınız için çok teşekkürler 🙂
Rica ederim Keyifli bir proje olması dileğiyle :)
Hey @pars11 I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
discord.MessageCreated += async e =>
{
if (e.Message.Content.ToLower().StartsWith("sa"))
await e.Message.RespondAsync("as");
};
//////////////
Komutunda CS1593 hatası oluşuyor