- Katılım
- 9 Şub 2024
- Mesajlar
- 527
- Tepkime puanı
- 1,201
- Puanları
- 93
jhaeger
Merhaba SroCave Ailesi!
Bu rehberde Discord.js v14 kullanarak basit bir Giveaway (Çekiliş) sistemi oluşturacağız.
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.
Butona basan kullanıcıları ekleyelim:
Kazananı duyurmak:
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!
Bu rehberde Discord.js v14 kullanarak basit bir Giveaway (Çekiliş) sistemi oluşturacağız.
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 <@${winner}> 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: <@${rerollWinner}>
);
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!





