Giter Site home page Giter Site logo

serkanalc / basic-discord-bot Goto Github PK

View Code? Open in Web Editor NEW
5.0 1.0 0.0 1.34 MB

Basit aşamada bir discord botu oluşturma, discord sunucunuza davet etme, botu etkinleştirme ve basit düzeyde tepki verecek kadar kodlayarak özelleştirme.

License: MIT License

Shell 9.58% TypeScript 90.42%
nodejs discord-bot discord-js basics

basic-discord-bot's Introduction

Basit Düzeyde Bir Discort Botu Yaratmak!

Bu yazıda:

  • Basit bir discord botu yaratmayı.
  • Yarattığınız botu Discord kanalına yüklemeyi.
  • Çalıştırmayı ve basit düzeyde yazılan yazılara cevap verebilecek hale getirmeyi..

Açıklıyor olacağım. İşte konu başlıkları:

Adım Ø : Başlamadan Önce

Discord botu yapımına başlamadan önce uygun araçlara sahip olmanız gerekiyor.

  • Node.JS: İhtiyacımız olan ilk araç, bu indirme bağlantısına tıklayarak indirebilirsiniz.

  • Visual Studio Code: Şimdi kodunuzu yazabileceğiniz bir İDE'ye ihtiyacınız var, ben Visual Studio Code kullanıyorum. Bu indirme bağlantısına tıklayarak indirebilirsiniz.

Adım 1 : Discord Botunun Doğuşu

Botumuzu oluşturmak için Discord Developer Portal'a giriş yapmamız gerekiyor. Daha sonra eğer değilseniz application sekmesine tıklamanız gerekiyor ve sonrasında "New Application" butonuna tıklamanız yeterli.

Discord Main

Sonrasında discord botunuz için bir isim vermeniz istenecektir. Size uygun olduğunu düşündüğünüz bir issim verebilirsiniz. Görmeniz gereken ekran aşağıdaki gibi olması gerekir

Discord Main 2

Eğer gördüğünüz ekran doğruysa bu bölümden botunuzun ismini, resmini ve açıklamasını değiştirebilir değiştirebilir biçimlendirebilirsiniz. Sonrasında solda göreceğiniz "Bot" sekmesine tıklayıp açılan sayfada "Add Bot" butonuna basmanız ve gelen onay penceresinden "Yes, do it!" butonunuza basmanız gerekiyor

Dikkat!

Aşağıda göreceğiniz Token botunuzun güvenliği için çok önemlidir. Token'ınızı asla kimseyle paylaşmayın. Token'ınızın güvenliğinin ihlal edildiğini düşünüyorsanız "Regenerate" butonuna tıklayınız tıklayın.

Discord main 3

Adım 2 : Merhabe Bot. Umarız Pizza Getirmişsindir!

Artık botunuzu discord kanalına davet edip denemelere başlamanız gerekiyor. Bunun için yeni bir discord kanalı oluşturmanızı tavsiye ederim. Oluştuyrduğunuz botu discord kanalınıza eklemek için Discord Developer Portal'da sol taraftan OAuth2 sekmesine gelmeniz ve "SCORPES" kısmına bakmalı, "bot" ve "applications.commands" seçeneklerini seçmelissiniz.

Sonrasında "BOT PERMISSIONS" kısmına geçebiliriz. Gerçek bir bot yayınlarken sadece gerekli izinleri istemek önemlidir. Bu şekilde sunucu sahipleri, botunuzun çok fazla izinle sunucularına neler yapabileceği konusunda endişelenmek zorunda kalmazlar. Ancak öğrenirken işleri basit tutmak için "Administrator" iznini seçebiliriz. Bu, ihtiyacımız olan her şeye erişmemizi sağlayacaktır.Bu işlemleri yaptığınızda karşınızda gözükmesi gereken ekran şu şekildedir:

Discord Main 4

"SCORPES" bölümünün altında davet etmeniz için bir link oluştuğunu göreceksiniz. Bu link, botunuzu davet etmek için sunucu sahiplerine verebileceğiniz bağlantıdır. Bu bağlantıyı yeni bir sekmede açmanız ve yeni test sunucunuzu seçmeniz yeterlidir.

Adım 3 : Terminal 101

Botunuz için yeni bir Node.JS projesi kurmamız gerekiyor. Önce sizin için uygun olduğunu düşündüğünüz bir konumda yeni bir klasör oluşturun ve ardından Visual Studio Code'u (VSCode) açın. Sonrasında, klasörünüzü burada vurgulanan çalışma alanınıza sürükleyip bırakabilirsiniz:

Discord Main 5

VSCode şimdi yeni oluşturduğunuz klasörünüzdeki tüm dosya ve klasörleri gösterecektir. Bu klasörü yeni oluşturduğunuz için şu an içi boş gözükmesi normaldir, ancak dosya ekledikçe onları sürürklediğiniz konumda göreceksiniz. Projemizi oluşturmak için terminalinizi açmamız gerekiyor. Bunu, VSCode'un üst barındaki "Terminal" ve ardından "New Terminal" e tıklayarak yapabilirsiniz.

Ekranınızın alt kısmında terminal/konsol açılmış olması gerekiyor. Buradan projemizi oluşturmaya yardımcı olması için farklı komutlar kullanabiliriz. Daha önce hiç konsol kullanmadıysanız endişelenmeyin, bu kısım şu anlık oldukça basit ilerleyecek.

Discord Main6

Görmeniz Gereken ekran buna benzer olmalıdır. gördüğünüz şeyi şu anlık anlamamanız çok normal "ctrl l" veya mac kullanıcısıysanız "command l" ye basarak daha ferah bir başlangıç yapabilirsiniz.


npm init -y

Komutunu yazarak node projenizi başlatabilirsiniz. Her şey düzgün çalıştıysa "EXPLORER"(yarattığınız klasörü sürükleyip biraktığınız sekme) sekmesinde package.json dosyası oluşmuş olması gerekmektedir, eğer buraya kadar olan kısımda sorun yoksa dosya içindekilere şu an odaklanmanıza gerek yok. Discord.JS gibi ihtiyacımız olan 3. parti bağımlılıkları artık yükleyebiliriz.


npm install discord.js dotenv

Bu işlem sonucunda "EXPLORER" da "node_module" ve "package-lock.json" dosyalarını göreceksiniz. Sonrasında süreç boyunca Javascript'in bir üst kümesi olan TypeScript'i kullanacağız. Bu, Javascript'in işlevselliğini genişlettiği ve hayatımızı kolaylaştırmaya çalıştığı anlamına gelir. Typescript veya Javascript'te yeniyseniz endişelenmeyin, bu süreçte yalnızca çok temel TypeScript kullanacağız. Yüklemek için konsolunuzda aşağıdaki komutu kullanabilirsiniz:


npm install -g typescript ts-node

Dikkat! Windows'ta izin hatalarıyla karşılaşırsanız, VSCode'u yönetici olarak çalıştırmanız gerekebilir.

TypeScript'e bilgisayarımızın herhangi bir yerinden erişmek isteyeceksinizdir, onu global olarak yüklemek için -g flagini kullanacağız. "ts-node" paketi, geliştirme sırasında Typescript dosyalarımızı çalıştırmamıza izin verecek. Bu şimdilik işimizi kolaylaştıracaktır, ancak botunuzu gerçekten dağıtıma çıkardığınızda biraz farklı bir iş akışı kullanacağız.Artık bir Typescript projesini şu komutla başlatabiliriz:


tsc -init

Bu, "EXPLORER" serkmesinde bir "tsconfig.json" dosyası oluşturacaktır.

Daha sonra kendi botumuzu özelleştirebileceğimiz kodları yazmamız bir yere ihtiyacımız olacak. Sol Üstte kullandığınız dosyanın adının yazdığı kısma imlecinizi götürdüğünüzde yeni dosya simgesine tıklayabilir, yeni dosyaya "index.ts" adını verebilirsiniz.

Botunuzun Token'ı yazdığınız kodları botunuzla bağlayan anahtardır. Bu nedenle botunuzun Token'ını güvenli bir şekilde saklamak için bir yere ihtiyacınız var. Bu yüzden daha önce "dotenv" paketini kurduk. Kaynak kod dosyalarınızda asla parolaları, belirteçleri vb. saklamak istemezsiniz. Bunları her zaman mümkün olduğunda bazı harici dosyalardan içe aktarmak istersiniz. Bu şekilde, kaynak kodunuzu paylaşmanız gerekirse, simgenizi içeren dosyayı hariç tutabilirsiniz ve bu şekilde paylaşımınızı riske atmadan paylaşmış olursunuz.".env" adında yeni bir dosya oluşturun:

".env" dosyasının içeride aşağıdaki metni ekleyebilirsiniz. Discord Developer Portal'daki Bot sekmesinden Token değerini kopyalayıp "YOUR_TOKEN" ifadesi yerine yazmayı unutmayın. gerçek değerii girmediğiniz sürece botunuz çalışmayacaktır.


TOKEN=YOUR_TOKEN

Dikkat! Token Değerinizi güvenlik için asla kimseyle paylaşmayın veya ".env" dosyanızı sürüm kontrolüne zorlamayın.

Projemiz hazır olduğuna göre artık kodu yazmanın zamanı geldi!

Adım 4 : Nerde Bu Kodlar!

Sonunda index.ts dosyamızın içine bazı kodlar yazmaya hazırsınız. Daha önce kurduğumuz 3.parti bağımlılıklarını içe aktararak başlamamız gerekiyor:


import DiscordJS, { Intents } from 'discord.js'
import dotenv from 'dotenv'
dotenv.config()

Bu komut, onları kullanabilmemiz için kütüphanelere erişmemizi sağlayacaktır. ve dotenv.config() bize .env dosyamızdaki Token değerine erişim sağlatacaktır.Ardından botumuzu temsil eden yeni bir client oluşturmamız gerekiyor:


const client = new DiscordJS.Client({
  intents: [
    Intents.FLAGS.GUILDS,
    Intents.FLAGS.GUILD_MESSAGES
  ],
})

Intent'ler, Discord'a botumuzun hangi bilgilere ihtiyacı olduğunu söylemek için kullanılır. Bu şekilde botumuza gönderilen gereksiz bilgiler olmaz, bu da onu yavaşlatma ve bant genişliğimizi tüketme sorununu önler. Olası amaçların tam listesi buradan bulunabilir, ancak yalnızca ihtiyacınız olanları kullanmanız önerilir.

Ardından, botumuzun ne zaman başladığını görüntüleyebilir ve birisinin ne zaman mesaj gönderdiğini algıyabilir. İşleri basitleştirmek için "merhaba" mesajını görebilir ve "Selam :)" ile cevap verebiliriz:


client.on('ready', () => {
  console.log('Botunuz kullanıma hazır!')
})

client.on('messageCreate', (msg) => {
  if (msg.content === 'merhaba') {
    msg.reply({
      content: 'Selam :)',
    })
  }
})

Sonunda Token değerini kullanarak botunuza giriş yapmalısınız:


client.login(process.env.TOKEN)

.env dosyasındaki Token değerini kullanarak artık botunuza bağlanmış oldunuz. Artık şu komutu kullanarak botu çalıştırabiliriz, kodlarınısı kaydetmeyi unutmayın(ctrl s):


ts-node index.ts

Botunuz test için açtığınız ve botunuzu davet ettiğiniz sunucunuzda çevrimiçi olmalıdır. Bir kanala "merhaba" yazarsanız, "Selam :)" ile yanıt vermecektir. Bu açıkçası çok basit bir örnek, ancak artık çevrimiçi ve mesajları dinleyen bir Discord botunuz var.

Adım ! : Dikkat Etmeniz Gerekenler!

Eğer bu dosyayı kurup çalıştırmakta zorluk çekiyorsanız bu bölümü okumanız gerekiyor.

  • Öncelikle bu dökümanı okuyup talimatları uyduysanız ve sonrasında GitHub'a atma planınız varsa ve yüklerken klasörünüz ".gitignor" a sahipse siz de ".env" dosyası gözükmeyecektir.

  • Eğer bu dosyayı indirip kullanmak istiyorsanız ".env" dosyasına kendi Tokeninizi yazmanız gerekmektedir

-Eğer yanlışlıkla Tokeninizi paylaştıysanız korkmayın Discord size bunun uyarısını aşağıdaki gibi yapacaktır. Bu mesajı görüyorsanız discord botunuzun güvenliği için Tokeninizi değiştirmeyi unutmayın.

image

Adım + : Daha Fazlası!

Discordu telefondan kullananlar için genellikle kelimeler ve cümleler büyük harfla başlar, kodunuzda büyük veya küçük harf hassasiyeti oluşturmak için aşağıdaki gibi .toLowerCase() ekelyip güncelleyebilirsiniz.


if (msg.content.toLowerCase() === 'Merhaba') {

Peki şu ana kadar botunuz belirlenen mesaj discord sunucusuna yazıldıkça yazan kişiyi etiketleyerek cevap verdi etiketlemeden cevap vermesini ister misiniz? Kodunuzu aşağıdaki gibi küçük eklentilerle değiştirmeniz yeterli:


client.on('messageCreate', (msg) => {
    if (msg.content.toLowerCase() === 'selam') {
      msg.channel.send({
        content: 'Selam :)',
      })
    }
  })

Kaynaklar

Eğer ingilizceniz yeterli seviyedeyse veya video izlemek döküman okumaktan daha kolay geliyorsa benimde kaynak olarak aldığım bu videoyu izlemenizi öneririm.

basic-discord-bot's People

Contributors

serkanalc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.