NRack
Yeni Doğmuş
- En iyi cevaplar
- 0
Herkese selamlar. Açık kaynaklı bir bot olan Vulnix adlı botdan alınmıştır türkçeleştirilerek size sunuyorum kendim bu sistemi kullanıyorum arayanlar var umarım işlerine yaramıştır.Sunucunuzda Destek Ekibi adlı bir rol bulunmak zorundadır ve birinin o role sahip olması lazımdır. Destek adında bir kategori yoksa kendisi oluşturur perm ayarlamanıza gerek yok zaten tek ticket açan kişi ve Destek Ekibi görebiliyor.Modül gerekmez discord.js olsun yeter.
Kod:
client.on("message", (message) => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
if (message.content.toLowerCase().startsWith(prefix + `destek-aç`)) {
const reason = message.content.split(" ").slice(1).join(" ");
if (!message.guild.roles.exists("name", "Destek Ekibi")) return message.channel.send(`Sunucu \`Destek Ekibi\` rolüne sahip değil, bu yüzden yardım talebiniz oluşturulamıyor.`);
if (message.guild.channels.exists("name", "destek-" + message.author.id)) return message.channel.send(`Bir yardım talebine zaten sahipsin.`);
if (!message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Destek')) {
let knl = message.guild.createChannel('Destek', 'category').then(ds => {
message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
let role = message.guild.roles.find("name", "Destek Ekibi");
let role2 = message.guild.roles.find("name", "@everyone");
c.overwritePermissions(role, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
c.overwritePermissions(role2, {
SEND_MESSAGES: false,
READ_MESSAGES: false
});
c.overwritePermissions(message.author, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
message.channel.send(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`);
const embed = new Discord.RichEmbed()
.setColor(0xCF40FA)
.addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Destek ekibi en kısa zamanda cevap verecektir`)
.setTimestamp();
c.send({ embed: embed });
c.setParent(ds)
}).catch(console.error);
})
}
let kanal = message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Destek');
if (kanal) {
message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
let role = message.guild.roles.find("name", "Destek Ekibi");
let role2 = message.guild.roles.find("name", "@everyone");
c.overwritePermissions(role, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
c.overwritePermissions(role2, {
SEND_MESSAGES: false,
READ_MESSAGES: false
});
c.overwritePermissions(message.author, {
SEND_MESSAGES: true,
READ_MESSAGES: true
});
message.channel.send(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`);
const embed = new Discord.RichEmbed()
.setColor(0xCF40FA)
.addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Destek ekibi en kısa zamanda cevap verecektir`)
.setTimestamp();
c.send({ embed: embed });
c.setParent(kanal)
}).catch(console.error);
}
}
if (message.content.toLowerCase().startsWith(prefix + `destek-kapat`)) {
if (!message.channel.name.startsWith(`destek-`)) return message.channel.send(`Yardım talebinizi yardım talebi kanalınızın dışındaki kanallarda kapatamazsınız.`);
message.channel.send(`Emin misin? Onayladıktan sonra geri alınamaz!\nOnaylamak için,\`-onayla\`. Yazmak için 10 saniyen var yoksa kendiliğinden iptal olur.`)
.then((m) => {
message.channel.awaitMessages(response => response.content === '-onayla', {
max: 1,
time: 10000,
errors: ['time'],
})
.then((collected) => {
message.channel.delete();
})
.catch(() => {
m.edit('Kapatma talebinin zamanı geçti yardım talebin kapatılmadı.').then(m2 => {
m2.delete();
}, 3000);
});
});
}
});