Rehber Discord.js V13 ile kelime oyunu yazmak

Bu konuyu okuyanlar

《AKİF》??

Asistan
Katılım
30 Ocak 2021
Mesajlar
367
Reaksiyon puanı
470
Puanları
93
Bu, Discord.js geliştiricileri için bir rehberdir. Komutu canlı denemek istiyorsanız, aşağıda deneyebileceğiniz alan bırakıldı.
Bu rehber başka bir yerde vardı lakin, rehberin güvenliğini sağlamak adına, revize edilmiş bir biçimde açıyorum.
Bu kod, etrafta adam gibi kelime oyunu kodu olmadığı için yazılmıştır.

Nasıl bir şey?
Kelime oyunu. Öncekinin son harfi ile sizin ilk harfiniz aynı olacak. Tabii kolaya kaçıp rastgele kelime yazma hakkınız yok. Kelimeler listesinden kontrol ediliyor.
Bir ekran görüntüsü:
1671482162467.png


Kod, ilgili açıklamaları üzerinde:
JavaScript:
const Discord = require('discord.js'); //Biliyorsunuz anlatmaya gerek yok.
const db = require('quick.db') //Dosyaya yazma için quick.db
const prefix = "!" //Normal prefixiniz işte, kod hata vermesin diye var. Eğer zaten tanımlıysa yazmaya gerek yok.
const LIMITOR = 25 * 2 * 2 * 2;
const kelimeListesi = require("./kelimeler.json");
const delay = require("timers/promises").setTimeout;



client.on("message", async message => {
    if (message.author.bot || message.channel.type === 'dm') return;  //Bot ise dur
    if (message.content.startsWith(prefix + "kelime")) { //yeni oyun
        await message.channel.send("Oyun başladı\n\nkelime") //kelimeyi yazar
        db.set(`kelime_${message.guild.id}`, { topkelime: 0, sonharf: "e", kelimeler: ["kelime"] }) //son harfi not alır.
    }
    const oyun = db.get(`kelime_${message.guild.id}`);
    if (!oyun) return;

    const kelime = message.content.toLocaleLowerCase('tr'); //Mesajdaki kelimeyi çok gerekeceği için tanımladık

    const { topkelime, sonharf, kelimeler } = oyun;

    async function bitti(baslik) {
        const embed = new Discord.MessageEmbed().setAuthor("Kelime oyunu")
            .setTitle(baslik)
            .addField("Son harfimiz şuydu:", sonharf, true)
            .addField("Toplam doğru kelime:", String(topkelime), true)

        await message.delete();
        const mess = await message.channel.send({ embeds: [embed] });
        await delay(2500);
        return mess.delete();
    }

    if (kelime[0] !== sonharf)
        return await bitti("Kelimenin ilk ile önceki kelimenin son harfi uyuşmuyor!");

    if (kelime.length < 3)
        return await bitti("Yazdığın kelime `3 harf`ten kısa!");

    if (kelime.endsWith("ğ"))
        return await bitti("Yazdığın kelime `Ğ` ile bitiyor!");

    if (kelimeler.includes(kelime))
        return await bitti(`Yazdığın kelime son \`${LIMITOR}\` kelime ile aynı!`);

    if (!kelimeListesi.includes(kelime))
        return await bitti("TDK'de kelime yok!");

    await message.react("?").catch(_ => _)//Doğru ise emoji atar
    //Kelimeleri not al
    if (kelimeler.length >= LIMITOR) oyun.kelimeler.shift();

    oyun.kelimeler.push(kelime);
    oyun.sonharf = kelime.slice(-1);//son harfi yazdı
    oyun.topkelime++;
    db.set(`kelime_${message.guild.id}`, oyun);

});


Bu kod, yine kendi yazdığım Alair adlı bottan alınmıştır. Açık kaynak kodludur, başka şeyler için de bakabilirsiniz:
Alair'in ana merkezinde, canlı olarak komutu deneyebilir, botu da ekleyebilirsiniz:
 

hakanyargici

Alpine F1 Racing Team
Katılım
7 Ekim 2022
Mesajlar
1,425
Çözümler
6
Reaksiyon puanı
958
Puanları
113
Yaş
22
Ben const discord = require kısmını anlamadım hocam... Şaka şaka.

Elinize sağlık güzel bir içerik olmuş.
 
Üst