Facebook
From dalga, 2 Months ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 353
  1. const qdb = require("quick.db")
  2. const { AuditLogEvent,Events , GuildMember, EmbedBuilder} = require("discord.js")
  3.  
  4. /* Event */
  5. module.exports = {
  6.     name: "rolKoruma",
  7.     eventName: "roleDelete",
  8.     async execute(role) {
  9.         //console.log(auditLog)
  10.             let guild = role.guild
  11.             const fetchedLogs = await guild.fetchAuditLogs({
  12.                 limit: 1,
  13.                 type: AuditLogEvent.RoleDelete,
  14.             });
  15.             let info = fetchedLogs.entries.first()
  16.             let executor = info.executor
  17.             const data = qdb.fetch(`rol.koruma.${guild.id}`)
  18.             if(!data.activity) return
  19.             if(executor.id == client.user.id) return
  20.             //console.log(role)
  21.             const membersWithRole = guild.members.cache.filter(member => member.roles.cache.has(role.id));
  22.            
  23.             // Üyeleri listeleyin veya işlem yapın
  24.             membersWithRole.forEach(member => {
  25.                 console.log(`${member.user.tag} adlı üye, silinen rolü olan ${role.name} rolüne sahipti.`);
  26.             });
  27.             const member = await guild.members.fetch(executor.id);
  28.             const whitelist = data.whitelist
  29.             const kanal = guild.channels.cache.get(data.logChannel)
  30.             var rolkontrol;
  31.             whitelist.forEach(x => {
  32.                 if(member.roles.cache.get(x.replace(`&`,""))) rolkontrol = true
  33.             });
  34.            
  35.             if (whitelist.find(x => x === `+${executor.id}`) || rolkontrol) return
  36.  
  37.             const rgbColor = [ (role.color >> 16) & 255, (role.color >> 8) & 255, role.color & 255 ];
  38.             //console.log(rgbColor); // [ 46, 204, 113 ]
  39.  
  40.             const newrole = await guild.roles.create({
  41.                   name: role.name, // Kopyalanan rolün adı
  42.                   color: rgbColor, // Kopyalanan rolün rengi
  43.                   permissions: role.permissions.bitfield, // Kopyalanan rolün izinleri
  44.                   // Diğer ayarlar buraya eklenmeli
  45.                 reason: 'Kopyalanan rolün tıpatıp aynısı oluşturuluyor.', // İsteğe bağlı
  46.               })
  47.              
  48.               newrole.setPosition(role.rawPosition)
  49.  
  50.               //console.log(newrole.id)
  51.             ///role sahipleri bulduruyom
  52.             const serverData = qdb.get(`sunucu.rol.bilgisi.${role.guild.id}`) || [];
  53.  
  54.             const roleDataArray = serverData.filter((data) =>
  55.             data.roles.includes(role.id)
  56.           );
  57.  
  58.           if (roleDataArray.length > 0) {
  59.             // roleDataArray içinde ilgili role ait veriler bulunuyor
  60.             roleDataArray.forEach((roleData) => {
  61.               roleData.roles.forEach(async rolex => {
  62.                 //console.log(rolex)
  63.                 if(guild.members.cache.get(roleData.userID).roles.cache.has(rolex)) {
  64.                   return console.log("zaten rolü var")
  65.                 } else {
  66.                   console.log(rolex)
  67.                   guild.members.cache.get(roleData.userID).roles.add(newrole.id)
  68.                   return console.log(`rolü yoktu verdim`)
  69.                 }
  70.               })
  71.             });
  72.           } else {
  73.             console.log("Belirtilen rol için veri bulunamadı.")
  74.             //message.reply("Belirtilen rol için veri bulunamadı.");
  75.           }
  76.           ///role sahipleri bulduruyom
  77.  
  78.  
  79.             kanal.send({embeds: [new EmbedBuilder()
  80.             .setAuthor({name:`${executor.username} rol sildi.`})
  81.             .setDescription(`a`)
  82.             .setFooter({text: `Rol tekrar oluşturuldu ve role sahip olanlara verildi.`})
  83.             .setColor(client.config.renk.main)]})
  84.             }
  85. }