Rehber - Discord Botlarında Butonlu Giveaway (Çekiliş) Sistemi Yapımı | SroCave - SRO Destek Forumu

Rehber Discord Botlarında Butonlu Giveaway (Çekiliş) Sistemi Yapımı

  • Konbuyu başlatan Konbuyu başlatan Jhaeger
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 10

Jhaeger

Blood Fury of Westeros
Katılım
9 Şub 2024
Mesajlar
528
Tepkime puanı
1,201
Puanları
93
jhaeger
Merhaba SroCave Ailesi!

Bu rehberde Discord.js v14 kullanarak basit bir Giveaway (Çekiliş) sistemi oluşturacağız.


jsmZ0id.png


Yapacağımız sistemde:
Çekiliş oluşturma
Katıl butonu
Katılımcıları kaydetme
Süre bitince kazanan seçme
Birden fazla kazanan seçme
Yeniden çekiliş (Reroll)

özellikleri bulunacak.

Özellikle Discord sunucularında Silk, Premium veya oyun içi ödül dağıtımı yapan yöneticiler için oldukça kullanışlı bir sistemdir.

Gerekli Kurulumlar​

Bash:
npm install discord.js

Katıl Butonu Oluşturma​

Öncelikle çekilişe katılım sağlayacak butonumuzu oluşturalım:

JavaScript:
const {
ActionRowBuilder,
ButtonBuilder,
ButtonStyle
} = require("discord.js");

const row = new ActionRowBuilder()
.addComponents(
new ButtonBuilder()
.setCustomId("giveaway_join")
.setLabel("🎉 Katıl")
.setStyle(ButtonStyle.Success)
);

Katılımcıları Kaydetme​

Basit bir örnek için Set kullanabiliriz:

JavaScript:
const participants = new Set();

Butona basan kullanıcıları ekleyelim:

JavaScript:
client.on("interactionCreate", async interaction => {

if (!interaction.isButton()) return;<br><br>if (interaction.customId === "giveaway_join") {<br><br>    participants.add(interaction.user.id);<br><br>    await interaction.reply({<br>        content: "Çekilişe başarıyla katıldın!",<br>        ephemeral: true<br>    });<br>}<br>
});

Kazanan Seçme​

Süre sonunda rastgele bir kullanıcı seçebiliriz:

JavaScript:
const users = [...participants];

const winner =
users[Math.floor(Math.random() * users.length)];

Kazananı duyurmak:

JavaScript:
channel.send(
🎉 Tebrikler &lt;@${winner}&gt; kazandın!
);

Birden Fazla Kazanan Seçmek​

Örneğin 3 kazanan seçmek istersek:

JavaScript:
const winners = [];

for (let i = 0; i < 3; i++) {

const random =<br>    users[Math.floor(Math.random() * users.length)];<br><br>if (!winners.includes(random))<br>    winners.push(random);<br>
}

Reroll Sistemi​

Yeni kazanan seçmek oldukça basittir:

JavaScript:
const rerollWinner =
users[Math.floor(Math.random() * users.length)];

channel.send(
🔄 Yeni kazanan: &lt;@${rerollWinner}&gt;
);

Sonuç​

Bu rehberde basit bir butonlu giveaway sisteminin temel mantığını öğrendik.
Gerçek projelerde bu sisteme:

SQLite veya MongoDB desteği
Süre sistemi
Çoklu ödül desteği
Kazanan doğrulama
Otomatik reroll sistemi gibi özellikler eklenebilir.

Not:
Botunuzu geliştirirken kodlarınızı yedeklemeyi ve veritabanı dosyasını güvenli tutmayı unutmayın!
Sorularınızı aşağıya yazabilirsiniz, herkese kolay gelsin!
 
Etiketler Etiketler
#bot #botmaker #discord #guardcommunity #jhaeger

Geri
Üst Alt