- Katılım
- 10 Kas 2019
- Konular
- 225
- Mesajlar
- 1,057
- Çözümler
- 19
- Tepki puanı
- 1,050
- Puanları
- 8,710
Eminim ki çoğu kişinin sunucusunda kavga , tartışma vb. Bi takım sorunlar meydana geliyor.Bu vereceğim kodlama , bunlarla uğraşmanın daha kolay bir yoludur.
Discord.js , destek sistemi.
Main dosyanıza atınız
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);
});
});
}
});