Başlangıç
Veritabanı Sistemi
Komut Taslağı

NPM Sayfası
NPM Sayfası NPM Sayfası

Hoş geldiniz

Öncelikle kodlama üzerinde JavaScript programlama dilinin Node.JS programında bilginiz olmalı.
Yeterli bilgiye sahipseniz discordjs-advanced NPM modülünü kurunuz.
Sonrasında modülün kullanımı ile ilgili örneklerin ve bilgilendirmelerin butonlarını sol tarafda görebilirsiniz.

Aynı zamanda "yardım, ön-ek, eval, load, unload ve reload" komutları varsayılan komutlardır sizin eklemenize gerek yoktur botta otomatik olarak bulunacaktır.

Bot ana dosyası (bot.js, app.js, index.js vs.) örneği

                
    const Advanced = require('discordjs-advanced');
                         
    const client = new Advanced.Client({
        token: "", //Botunuzun Discord Applications sayfasındaki token bilgisi.
        prefix: "", //Botunuzun ön-ek'i.
        sahip: [""], //"" içine bot sahibinin Discord ID bilgisi. Birden fazla sahip eklenebilir. Örneğin; sahip: ["id1", "id2"], gibi. NOT: Botun profilini oluşturan kişiyi ID'i yazılmasa bile otomatik olarak sahip olarak ekler.
        komutDosya: "", //"" kısmına botunuzun komutlarının bulunacağı klasör adını yazınız. Örneğin: komutDosya: "komutlar"
        //İsteğe bağlı alan -|
        varsayılanKomutlar: [] 
        /*Burada "[]" içine '' kullanarak (örneğin: varsayılanKomutlar: ['yardım']) eklediğiniz varsayılan komutlar devre dışı olacaktır.
        Tüm varsayılan komutları devre dışı bırakacaksanız varsayılanKomutlar: 'hepsi' şeklinde yazınız.*/

        everyoneKapat: true
        /*Burada botun @here  ve @everyone etiketi atmasını engelliyoruz. Bunu false yaparsanız veya everyoneKapat kısmı hiç eklemezsiniz bot @here ve @everyone etiketi atabilir.*/
        //İsteğe bağlı alan -|
    });
                         
    client.kategoriYükle([ //Burada kategorileri belirtiyoruz.
        ['test', 'Test Komutları'] /*Burada 'test' kısmı komutlarınızın olacağı klasörde 'test' adında bir klasör oluşturmanız gerektiğini bildirecektir.
        Aynı zamanda buradaki 'test' kısmı komutların kategori bölümüne yazılacak veri yerine geçebilir.
        'test' kısmı kategori adı olup, 'Test Komutları' kısmı yardım komutunda görünecdek kısımdır. 
        (Yardım komutunu eklemenize gerek yoktur. Yardım komutunu "discordjs-advanced" paketi otomatik olarak eklemiştir. Sadece yardım komutu değil, bazı varsayılan komutlar da bulunmaktadır.)
                            
        kategoriYükle fonksiyonunda ['test', 'Test Komutları'] bölümünü silip kendinize göre ekleyebilirsiniz.
        Örneğin;
            client.kategoriYükle([
                ['moderasyon', 'Moderasyon Komutları'],
                ['eğlence', 'Eğlence Komutları']
             ]);*/
    ]);
                         
    client.giris(); //Botun giriş yapmasını sağlıyoruz. () arasına herhangi bir şey yazılmamaktadır.
                
            

Client/Bot ayarlarının özellikleri

Değer Açıklama Varsayılan Veri Tipi Durum
token Botun Discord Applications sayfasındaki token bilgisi. Bulunmuyor String Zorunlu
prefix Botun ön ekini ayarlar. Bulunmuyor String Zorunlu
komutDosya Botun komutlarının olacağı klasörü ayarlar. komutlar String Zorunlu
sahip Botun sahiplerini ayarlar. Botun profilini oluşturan kişinin eklenmesine gerek yoktur. Botun profilini oluşturan kişi Array İsteğe bağlı
everyoneKapat Botun @everyone ve @here etiketi atabilmesini kapatıp açmayı sağlar. false Boolean İsteğe bağlı
varsayılanKomutlar Modülün sağladığı varsayılan komutlardan belirtilenleri kapatır. Bulunmuyor Array İsteğe bağlı
veritabanı > dosya Belirtilen dosyayı botun veritabanı sistemi dosyası olarak ayarlar. Bulunmuyor String İsteğe bağlı

Ayrı dosya olarak event kurulum örneği

Bot ana dosyasına bir şey ekleyerek bunu gerçekleştirebilirsiniz.

                
    const Advanced = require('discordjs-advanced');
                         
    const client = new Advanced.Client({
        token: "", //Botunuzun Discord Applications sayfasındaki token bilgisi.
        prefix: "", //Botunuzun ön-ek'i.
        sahip: [""], //"" içine bot sahibinin Discord ID bilgisi. Birden fazla sahip eklenebilir. Örneğin; sahip: ["id1", "id2"], gibi
        komutDosya: "" //"" kısmına botunuzun komutlarının bulunacağı klasör adını yazınız. Örneğin: komutDosya: "komutlar"
    });
                         
    client.eventYükle('klasör adı'); //Burada "klasör adı" yazan yere event dosyalarının olacağı klasörün adını yazınız.
        /*Burada eventleri yüklemeyi aktif ettik bu olmadan event kullanabilir miydik?
        - Evet.
        Şimdi burada hata almamak için botunuzun klasöründe "client.eventYükle('klasör adı')" 'klasör adı' kısmına yazdığınz isimde bir klasör açın.
        Diyelimki bir event dosyası açacağız "message.js" (bu dosyaların adları event adları ile uyumlu olmalı).
        "message.js" içine gelebilecek örnek bir kodu aşağıdaki ilk başlıkta görebilirsiniz.
        */
                         
    client.kategoriYükle([ //Burada kategorileri belirtiyoruz.
        ['test', 'Test Komutları'] /*Burada 'test' kısmı komutlarınızın olacağı klasörde 'test' adında bir klasör oluşturmanız gerektiğini bildirecektir.
        Aynı zamanda buradaki 'test' kısmı komutların kategori bölümüne yazılacak veri yerine geçebilir.
        'test' kısmı kategori adı olup, 'Test Komutları' kısmı yardım komutunda görünecdek kısımdır. 
        (Yardım komutunu eklemenize gerek yoktur. Yardım komutunu "discordjs-advanced" paketi otomatik olarak eklemiştir. Sadece yardım komutu değil, bazı varsayılan komutlar da bulunmaktadır.)
                            
        kategoriYükle fonksiyonunda ['test', 'Test Komutları'] bölümünü silip kendinize göre ekleyebilirsiniz.
        Örneğin;
            client.kategoriYükle([
                ['moderasyon', 'Moderasyon Komutları'],
                ['eğlence', 'Eğlence Komutları']
            ]);*/
    ]);
                         
    client.giris(); //Botun giriş yapmasını sağlıyoruz. () arasına herhangi bir şey yazılmamaktadır.
                
            

Ayrı dosya olarak event örneği

Örneğin aşağıdaki kod "message.js" içindir.
Kodda gördüğünüz "module.exports = (message)" kısmında "message" yazan yere o eventi tanımladığımız şey gelmektedir.
Yani "module.exports = (message)" kısmında "message" yazan yere "msg" de gelebilir. Burdan ne demek istediğimi anladınız.
Eğer event "ready" eventi ise (yani dosyanız "ready.js" ise) "module.exports = ()" kısmında "()" içine yazdığınız şey botu (client'i) belirtir.
Örneğin bu "guildCreate" eventinde "guild" olarak değişiklik gösterir.
Eventleri iyice öğrenirseniz ayrı dosya halinde yapmakta zorluk çekmezsiniz.
Ayrı dosya halinde yapılabilmesinin sağlanma sebebide 1000 satırlık bir kodu bot ana dosyasında yazarsanız çok yer kaplar ve karışık olur.
Ayrı bir dosya içinde daha rahat yazabilirsiniz.

                
    module.exports = (message) => {
        //Burada "client.on("message" => vs.)" şeklinde event açıp kullandığınız kodları kullanırsanız sorunsuz işler.
        if (message.content.toLowerCase() === 'ok') {
            message.channel.send('Yay!')
        } //mesaj büyük harfler ile yazılsa bile küçülterek 'ok' kelimesine eşit değilmi, eşit mi bakıyor ve ona göre tepki veriyor.
        if (message.content.toLowerCase() === 'yay') {
            message.channel.send('Ok!')
        } //mesaj büyük harfler ile yazılsa bile küçülterek 'yay' kelimesine eşit değilmi, eşit mi bakıyor ve ona göre tepki veriyor.
    };
                
            

Veritabanı sistemi kurulum örneği

                
    const Advanced = require('discordjs-advanced');
                         
    const client = new Advanced.Client({
        token: "",
        prefix: "",
        sahip: [""],
        komutDosya: "",
        //"Botu Çalıştırma" bölümün de botu "discordjs-advanced" ile aktif etmeyi öğrendik. Yani bu yazıdan üstteki bilgileri doldurabilirsiniz.
        //Veritabanı sisteminin aktif hale gelmesi için tek yapmanız gereken aşağıdaki veriyi eklemek.
        veritabanı: {
            dosya: "" /*Burada "" içine veritabanı dosyanızın adını yazacaksınız. Veritabanı olarak JSON kullanılmaktadır. Yani dosyanızın sonu ".json" ile bitmeli.
            Örneğin;
            veritabanı: {
                dosya: "db.json"
            }*/
            //Tabi "x.json" (Örneğin; "db.json") dosyasını botun klasöründe oluşturacaksınız. 
        }
    });
                         
    client.kategoriYükle([
        ['test', 'Test Komutları']
    ]);
                         
    client.giris();
                
            

Veritabanı sistemi fonksiyonları

Fonksiyon Açıklaması
ayarla Verilen veriye verilen değeri kaydeder.
sil Verilen veriyi ve içindeki tüm değerleri siler.
veri Verilen verideki değerleri gösterir.
varMı Verilen veri bulunuyor mu, bulunmuyor mu "true - false" biçiminde gösterir.
ekle Verilen veri bir "Array" ise verilen değeri ekler.
çıkar Verilen veri bir "Array" ise verilen değeri çıkarır.
arttır Verilen veri bir "Sayı" ise verilen değer ile bulunan veriyi toplayarak arttırır.
azalt Verilen veri bir "Sayı" ise verilen değeri bulunan veriden çıkararak azaltır.
tümVeriler Veritabanındaki tüm verileri gösterir.
tümVerilerSil Veritabanındaki tüm verileri siler.

Veritabanı sistemi kullanım örneği

                
    client.veritabanı.ayarla('kullanıcı.isim', 'Örnek isim xxx')
    //"kullanıcı" verisindeki "isim" alanına "Örnek isim xxx" değerini kaydeder.
                     
    client.veritabanı.veri('kullanıcı.isim')
    //"kullanıcı" verisindeki "isim" alanındaki değeri gösterir.
                     
    client.veritabanı.varMı('kullanıcı.isim')
    //"kullanıcı" verisinde "isim" alanı var mı, yok mu "true - false" biçiminde gösterir.
                     
    client.veritabanı.sil('kullanıcı.isim')
    //"kullanıcı" verisindeki "isim" alanını siler.
                
            

Komut taslağı

Argüman (args) yoksa

                
    module.exports = {
        komut: "", //komut adı 
        açıklama: "", //komut açıklaması
        kategori: "", //ilk örnekteki kategori oluşturma kısmına göre buraya tam olarak ne yazabileceğinizi anlayacaksınız. (komut kategorisi)
        alternatifler: [], //komutun asıl adı dışında kullanılabileceği alternatifler. Örneğin; (komut adını x olarak düşünürsek) alternatifler: ["y", "z"], olabilir mesela.
        kullanım: "", //komutun doğru kullanımı
        yetki: 'MANAGE_MESSAGES', /*Komutu kullanabilecek yetkiyi belirtiyorsunuz.
        Tüm yetkileri https://discordapp.com/developers/docs/topics/permissions adresinden öğrenebilir/görebilirsiniz.
        Eğer gereken yetki bot sahibi olacaksa "BOT_OWNER" yazınız.
        Eğer hiç bir yetki gerekmiyor ise yetki: "" alanını siliniz.
        */
    };
                     
    module.exports.baslat = (client, message) => {
        //Komutun yapacağı işlevlerin geleceği alan.
        message.channel.send("Test.")
    };
                
            

Komut taslağı

Argüman (args) varsa

                
    module.exports = {
        komut: "", //komut adı 
        açıklama: "", //komut açıklaması
        kategori: "", //yukarıdaki kategori oluşturma kısmına göre buraya tam olarak ne yazabileceğinizi anlayacaksınız. (komut kategorisi)
        alternatifler: [], //komutun asıl adı dışında kullanılabileceği alternatifler. Örneğin; (komut adını x olarak düşünürsek) alternatifler: ["y", "z"], olabilir mesela.
        kullanım: "", //komutun doğru kullanımı
        yetki: 'MANAGE_MESSAGES', /*Komutu kullanabilecek yetkiyi belirtiyorsunuz.
        Tüm yetkileri https://discordapp.com/developers/docs/topics/permissions adresinden öğrenebilir/görebilirsiniz.
        Eğer gereken yetki bot sahibi olacaksa "BOT_OWNER" yazınız.
        Eğer hiç bir yetki gerekmiyor ise yetki: "" alanını siliniz.
        */
                            
        args: [
          {
            anahtar: 'x', //module.exports.baslat kısmında bu argsın cevabı "args.x" olarak çekilecektir. Siz bu "x"'i kendinize göre değiştirip ayarlarsınız. Ne olduğunu anladınız zaten.
            soru: '', //Argüman sorusu. Örneğin; "Bir yazı yazınız."
            tip: 'yazi' /*Argüman tipi.
            Buraya gelebilecek tipler:
            yazi = Normal herhangi bir yazı.
            sayi = Normal herhangi bir sayı.
            kullanici = Bulunulan sunucudaki kullanıcıları algılar. Kullanıcı adı yazarak veya kullanıcıyı etiketleyerek çalışır.
            kanal = Bulunulan sunucudaki kanalları algılar. Kanal adı yazarak veya kanalı etiketleyerek çalışır.
            rol = Bulunulan sunucudaki rolleri algılar. Rol adı yazarak veya rolü etiketleyerek çalışır.
            */
          }
        ]
    };
                         
    module.exports.baslat = (client, message, args) => {
        //Komutun yapacağı işlevlerin geleceği alan.
        message.channel.send(args.x) //anahtar kısmı "x" olan Argümanın cevabını alıp bulunulan kanala gönderiyoruz.
    };