Kendi Discord Botunuzu Nasıl Yapabilirsiniz?

Discord, özel botlar yazmak için mükemmel bir API'ye ve çok aktif bir bot topluluğuna sahiptir. Bugün kendinizinkini yapmaya nasıl başlayacağınıza bir göz atacağız.

Bir botu kodlamak için biraz programlama bilgisine ihtiyacınız olacak, bu yüzden herkes için değil, ancak neyse ki popüler diller için bunu çok kolaylaştıran bazı modüller var. En popüler olan discord.js'yi kullanacağız.

İLGİLİ: Discord Sunucunuzu Oluşturma, Kurma ve Yönetme

Başlangıç

Discord'un bot portalına gidin ve yeni bir uygulama oluşturun.

Müşteri Kimliğini ve sırrını (tabii ki sır olarak saklamanız gereken) bir not almak isteyeceksiniz. Ancak bu bot değil, sadece "Uygulama". Botu "Bot" sekmesinin altına eklemeniz gerekecek.

Bu jetonu da bir yere not edin ve bir sır olarak saklayın. Hiçbir koşulda bu anahtarı Github'a teslim etmeyin. Botunuz neredeyse anında saldırıya uğrayacak.

Node.js'yi Yükleyin ve Kodlamayı Alın

Javascript kodunu bir web sayfasının dışında çalıştırmak için Düğüme ihtiyacınız vardır. İndirin, kurun ve bir terminalde (veya bunların tümü Windows sistemlerinde çalışması gerektiğinden Komut İstemi) çalıştığından emin olun. Varsayılan komut "düğüm" dür.

Ayrıca nodemon aracını kurmanızı öneririz. Botunuzun kodunu izleyen ve değişikliklerde otomatik olarak yeniden başlayan bir komut satırı uygulamasıdır. Aşağıdaki komutu çalıştırarak kurabilirsiniz:

npm ben -g nodemon

Bir metin düzenleyiciye ihtiyacınız olacak. Sadece not defteri kullanabilirsiniz, ancak Atom veya VSC'yi öneririz.

İşte "Merhaba Dünyamız":

const Discord = required ('discord.js'); const client = new Discord.Client (); client.on ('hazır', () => {console.log (`$ {client.user.tag} olarak oturum açıldı!`);}); client.on ('mesaj', msg => {if (msg.content === 'ping') {msg.reply ('pong');}}); client.login ('belirteç');

Bu kod discord.js örneğinden alınmıştır. Parçalayalım.

  • İlk iki satır, istemciyi yapılandırmak içindir. Birinci satır, modülü "Discord" adlı bir nesneye aktarır ve ikinci satır, istemci nesnesini başlatır.
  • client.on('ready')Bot başladığında blok patlayacaktır. Burada, adını terminale kaydedecek şekilde yapılandırılmıştır.
  • client.on('message')Blok yeni bir mesaj herhangi bir kanala gönderilirse her şey tetiklenir. Tabii ki, mesaj içeriğini kontrol etmeniz gerekecek ve ifbloğun yaptığı budur. Mesaj sadece "ping" diyorsa, o zaman "Pong!"
  • Son satır, bot portalındaki jetonla oturum açar. Açıkçası, buradaki ekran görüntüsündeki simge sahte. Jetonunuzu asla internette yayınlamayın.

Bu kodu kopyalayın, jetonunuzu alt tarafa yapıştırın ve index.js özel bir klasörde olduğu gibi kaydedin.

Bot Nasıl Çalıştırılır

Terminalinize gidin ve aşağıdaki komutu çalıştırın:

nodemon --inspect index.js

Bu, komut dosyasını başlatır ve ayrıca Chrome chrome://inspect/  Omnibar'a yazıp ardından "Node için özel geliştiriciler" i açarak erişebileceğiniz Chrome hata ayıklayıcısını çalıştırır.

Şimdi, sadece "Oturum açıldı" demeli, ancak burada konsola alınan tüm mesaj nesnelerini günlüğe kaydedecek bir satır ekledim:

Peki bu mesaj nesnesini oluşturan nedir? Aslında birçok şey:

En önemlisi, msg.author ve msg.channel ile erişebileceğiniz yazar bilgilerine ve kanal bilgilerine sahipsiniz. Nesneleri Chrome Node geliştiricilerine günlüğe kaydetme yöntemini ve sadece neyin işe yaradığını görmek için etrafa bakmanızı öneririm. İlginç bir şey bulabilirsin. Burada, örneğin, bot yanıtlarını konsola kaydeder, böylece botun yanıtları tetiklenir client.on('message'). Ben de bir spambot yaptım:

Not : Özyineleme ile gerçekten uğraşmak istemediğiniz için buna dikkat edin.

Bot Sunucunuza Nasıl Eklenir

Bu kısım olması gerekenden daha zor. Bu URL'yi almanız gerekiyor:

//discordapp.com/oauth2/authorize?client_id=CLIENTID&scope=bot

Ve CLIENTID'i, uygulama sayfasının genel bilgiler sekmesinde bulunan botunuzun müşteri kimliğiyle değiştirin. Yine de bu yapıldıktan sonra, botu sunucularına eklemelerini sağlamak için arkadaşlarınıza bağlantı verebilirsiniz.

Pekala, Peki Başka Ne Yapabilirim?

Temel kurulumun ötesinde, diğer her şey tamamen size bağlıdır. Ancak, merhaba dünyada durursak bu bir öğretici olmazdı, bu yüzden bazı belgelerin üzerinden geçelim, böylece neyin mümkün olduğuna dair daha iyi bir fikriniz olur. Çok iyi belgelendiği için olabildiğince çok okumanı öneririm.

console.log(client)Kodunuzun başına eklemenizi ve konsoldaki istemci nesnesine bir göz atmanızı öneririm :

From here, you can learn a lot. Since you can add a bot to multiple servers at once, servers are part of the Guilds map object. In that object are the individual Guilds (which is the API’s name for “server”) and those guild objects have channel lists that contain all the info and lists of messages. The API is very deep, and may take a while to learn, but at least it’s easy to set up and get started learning.