Poligon
mc.poligon.network
- Mesajlar
- 94
- En iyi cevaplar
- 0
- Beğeniler
- 87
- Puanları
- 390
- Ruh hali
Elimde böyle bir Destek Talebi Açma kodu var. Fakat üzerinde biraz oynanması gerekiyor.
Mesela herhangi bir kanalda /destek-aç komutunu kullanmak yerine, belirlenen bir kanala herhangi bir mesaj atıldığında talep açılması ve atılan mesajında o kanaldan otomatik silinmesi gerekiyor. Amaç kanaldaki kirliliği önlemek. Bunu yapabilirim diyen varsa özel mesaj atarsa sevinirim.
Mesela herhangi bir kanalda /destek-aç komutunu kullanmak yerine, belirlenen bir kanala herhangi bir mesaj atıldığında talep açılması ve atılan mesajında o kanaldan otomatik silinmesi gerekiyor. Amaç kanaldaki kirliliği önlemek. Bunu yapabilirim diyen varsa özel mesaj atarsa sevinirim.
Kod:
client.on("message", (message) => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
if (message.content.toLowerCase().startsWith(prefix + 'destek-aç')) {
message.delete();
const reason = message.content.split(" ").slice(1).join(" ");
if (!message.guild.roles.exists("name", "Asistan")) return message.channel.send(`Sunucu \`Asistan\` 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.reply(`Bir yardım talebine zaten sahipsin.`)
.then(msg => {
msg.delete(3000);
});
if (!message.guild.channels.filter(c => c.type === 'category').find(c => c.name === 'Talepler')) {
let knl = message.guild.createChannel('Talepler', 'category').then(ds => {
message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
let role = message.guild.roles.find("name", "Asistan");
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. Asistan 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 === 'Talepler');
if (kanal) {
message.guild.createChannel(`destek-${message.author.id}`, "text").then(c => {
let role = message.guild.roles.find("name", "Asistan");
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.reply(`:white_check_mark: Yardım talebiniz oluşturuldu, #${c.name}.`)
.then(msg => {
msg.delete(3000)
});
const embed = new Discord.RichEmbed()
.setColor(0xCF40FA)
.addField(`Hey ${message.author.username}!`, `Yardım talebini neden açtığınızı açıkca anlatın. Asistan 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(`Destek talebinizi kapatmak istediğinize emin misiniz? 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);
});
});
}
});