Discord’da insanoğlu düşünce paylaşmak, projeleri tartışmak ve genel olarak yaşam ve hobiler hakkında söyleşi etmek için ortaklık yapıyor. Sadece Discord botları, görevleri otomatikleştirmenin yanı sıra söyleşi odalarınızı daha keyifli hale getirebilir. Bunlar rastgele şakalar söylemekten belirli müzik çalmaya ve daha fazlasına kadar her şey olabilir.
Bununla beraber, Discord bot yapmayı öğrenirken izlemeniz ihtiyaç duyulan bazı mühim adımlar vardır. Onları bu makalede keşfedeceğiz.
Hadi başlamış olalım.
Discord botu oluşturmadan ilkin, botun vazife yeri olduğundan bir sunucu oluşturarak başlamanız gerekir.
Discord sunucusu yada söyleşi odası, platformdaki kanalları ve iletişimleri yönettiğiniz bir alandır.
Discord sunucusu oluşturmak için Discord internet sayfasına gidin ve Discord panonuzda oturum açın. Yada esasen yoksa bir hesap oluşturun.
Panonuza girdikten sonrasında Discord sunucusu yapmak için şu adımları izleyin:
Artık bir Discord sunucusu oluşturdunuz ve üstündeki belirli etkinlikleri denetlemek için bir bot hayata geçirmeye hazırsınız.
Peşinden, Discord Geliştirici Portalı’na giderek bir Discord uygulamasının içinde bir Discord botu oluşturmak istiyorsunuz. Yada bunun yerine tarayıcı adres alanınıza aşağıdaki URL’yi yazabilirsiniz:
https://discord.com/developers/applications
Geliştirici konsoluna girdikten sonrasında:
Şimdi sunucunuzu bota bağlayın.
Bahsettiğimiz benzer biçimde, bir bot ilk olarak sunucunun içinde çalışır. Bundan dolayı, bizim benzer biçimde bir Discord botu oluşturduktan sonrasında, çalışmasını istediğiniz bir sunucuya atamanız gerekir.
Bundan dolayı, oluşturulan URL’yi kopyaladıktan sonrasında, söyleşi odanızı Discord botuna bağlamak için aşağıdaki adımları izleyin:
Şimdi bir Discord botu oluşturdunuz. Sunucu panonuza geri döndüğünüzde robotu sağ kenar çubuğunda görürsünüz. Sadece gördüğünüz benzer biçimde, şu anda çevrimdışı. Bu yüzden, bunu yapmak için programlayana kadar hemen hemen çalışmaz.
Botunuzun çalışmasını sağlamak için, sizin için en uygun programlama dilinde bir komut dosyası yazmanız gerekir.
Bu öğretici için Python’u kullanacağız ve Discord botını mahalli makinede barındıracağız. Her şey ayarlandıktan sonrasında isterseniz Heroku benzer biçimde bulut hizmetlerinde sizinkini barındırabilirsiniz. Hadi dalalım.
Discord botunuzu programlamak için Python ile discord.py yalnızca Python 3.5.3 yada sonraki bir ile çalışan modül.
Hemen hemen yapmadıysanız yada daha önceki bir sürümünüz var ise, son olarak Python sürümünü indirmek için python.org gidin.
Terminalinize aşağıdaki komutu girerek bilgisayarınızda yüklü python sürümünü denetim edebilirsiniz:
python --version
Python güncelse, terminali proje kökünüze açın. Peşinden bir Python sanal ortamını etkinleştirin.
Ek olarak, yüklemeniz gerekir discord.py ve sesli destek paketi discord.py(seslendirme) .
Sanal ortam etkinken, bu paketleri yüklemek için terminalinizde aşağıdaki komutu çalıştırın:
pip install -U discord.py discord.py(voice)
Burada, bir kanalda metin gönderdiğinizde Discord botunuzu hususi bir mesajla cevap verecek şekilde programlayacaksınız.
Sadece ilkin, Discord botunuzu başlatmak için komut dosyanızın en üzerine aşağıdaki kodu yazın:
import discord
# Import the commands module:
from discord.ext import commands
# Initialize the bot instance and use a blank prefix:
bot = commands.Bot(command_prefix="")
#Read your bot token from the txt file in your project root:
Secret = open("secret.txt", 'r')
Secret = Secret.read()
#Run the bot in an event loop:
bot.run(Secret)
Bu, bir sonraki Bot değişkeni, komut derslik. Ve. command_prefix ayraç içinde ondan ilkin gelen bir karakter belirtmenizi sağlar. Dolar işareti ($), ünlem (!), ve işareti (& ) ve daha fazlası benzer biçimde karakterler bot komutlarından ilkin gelen yaygın öneklerdir.
Fakat davamızdaki ön eki unuttuk. Bu yüzden Discord botuna yönerge verirken bir taneye ihtiyacınız yok.
@bot.command() Dekoratör, hususi bir komut verelim. Merhaba ve Discord botu gördüğünde cevap metni sağlayın.
Hususi komutların Python işlevleri bulunduğunu ihmal etmeyin:
import discord
# Import the commands module:
from discord.ext import commands
# Initialize the bot instance:
bot = commands.Bot(command_prefix="")
@bot.command()
async def Hi(ctx):
await ctx.send("Hi, welcome to our server")
Secret = open("secret.txt", 'r')
Secret = Secret.read()
bot.run(Secret)
Şimdi python komut dosyasını terminalinizde çalıştırın. Sonrasında Discord’a git ve sihrin ortaya çıktığını görmek için “Merhaba” gönder.
Yakından bakmış olduğunuzda, Vakit uyumsuz beklemek işlevine hizmet etmek için yöntem. Modülün Discord ile kontakt kurmasının tek yolu bu olduğundan, bu oldukca önemlidir.
Bu, bir sonraki ctx örnek bir bağlamdır ve birçok işlevi vardır. Sadece bu durumda, Discord botunuzun bir bildiri göndermesine izin verir.
Bu örnekte, birisi sunucunuza katıldığında selamlamayı tetiklemek için olayların iyi mi kullanılacağını görmüş olacaksınız. Ek olarak, yeni bir üyenin kullanıcı adını ve kutlama iletisinde katıldıkları sunucuyu iyi mi görüntüleyeceksiniz?
Kullanacağız. @bot.vaka onun yerine burada. Şöyleki çalışır:
@bot.event
async def on_member_join(member):
guild = member.guild
if guild.system_channel is not None:
detailMessage = 'We welcome {0.mention} to the {1.name}!'.format(member, guild)
await guild.system_channel.send(detailMessage)
Bu, bir sonraki on_member_join işlevi bir vaka türüdür. Fakat daha bir sürü var. Bu, bir sonraki on_ready yöntemi, mesela, bir botun hazır olup olmadığını denetlemek için yaygın olarak kullanılan bir vakadır.
Ek olarak, aşağıdaki şart eğer deyimi bağlı sunucunun (lonca yada söyleşi odası) var olup olmadığını denetler. Var ise, Python mısra biçimini kullanır yeni üyenin kullanıcı adını ve katıldıkları sunucuyu çıktısını alma yöntemi.
Şimdi nasıl sonuçlanacağını görmek için bir arkadaşınızdan sunucunuza katılmasını isteyin. Gene de, çalıştığından güvenilir olmak için ilkin bunu düzmece bir Discord hesabıyla tecrübe etmek isteyebilirsiniz.
Şimdi kodu genişletelim. Ve bu sefer, botunuza belirli bir komut aldığında bir ses kanalına katılmasını yada ayrılmasını söyleyeceksiniz.
Aşağıdaki örnek kodda, “enter” yazdığınızda Discord botu bir ses kanalında size katılır:
@bot.command()
async def enter(ctx):
if ctx.author.voice:
await ctx.message.author.voice.channel.connect()
İçindeki şart eğer deyimi, bir ses kanalına katılıp katılmadiğinizı denetler. Eğer öyleyse, beklemek anahtar kelime Discord botunuzu ona bağlar.
Bu, komutun emek harcaması için ilkin bir ses kanalına katılmış olmanız gerektiği anlamına gelir.
Not : Her güncellemeden sonrasında Python komut dosyanızı durdurup tekrardan başlattığınızdan güvenilir olun. Python’un değişikliklerinizi senkronize etmenine olanak tanır.
Python komut dosyanızı tekrardan çalıştırdığınızda Discord’u açın ve girmek —artık Discord botunuzun ses kanalına katıldığını görmüş olacaksınız.
Botunuzdan kanaldan ayrılmasını istemek, onu eklemek kadar kolaydır.
Aşağıdaki kod, uygun komutu yazdığınızda kanaldan ayrılmasını söyler. Bu durumda “ayrıl” kelimesini kullanacağız:
@bot.command()
async def leave(ctx):
if ctx.voice_client:
await ctx.guild.voice_client.disconnect()
Komut dosyanızı durdurun ve tekrardan çalıştırın. Discord botu artık “ayrıl” komutunu gönderdiğinizde ses kanalından ayrılmalıdır.
İşte bu! Kendine işlevsel bir Discord robotu yaptın. Örnek kod bloklarını bir araya getir ve Discord botuna özellikler eklemeye devam et. Mesela, bir ses kanalına katılır katılmaz bilgisayarınızdan yada bir akış platformundan müzik çalmasını söyleyebilirsiniz.
Discord botlarını kullanmak eğlencelidir. Söyleşi odalarınızda hemen hemen onlarla görevleri otomatikleştirmiyorsanız, ciddi bir verimliliği kaçırıyorsunuz demek demek.