Destek (Ticket) Botu Yapımı
Destek (Ticket) Botu Yapımı
Üyelerinizin yetkililerle özel olarak görüşebileceği, otomatik kanal oluşturan ve yetki ayarlayan profesyonel bir bilet sistemi kodlayın.
Ticket Sistemi Mantığı
Destek sistemleri, kullanıcının bir butona veya menüye tıklamasıyla tetiklenir. Bot, sadece "Destek Ekibi" rolüne sahip kişilerin ve butona tıklayan üyenin görebileceği yeni bir metin kanalı (text channel) oluşturur. Konuşma bittiğinde ise yetkilinin komutuyla kanal arşive alınır veya silinir.
Kanal Oluşturma ve İzin Yönetimi (Permissions)
Kodlamadaki en zorlayıcı kısım kanal izinlerini (PermissionOverwrites) doğru ayarlamaktır. Sunucudaki `everyone` rolünün bu kanalı görmesi engellenmeli, işlemi başlatan kullanıcının ID'sine ise okuma ve yazma izni verilmelidir.
Ayrıca aynı kullanıcının arka arkaya spam yaparak onlarca ticket kanalı açmasını önlemek için, kullanıcının o an aktif bir talebi olup olmadığı veritabanından veya kanal listesinden kontrol edilmelidir.
Kanal Oluşturma Kodu
Etkileşim geldiğinde özel bir destek kanalı oluşturan Discord.js v14 kodu:
await interaction.guild.channels.create({
name: `destek-${interaction.user.username}`,
type: 0, // Metin kanalı (GUILD_TEXT)
permissionOverwrites: [
{
id: interaction.guild.roles.everyone.id,
deny: ['ViewChannel'], // Herkes için kanalı gizle
},
{
id: interaction.user.id,
allow: ['ViewChannel', 'SendMessages', 'ReadMessageHistory'], // Sahibi için izin ver
},
{
id: 'DESTEK_EKIBI_ROL_ID',
allow: ['ViewChannel', 'SendMessages', 'ReadMessageHistory'], // Yetkililer için izin ver
}
],
}).then(channel => {
interaction.reply({ content: `Destek talebiniz oluşturuldu: ${channel}`, ephemeral: true });
channel.send(`Merhaba ${interaction.user}, yetkililerimiz en kısa sürede seninle ilgilenecektir.`);
});
Destek Ağınız Hiç Kopmasın
Kullanıcılarınıza 7/24 hizmet veren profesyonel bot projelerinizi kesintisiz VDS altyapımızla güçlendirin.
Discord Bot Sunucusu Kirala →
Yorumlar0
Henüz Yorum Yok
İlk düşüncenizi paylaşan siz olun.
Yorum bırakmak için lütfen giriş yapın veya kaydolun.