├── Bots └── Main │ ├── _commands │ ├── BotOwner │ │ ├── Eval.js │ │ ├── devyardım.js │ │ ├── emoji.js │ │ ├── logkur.js │ │ ├── reboot.js │ │ ├── setup.js │ │ ├── test.js │ │ └── text.js │ ├── Global │ │ ├── avatar.js │ │ ├── banner.js │ │ ├── tag.js │ │ └── yardım.js │ ├── Invite │ │ ├── Topinvite.js │ │ └── invite.js │ ├── Moderasyon │ │ ├── ban.js │ │ ├── banliste.js │ │ ├── cezabilgi.js │ │ ├── ihlal.js │ │ ├── jail.js │ │ ├── kilit.js │ │ ├── mute.js │ │ ├── ses-bilgi.js │ │ ├── sicil.js │ │ ├── snipe.js │ │ ├── temizle.js │ │ ├── unban.js │ │ ├── unjail.js │ │ ├── unmute.js │ │ ├── unvmute.js │ │ └── vmute.js │ └── Register │ │ ├── isim.js │ │ ├── isimler.js │ │ ├── kayıt.js │ │ ├── kayıtbilgi.js │ │ ├── kayıtsıralama.js │ │ └── kayıtsız.js │ ├── _events │ └── Client │ │ ├── Control.js │ │ ├── Update.js │ │ ├── guildMemberAdd.js │ │ ├── guildMemberRemove.js │ │ ├── interactionCreate.js │ │ ├── inviteCreate.js │ │ ├── messageCreate.js │ │ └── ready.js │ ├── _slashcommands │ └── _others │ │ ├── avatar.js │ │ └── banner.js │ ├── fivedb.yml │ └── main.js ├── Command Template.js ├── Global ├── Additions │ ├── _console.additions.js │ └── _general.additions.js ├── Config │ └── Guild.js ├── Database │ ├── Channel.js │ ├── Profile.js │ ├── Roles.js │ ├── RolesVeri.js │ ├── StaffSchema.js │ ├── TagMode.js │ ├── afk.js │ ├── ban.js │ ├── camerastat.js │ ├── ceza.js │ ├── cezapuan.js │ ├── görev.js │ ├── göreval.js │ ├── invite.js │ ├── inviteMember.js │ ├── leaderboard.js │ ├── level.js │ ├── messageGuild.js │ ├── messageGuildChannel.js │ ├── messageUser.js │ ├── messageUserChannel.js │ ├── mute.js │ ├── names.js │ ├── perm.js │ ├── puant.js │ ├── streamOpenedAt.js │ ├── streamer.js │ ├── tagaldır.js │ ├── tagsistem.js │ ├── vmute.js │ ├── voiceGuild.js │ ├── voiceGuildChannel.js │ ├── voiceGuildStream.js │ ├── voiceGuildStreamChannel.js │ ├── voiceGuildStreamUserChannel.js │ ├── voiceJoinedAt.js │ ├── voiceUser.js │ ├── voiceUserChannel.js │ └── voiceUserParent.js └── Structures │ ├── Default.Clients.js │ ├── Default.Commands.js │ └── Default.Events.js ├── LICENSE ├── README.md ├── ecosystem.config.js ├── package-lock.json ├── package.json ├── pm2log.bat ├── restart.bat ├── start.bat └── stop.bat /Bots/Main/_commands/BotOwner/Eval.js: -------------------------------------------------------------------------------- 1 | 2 | const { EmbedBuilder,PermissionsBitField } = require("discord.js"); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | const { post } = require("node-superfetch"); 5 | const {Guild} = require("../../../../Global/Config/Guild") 6 | const request = require('request'); 7 | 8 | class Eval extends Command { 9 | constructor(client) { 10 | super(client, { 11 | name: "Eval", 12 | description: "manuel kod denemeleri için", 13 | usage: ".eval", 14 | category: "Weatrix", 15 | aliases: ["eval","deval"], 16 | 17 | enabled: true, 18 | 19 | developer : true 20 | }); 21 | } 22 | 23 | 24 | onLoad(client) { 25 | 26 | } 27 | 28 | async onRequest (client, message, args) { 29 | const embed = new EmbedBuilder() 30 | .addFields([{ name: "Input", value: "```js\n" + args.join(" ") + "```"} 31 | ]) 32 | try { 33 | const code = args.join(" "); 34 | if (!code) return message.channel.send("Hmm sen bir yazılımcısın.."); 35 | let evaled; 36 | 37 | if (code.includes(`secret`) || code.includes(`token`) || code.includes("process.env")) { 38 | evaled = "aldınmı başı"; 39 | } else { 40 | evaled = await eval(code); 41 | } 42 | 43 | if (typeof evaled !== "string") evaled = await require("util").inspect(evaled, { depth: 0 }); 44 | 45 | let output = clean(evaled); 46 | if (output.length > 1024) { 47 | 48 | const { body } = await post("https://hastebin.com/documents").send(output); 49 | embed.addFields([{ name: "Output", value: `https://hastebin.com/${body.key}.js`, inline: true }]).setColor(client.embedColor); 50 | 51 | } else { 52 | embed.addFields([{ name: "Output", value: "```js\n" + output + "```", inline: true }]).setColor(client.embedColor); 53 | } 54 | 55 | message.channel.send({embeds: [embed]}); 56 | 57 | } catch (error) { 58 | let err = clean(error); 59 | if (err.length > 1024) { 60 | 61 | const { body } = await post("https://hastebin.com/documents").send(err); 62 | embed.addFields([{ name: "Output", value: `https://hastebin.com/${body.key}.js`, inline: true }]).setColor("Red"); 63 | } else { 64 | embed.addFields([{ name: "Output", value: "```js\n" + err + "```", inline: true }]).setColor("Red"); 65 | } 66 | 67 | message.channel.send({embeds: [embed]}); 68 | } 69 | 70 | } 71 | } 72 | function clean(string) { 73 | if (typeof text === "string") { 74 | return string.replace(/`/g, "`" + String.fromCharCode(8203)) 75 | .replace(/@/g, "@" + String.fromCharCode(8203)) 76 | } else { 77 | return string; 78 | } 79 | } 80 | module.exports = Eval 81 | -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/devyardım.js: -------------------------------------------------------------------------------- 1 | 2 | const { PermissionsBitField } = require('discord.js'); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | 5 | class Help extends Command { 6 | constructor(client) { 7 | super(client, { 8 | name: "devHelp", 9 | description: "Bot'a eklenmiş olan komutları gösterir", 10 | usage: ".yardım", 11 | category: "Weatrix", 12 | aliases: ["devhelp","devyardım"], 13 | enabled: true, 14 | 15 | cooldown: 3500, 16 | guildOwner:true, 17 | developer : true 18 | }); 19 | 20 | } 21 | 22 | onRequest (client, message, args,embed) { 23 | message.reply({embeds:[embed.setDescription(`${client.commands.filter(x=> (x.developer == true || x.guildOwner == true) && (x.category == "Weatrix" || x.category == "Guard")).map(x=> `\`${x.usage}\``).join("\n")}`)]}) 24 | } 25 | } 26 | 27 | module.exports = Help 28 | -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/emoji.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | 4 | class Emoji extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "emoji", 8 | description: "manuel kod denemeleri için", 9 | usage: ".emojiekle", 10 | category: "weatrix", 11 | aliases: ["emekle","emoji","emojiekle"], 12 | 13 | enabled: true, 14 | 15 | developer:true 16 | }); 17 | } 18 | 19 | 20 | onLoad(client) { 21 | 22 | } 23 | 24 | async onRequest (client, msg, args,embed) { 25 | if(args[0] == "kur"){ 26 | const emojiler = 27 | [ 28 | {name:"appEmoji_bir",link:"https://cdn.discordapp.com/emojis/994628089592156220.webp?size=96&quality=lossless"}, 29 | {name:"appEmoji_iki",link:"https://cdn.discordapp.com/emojis/994628094172332062.webp?size=96&quality=lossless"}, 30 | {name:"appEmoji_uc",link:"https://cdn.discordapp.com/emojis/994628099738189894.webp?size=96&quality=lossless"}, 31 | {name:"appEmoji_dort",link:"https://cdn.discordapp.com/emojis/994628103496286228.webp?size=96&quality=lossless"}, 32 | {name:"appEmoji_bes",link:"https://cdn.discordapp.com/emojis/994628107443122246.webp?size=96&quality=lossless"}, 33 | {name:"appEmoji_alti",link:"https://cdn.discordapp.com/emojis/994628111771652248.webp?size=96&quality=lossless"}, 34 | {name:"appEmoji_yedi",link:"https://cdn.discordapp.com/emojis/994628116603469844.webp?size=96&quality=lossless"}, 35 | {name:"appEmoji_sekiz",link:"https://cdn.discordapp.com/emojis/994628120789393458.webp?size=96&quality=lossless"}, 36 | {name:"appEmoji_dokuz",link:"https://cdn.discordapp.com/emojis/994628124782379088.webp?size=96&quality=lossless"}, 37 | {name:"appEmoji_sifir",link:"https://cdn.discordapp.com/emojis/994628084709994536.webp?size=96&quality=lossless"}, 38 | {name:"appEmoji_cop",link:"https://cdn.discordapp.com/emojis/994706622536503367.webp?size=96&quality=lossless"}, 39 | {name:"appEmoji_solOk",link:"https://cdn.discordapp.com/emojis/995056594805076029.webp?size=96&quality=lossless"}, 40 | {name:"appEmoji_sagOk",link:"https://cdn.discordapp.com/emojis/995056603025916034.webp?size=96&quality=lossless"}, 41 | {name:"appEmoji_tik",link:"https://cdn.discordapp.com/emojis/992914567334211655.webp?size=96&quality=lossless"}, 42 | {name:"appEmoji_carpi",link:"https://cdn.discordapp.com/emojis/992914543724466268.webp?size=96&quality=lossless"}, 43 | {name:"appEmoji_unlem",link:"https://cdn.discordapp.com/emojis/993229107968094298.webp?size=96&quality=lossless"}, 44 | {name:"appEmoji_bos",link:"https://cdn.discordapp.com/emojis/1102623376083791882.webp?size=128&quality=lossless"}, 45 | {name:"appEmoji_bosorta",link:"https://cdn.discordapp.com/emojis/1102623377421766687.webp?size=128&quality=lossless"}, 46 | {name:"appEmoji_bosson",link:"https://cdn.discordapp.com/emojis/1102623378919149668.webp?size=128&quality=lossless"}, 47 | {name:"appEmoji_dolu",link:"https://cdn.discordapp.com/emojis/1102623397550227577.webp?size=128&quality=lossless"}, 48 | {name:"appEmoji_doluorta",link:"https://cdn.discordapp.com/emojis/1102623398913376347.webp?size=128&quality=lossless"}, 49 | {name:"appEmoji_doluson",link:"https://cdn.discordapp.com/emojis/1102623401337696349.webp?size=128&quality=lossless"}, 50 | 51 | ] 52 | /* {name:"",link:""}, 53 | */ 54 | for (let i = 0; i < emojiler.length; i++) { 55 | const emojix = emojiler[i]; 56 | const e = msg.guild.emojis.cache.find(x=> x.name == emojix.name); 57 | if(e) { console.log(`${e.name} isimli emoji sunucuda bulunduğundan tekrar oluşturulmadı.`)} 58 | else { 59 | msg.guild.emojis.create({attachment:emojix.link,name: emojix.name}) 60 | .then(emoji => msg.channel.send({embeds: [new EmbedBuilder().setDescription(`Başarıyla \`${emoji.name}\` adında emoji oluşturuldu. (${emoji})`)]})) 61 | } 62 | } 63 | }} 64 | } 65 | module.exports = Emoji; 66 | -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/logkur.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ChannelType,PermissionFlagsBits } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const { post } = require("node-superfetch"); 4 | const {Guild} = require("../../../../Global/Config/Guild") 5 | let manuelLoglar = ["level-log","join-log","leave-log","level-log","kayıtsız_log","kayıt_log","audit-log","message_log","voicejoin_log","voiceswitch_log","voiceleave_log","streamingstart_log","streamingstop_log","roleadd_log","roleremove_log","displayname_log","camerastart_log","camerastop_log"] 6 | class Log extends Command { 7 | constructor(client) { 8 | super(client, { 9 | name: "Log", 10 | description: "Log kanallarını kurmak/silmek içindir.", 11 | usage: ".log (metin/embed)", 12 | category: "weatrix", 13 | aliases: ["log"], 14 | 15 | enabled: true, 16 | 17 | developer : true 18 | }); 19 | } 20 | 21 | 22 | onLoad(client) { 23 | 24 | } 25 | 26 | async onRequest (client, message, args,embed) { 27 | if(args[0] == "kur"){ 28 | message.reply({content:` Log kanalları kurulumu başlatılıcaktır.`}).then(async msg => { 29 | setTimeout(async () => { 30 | await msg.edit({content:"**Log kanalları kurulumu başladı.**"}) 31 | let kat; 32 | if(!message.guild.channels.cache.find(x=> x.name == "Clydev-Log")) kat = await message.guild.channels.create({name:"Clydev-Log",type:ChannelType.GuildCategory, permissionOverwrites: [{id: message.guild.id,deny: [PermissionFlagsBits.ViewChannel]}]}); 33 | if(message.guild.channels.cache.find(x=> x.name == "Clydev-Log")) kat = await message.guild.channels.cache.find(x=> x.name == "Clydev-Log") 34 | manuelLoglar.forEach(async kanal => { 35 | if(!message.guild.channels.cache.find(x=> x.name == kanal)){ await message.guild.channels.create({name:kanal,type:ChannelType.GuildText, permissionOverwrites: [{id: message.guild.id,deny: [PermissionFlagsBits.ViewChannel]}]}).then(async channel => await channel.setParent(kat, { lockPermissions: true }));} 36 | }) 37 | await msg.edit({content:"Log kanalları kurulumu tamamlandı!"}) 38 | 39 | }, 4000); 40 | }) 41 | 42 | } 43 | if(args[0] == "kaldir" || args[0] == "sil" || args[0] == "kaldır") { 44 | message.reply({content:` Mevcut log kanalları kaldırılıyor.`}).then(async msg => { 45 | setTimeout(async() => { 46 | await msg.edit({content:"**Log kanalları siliniyor...**"}) 47 | manuelLoglar.forEach(async kanal => { 48 | if(message.guild.channels.cache.find(x=> x.name == kanal)){await message.guild.channels.cache.find(x=> x.name == kanal).delete() } 49 | }) 50 | if(message.guild.channels.cache.find(x=> x.name == "Clydev-Log")) message.guild.channels.cache.find(x=> x.name == "Clydev-Log").delete(); 51 | await msg.edit({content:"**Log kanalları silindi.**"}) 52 | 53 | }, 4000); 54 | }) 55 | } 56 | } 57 | } 58 | module.exports = Log; -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/reboot.js: -------------------------------------------------------------------------------- 1 | 2 | const { EmbedBuilder } = require("discord.js"); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | const { post } = require("node-superfetch"); 5 | const {Guild} = require("../../../../Global/Config/Guild") 6 | const children = require("child_process"); 7 | 8 | class Reboot extends Command { 9 | constructor(client) { 10 | super(client, { 11 | name: "reboot", 12 | description: "Bot/kod yenileme işlemini yapar.", 13 | usage: ".reboot", 14 | category: "Weatrix", 15 | aliases: ["yenile","reload","r"], 16 | enabled: true, 17 | developer: true 18 | }); 19 | } 20 | async onRequest (client, message, args) { 21 | if (!args[0]) { 22 | await message.react("🔃") 23 | await message.react("✅") 24 | console.log("[BOT] Bot yeniden başlatıldı."); 25 | process.exit(0); 26 | } 27 | if(args[0] == "all") { 28 | const ls = children.exec(`pm2 restart all`); 29 | return ls.stdout.on('data', function (data) {message.reply("Tüm botlar yeniden başlatılıyor")}); 30 | } 31 | let _find = args[0].toLocaleLowerCase() 32 | let command = client.commands.get(_find) || client.aliases.get(_find); 33 | if(!command) return message.reply({content:`**${args[0]}** adında bir komut bulunamadı.`}).then((x) => setTimeout(() => { x.delete() }, 5000)) 34 | const msg = await message.channel.send(`\`${command.name}\` adlı komut yeniden başlatılıyor!`); 35 | let a = command.location 36 | delete require.cache[require.resolve(`../${command.location}/${command.name}.js`)]; 37 | const cmd = new (require(`../${command.location}/${command.name}.js`))(client); 38 | cmd.location = a; 39 | if(cmd) cmd.on() 40 | await message.react("🔃") 41 | await message.react("✅") 42 | console.log(`[COMMAND] ${command.name} adlı komut yeniden başlatıldı`); 43 | msg.edit(`\`${command.name}\` adlı komut yeniden başlatıldı!`).then((x) => setTimeout(() => { x.delete() }, 5000)) 44 | } 45 | } 46 | module.exports = Reboot 47 | -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/setup.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle ,VoiceChannel,AttachmentBuilder,SelectMenuBuilder,ChannelType,PermissionFlagsBits } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const Roles = require("../../../../Global/Database/Roles") 5 | const Channel = require("../../../../Global/Database/Channel") 6 | const tagsistem = require("../../../../Global/Database/tagsistem") 7 | class Setup extends Command { 8 | constructor(client) { 9 | super(client, { 10 | name: "setup", 11 | description: "Bot Kurulum", 12 | usage: ".setup", 13 | category: "luhux", 14 | aliases: ["setup","kur","Setup","Kur"], 15 | 16 | enabled: true, 17 | guildOwner:true, 18 | developer : true 19 | }); 20 | } 21 | 22 | 23 | async onLoad(client) { 24 | 25 | } 26 | 27 | async onRequest (client, message, args,embed) { 28 | let sec = args[0] 29 | if(args[0] == "durum"){ 30 | const row = new ActionRowBuilder() 31 | .addComponents( 32 | new SelectMenuBuilder() 33 | .setPlaceholder("Bir işlem seçiniz!") 34 | .setCustomId("kurulum") 35 | .setOptions([ 36 | {value:"bilgi",description:"Kurulum Bilgi", label:"Kurulum Bilgi",emoji:{name:"⚙"}}, 37 | {value:"tag",description:"Tag ayarlarını buradan yapabilirsiniz.", label:"Tag Ayarları",emoji:{name:"⚙"}}, 38 | {value:"rol",description:"Rol ayarlarını buradan yapabilirsin", label:"Rol Ayaları",emoji:{name:"⚙"}}, 39 | {value:"kanal",description:"Kanal ayarlarını buradan yapabilirsiniz.", label:"Kanal Ayarları",emoji:{name:"⚙"}}, 40 | {value:"emoji",description:"Emoji kurulumunu burdan yapabilirsiniz", label:"Emoji Ayarları",emoji:{name:"⚙"}}, 41 | ]) 42 | ) 43 | 44 | let x = await message.reply({embeds:[embed.setDescription(`\`${message.guild.name}\` Sunucusunun Yönetim Paneline Hoş Geldiniz. \n Bu menüden botunuzun tüm ayarlarını gerçekleştirebilirsiniz.`)], components:[row]}) 45 | const filter = i => i.user.id == message.member.id 46 | const collector = x.createMessageComponentCollector({ filter: filter, errors: ["time"], time: 30000*10 }) 47 | collector.on('collect', async (i) => { 48 | if(i.values[0] == "tag") { 49 | const data = await tagsistem.findOne({guildID:message.guild.id}); 50 | i.reply({content:"Tag Ayarlarları Gösteriliyor.", ephemeral:true}) 51 | await x.edit({embeds:[new EmbedBuilder().setDescription(` 52 | \`Tag:\` ${data.Tag !=undefined ? `**${data.Tag}**`:"**AYARLANMADI**"} 53 | \`İsimTagları:\` ${data.nameTags.join(", ") !=undefined ? `${data.nameTags.join(", ")}`:"**AYARLANMADI**"} 54 | \`Tagsız Simge:\` ${data.unTag !=undefined ? `**${data.unTag}**`:"**AYARLANMADI**"} 55 | \`Etiket Tagı:\` #${data.NumberTag !=undefined ? `**${data.NumberTag}**`:"**AYARLANMADI**"} 56 | `).setAuthor({name:message.guild.name, iconURL: message.guild.iconURL({dynamic:true})}).setFooter({text:`Sunucunuzun Tagları (Taglar arası , koyun) yoksa olmaz (.setup nametag tag,tag2,tag3)`})]})} 57 | if(i.values[0] == "rol") { 58 | let guildroleconf = await Roles.findOne({guildID: message.guild.id}) 59 | i.reply({content:"Rol Ayarlarları Gösteriliyor.", ephemeral:true}) 60 | await x.edit({embeds:[new EmbedBuilder().setAuthor({name:message.guild.name, iconURL: message.guild.iconURL({dynamic:true})}).setDescription(` 61 | \`Kurucu Rolleri:\` ${guildroleconf ? guildroleconf.kurucuPerms.map(x=> `<@&${x}>`).join(", ") : "**AYARLANMADI**"} 62 | \`Kayıtsız Rolleri:\` ${guildroleconf ? guildroleconf.unregisterRoles.map(x=> `<@&${x}>`).join(", ") : "**AYARLANMADI**"} 63 | \`Taglı Rolü:\` ${guildroleconf.taglırolu !=undefined ? `<@&${guildroleconf.taglırolu}>`:"**AYARLANMADI**"} 64 | \`Erkek Rolleri:\` ${guildroleconf ? guildroleconf.manRoles.map(x=> `<@&${x}>`).join(", ") : "**AYARLANMADI**"} 65 | \`Kadın Rolleri:\` ${guildroleconf ? guildroleconf.womanRoles.map(x=> `<@&${x}>`).join(", ") : "**AYARLANMADI**"} 66 | \`Booster Rolü:\` ${guildroleconf.boosterRole !=undefined ? `<@&${guildroleconf.boosterRole}>`:"**AYARLANMADI**"} 67 | \`Register Staff:\` ${guildroleconf.registerStaffRole !=undefined ? `<@&${guildroleconf.registerStaffRole}>`:"**AYARLANMADI**"} 68 | \`Şüpheli:\` ${guildroleconf.suspectRole !=undefined ? `<@&${guildroleconf.suspectRole}>`:"**AYARLANMADI**"} 69 | 70 | 71 | `)]})} 72 | if(i.values[0] == "kanal") { 73 | let guildchannelconf = await Channel.findOne({guildID: message.guild.id}) 74 | i.reply({content:"Kanal Ayarlarları Gösteriliyor.", ephemeral:true}) 75 | await x.edit({embeds:[new EmbedBuilder().setAuthor({name:message.guild.name, iconURL: message.guild.iconURL({dynamic:true})}).setDescription(` 76 | \`Hoşgeldin Kanalı:\`${guildchannelconf.welcomeChannel != undefined ? `<#${guildchannelconf.welcomeChannel}>` : "**AYARLANMADI**"} 77 | \`Şüpheli Hesap Log:\`${guildchannelconf.suspectLog != undefined ? `<#${guildchannelconf.suspectLog}>` : "**AYARLANMADI**"} 78 | \`Davet Log:\`${guildchannelconf.inviteLog != undefined ? `<#${guildchannelconf.inviteLog}>` : "**AYARLANMADI**"} 79 | \`Chat (Genel Sohbet):\`${guildchannelconf.chatChannel != undefined ? `<#${guildchannelconf.chatChannel}>` : "**AYARLANMADI**"} 80 | \`Tag Log:\`${guildchannelconf.taglog != undefined ? `<#${guildchannelconf.taglog}>` : "**AYARLANMADI**"} 81 | \`Rules Kanal:\`${guildchannelconf.rules != undefined ? `<#${guildchannelconf.rules}>` : "**AYARLANMADI**"} 82 | 83 | 84 | `)]})} 85 | 86 | if(i.values[0] == "bilgi") { 87 | 88 | i.reply({content:"Kurulum Bilgi Gösteriliyor", ephemeral:true}) 89 | await x.edit({embeds:[new EmbedBuilder().setAuthor({name:message.guild.name, iconURL: message.guild.iconURL({dynamic:true})}) 90 | .setDescription(`\`${message.guild.name}\` Sunucusunun Yönetim Paneline Hoş Geldiniz.`) 91 | .addFields( 92 | {name:"__Tag Kurulum__",value:`\`.setup tag\` **(TAG)**\n\`.setup tag2\` **(TAG2)**\n\`.setup etikettag\` **(#1937)**\n\`.setup nametag\` **[TAG1,TAG2,TAG3]**`}, 93 | {name:"__Kanal Kurulum__",value:`\`.setup sohbetkanal\` **(#chat)**\n\`.setup hoşgeldinkanal\` **(#registerkanal)**\n\`.setup şüphelilog\` **(#şüphelilog)**\n\`.setup taglog\` **(#taglog)**\n\`.setup invitekanal\` **(#invitekanal)**\n\`.setup rules\` **(#invitekanal)**\n\`.setup kayıtlog\` **(#kayıtlog)**\n\`.setup kayıtsızlog\` **(#kayıtsızlog)**\n\`.setup şüphelilog\` **(#şüphelilog)**`}, 94 | {name:"__Rol Kurulum__",value:`\`.setup erkek\` **(@erkekrol)**\n\`.setup kadın\` **(@kadınrol)**\n\`.setup boost\` **(@boostrol)**\n\`.setup kayıtcı\` **(@kayıtcırolü)**\n\`.setup şüpheli\` **(@şüphelirol)**\n\`.setup tagrolü\` **(@taglırolü)**\n\`.setup kayıtsız\` **(@kayıtsızrolü)**\n\`.setup kurucurolleri\` **(@kurucurolleri)**`} 95 | ) 96 | 97 | 98 | ]})} 99 | 100 | if(i.values[0] == "emoji") { 101 | 102 | i.reply({content:"Emojiler Kuruluyo", ephemeral:true}) 103 | 104 | const emojiler = 105 | [ 106 | 107 | {name:"appEmoji_solOk",link: "https://cdn.discordapp.com/emojis/1051268013179015279.webp?size=96&quality=lossless"}, 108 | {name:"appEmoji_sagOk",link:"https://cdn.discordapp.com/emojis/1051268028492415106.webp?size=96&quality=lossless"}, 109 | {name:"appEmoji_tik",link:"https://cdn.discordapp.com/emojis/999096619649728552.webp?size=96&quality=lossless"}, 110 | {name:"appEmoji_carpi",link:"https://cdn.discordapp.com/emojis/999096621298110615.webp?size=96&quality=lossless"}, 111 | ] 112 | 113 | for (let ii = 0; ii < emojiler.length; ii++) { 114 | const emojix = emojiler[ii]; 115 | i.guild.emojis.create({attachment:emojix.link,name: emojix.name}) 116 | .then(emoji => i.channel.send({embeds: [new EmbedBuilder().setDescription(`Başarıyla \`${emoji.name}\` adında emoji oluşturuldu. (${emoji})`)]})) 117 | 118 | } 119 | } 120 | 121 | 122 | }) 123 | } 124 | 125 | await Roles.findOne({guildID: message.guild.id}, async (err, data) => { 126 | if (err) console.log(err) 127 | 128 | if (["erkek", "Erkek", "Erkekrolleri", "man", "Man"].some(y => y === sec)) { 129 | let select; 130 | if (message.mentions.roles.size >= 1) { 131 | select = message.mentions.roles.map(r => r.id); 132 | } else { 133 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 134 | select = args.splice(0, 1).map(id => message.guild.roles.cache.get(id)).filter(r => r != undefined); 135 | } 136 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{manRoles:select}},{upsert:true}) 137 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 138 | }; 139 | 140 | if (["kadın", "Kadın", "Kadınrolleri", "woman", "Woman"].some(y => y === sec)) { 141 | let select; 142 | if (message.mentions.roles.size >= 1) { 143 | select = message.mentions.roles.map(r => r.id); 144 | } else { 145 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 146 | select = args.splice(0, 1).map(id => message.guild.roles.cache.get(id)).filter(r => r != undefined); 147 | } 148 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{womanRoles:select}},{upsert:true}) 149 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 150 | }; 151 | if (["boost", "booster", "boostrol", "boosterrol"].some(y => y === sec)) { 152 | let select = message.mentions.roles.first(); 153 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 154 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{boosterRole:select}},{upsert:true}) 155 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 156 | }; 157 | if (["register", "kayıtcı", "Register", "RegisterStaff"].some(y => y === sec)) { 158 | let select = message.mentions.roles.first(); 159 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 160 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{registerStaffRole:select}},{upsert:true}) 161 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 162 | }; 163 | if (["yenihesap", "şüpheli", "Şüpheli", "yeniaq"].some(y => y === sec)) { 164 | let select = message.mentions.roles.first(); 165 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 166 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{suspectRole:select}},{upsert:true}) 167 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 168 | }; 169 | if (["taglırolü", "Taglırolü", "tagrolü", "Tagrolü"].some(y => y === sec)) { 170 | let select = message.mentions.roles.first(); 171 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 172 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{taglırolu:select}},{upsert:true}) 173 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 174 | }; 175 | if (["kayıtsız", "unregister", "kayıtsızüye", "uregister", "kayitsiz"].some(y => y === sec)) { 176 | let select; 177 | if (message.mentions.roles.size >= 1) { 178 | select = message.mentions.roles.map(r => r.id); 179 | } else { 180 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 181 | select = args.splice(0, 1).map(id => message.guild.roles.cache.get(id)).filter(r => r != undefined); 182 | } 183 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{unregisterRoles:select}},{upsert:true}) 184 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 185 | }; 186 | if (["banhammer", "bancı", "banyetki", "Banhammer"].some(y => y === sec)) { 187 | let select = message.mentions.roles.first(); 188 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 189 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{banhammer:select}},{upsert:true}) 190 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 191 | }; 192 | if (["mutehammer", "muteci", "muteyetki", "mutehammer"].some(y => y === sec)) { 193 | let select = message.mentions.roles.first(); 194 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 195 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{mutehammer:select}},{upsert:true}) 196 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 197 | }; 198 | if (["vmutehammer", "vmuteci", "vmuteyetki", "vmutehammer"].some(y => y === sec)) { 199 | let select = message.mentions.roles.first(); 200 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 201 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{vmutehammer:select}},{upsert:true}) 202 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 203 | }; 204 | if (["muterolü", "Muterolü", "chatmuterolü", "muterol"].some(y => y === sec)) { 205 | let select = message.mentions.roles.first(); 206 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 207 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{muterol:select}},{upsert:true}) 208 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 209 | }; 210 | if (["vmuterolü", "VMuterolü", "sesmuterolü", "VMuterol"].some(y => y === sec)) { 211 | let select = message.mentions.roles.first(); 212 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 213 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{vmuterol:select}},{upsert:true}) 214 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 215 | }; 216 | if (["botcommands", "botcommand", "Botcommands", "botcommandss"].some(y => y === sec)) { 217 | let select = message.mentions.roles.first(); 218 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 219 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{botcommands:select}},{upsert:true}) 220 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 221 | }; 222 | if (["jailhammer", "jailci", "jailhammers", "jailyetki"].some(y => y === sec)) { 223 | let select = message.mentions.roles.first(); 224 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 225 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{jailhammer:select}},{upsert:true}) 226 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 227 | }; 228 | if (["jailrol", "jail", "karantina", "jailataq"].some(y => y === sec)) { 229 | let select = message.mentions.roles.first(); 230 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 231 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{jailedRole:select}},{upsert:true}) 232 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 233 | }; 234 | if (["Kurucuperm", "kurucuyetki", "kurucurolleri", "Kurucurolleri", "KurucuRolleri"].some(y => y === sec)) { 235 | let select; 236 | if (message.mentions.roles.size >= 1) { 237 | select = message.mentions.roles.map(r => r.id); 238 | } else { 239 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 240 | select = args.splice(0, 1).map(id => message.guild.roles.cache.get(id)).filter(r => r != undefined); 241 | } 242 | await Roles.findOneAndUpdate({guildID: message.guild.id}, {$set:{kurucuPerms:select}},{upsert:true}) 243 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 244 | }; 245 | 246 | if (["sohbet-kanal", "chat", "sohbetkanal", "genelchat"].some(y => y === sec)) { 247 | let select = message.mentions.channels.first(); 248 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 249 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{chatChannel:select}},{upsert:true}) 250 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 251 | }; 252 | 253 | if (["Hoşgeldinkanalı", "registerkanalı", "hoşgeldinkanal"].some(y => y === sec)) { 254 | let select = message.mentions.channels.first(); 255 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 256 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{welcomeChannel:select}},{upsert:true}) 257 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 258 | }; 259 | 260 | if (["Şüphelilog", "şüphelilog", "şüphelikanalı"].some(y => y === sec)) { 261 | let select = message.mentions.channels.first(); 262 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 263 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{suspectLog:select}},{upsert:true}) 264 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 265 | }; 266 | if (["mutelog", "mutecilog", "muteelogaq"].some(y => y === sec)) { 267 | let select = message.mentions.channels.first(); 268 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 269 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{mutelog:select}},{upsert:true}) 270 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 271 | }; 272 | if (["jaillog", "Jaillog", "jailkanal"].some(y => y === sec)) { 273 | let select = message.mentions.channels.first(); 274 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 275 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{jaillog:select}},{upsert:true}) 276 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 277 | }; 278 | if (["banlog", "Banlog", "banlognere"].some(y => y === sec)) { 279 | let select = message.mentions.channels.first(); 280 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 281 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{banlog:select}},{upsert:true}) 282 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 283 | }; 284 | 285 | if (["taglog", "Taglog", "tagkanal"].some(y => y === sec)) { 286 | let select = message.mentions.channels.first(); 287 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 288 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{taglog:select}},{upsert:true}) 289 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 290 | }; 291 | if (["Cezapuan", "cezapuan", "cezapuankanal"].some(y => y === sec)) { 292 | let select = message.mentions.channels.first(); 293 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 294 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{penaltyPointsLog:select}},{upsert:true}) 295 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 296 | }; 297 | if (["kayıtsızlog", "Kayıtsızlog", "KAyıtsızlog"].some(y => y === sec)) { 298 | let select = message.mentions.channels.first(); 299 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 300 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{kayıtsızlog:select}},{upsert:true}) 301 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 302 | }; 303 | 304 | if (["kayıtlog", "Kayıtlog", "kayıtlogu"].some(y => y === sec)) { 305 | let select = message.mentions.channels.first(); 306 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 307 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{kayıtlog:select}},{upsert:true}) 308 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 309 | }; 310 | 311 | if (["invitekanal", "İnvitekanal", "davetkanalı"].some(y => y === sec)) { 312 | let kanal = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]); 313 | if (!kanal) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 314 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{inviteLog:kanal}},{upsert:true}) 315 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 316 | }; 317 | 318 | if (["rules", "ruleskanal", "kurallar"].some(y => y === sec)) { 319 | let kanal = message.mentions.channels.first() || message.guild.channels.cache.get(args[0]); 320 | if (!kanal) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 321 | await Channel.findOneAndUpdate({guildID: message.guild.id}, {$set:{rules:kanal}},{upsert:true}) 322 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 323 | }; 324 | 325 | if (["TAG", "tag", "Tag"].some(y => y === sec)) { 326 | let select = args[1]; 327 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 328 | await tagsistem.findOneAndUpdate({guildID: message.guild.id}, {$set:{Tag:select}},{upsert:true}) 329 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 330 | }; 331 | if (["TAG2", "tag2", "Tag2"].some(y => y === sec)) { 332 | let select = args[1]; 333 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 334 | await tagsistem.findOneAndUpdate({guildID: message.guild.id}, {$set:{unTag:select}},{upsert:true}) 335 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 336 | }; 337 | if (["Etikettag", "etiket", "etikettag"].some(y => y === sec)) { 338 | let select = args[1]; 339 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 340 | await tagsistem.findOneAndUpdate({guildID: message.guild.id}, {$set:{NumberTag:select}},{upsert:true}) 341 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 342 | }; 343 | if (["Nametag", "isimtag", "nametag"].some(y => y === sec)) { 344 | args = args.filter(a => a !== "" && a !== " ").splice(1); 345 | let select = args.filter(arg => isNaN(arg)).map(arg => arg.charAt(0) + arg.slice(2)).join(" "); 346 | if (!select) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_carpi")); 347 | let tags = select.split(",") 348 | await tagsistem.findOneAndUpdate({guildID: message.guild.id}, {$set:{nameTags:tags}},{upsert:true}) 349 | ,message.react(client.emojis.cache.find(res => res.name === "appEmoji_tik")); 350 | }; 351 | }) 352 | 353 | } 354 | } 355 | module.exports = Setup; -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/test.js: -------------------------------------------------------------------------------- 1 | 2 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle ,VoiceChannel,AttachmentBuilder } = require("discord.js"); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | class test extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "test", 8 | description: "Bot ile mesaj göndermek için", 9 | usage: ".test (metin/embed)", 10 | category: "Weatrix", 11 | aliases: ["test"], 12 | 13 | enabled: true, 14 | guildOwner:true, 15 | developer : true 16 | }); 17 | } 18 | 19 | 20 | async onLoad(client) { 21 | 22 | } 23 | 24 | async onRequest (client, message, args,embed) { 25 | console.log("sikimiyeeeeee") 26 | } 27 | } 28 | module.exports = test; 29 | -------------------------------------------------------------------------------- /Bots/Main/_commands/BotOwner/text.js: -------------------------------------------------------------------------------- 1 | 2 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | const { post } = require("node-superfetch"); 5 | const {Guild} = require("../../../../Global/Config/Guild") 6 | class Text extends Command { 7 | constructor(client) { 8 | super(client, { 9 | name: "text", 10 | description: "Bot ile mesaj göndermek için", 11 | usage: ".text (metin/embed)", 12 | category: "Weatrix", 13 | aliases: ["yaz"], 14 | 15 | enabled: true, 16 | guildOwner:true, 17 | developer : true 18 | }); 19 | } 20 | 21 | 22 | onLoad(client) { 23 | 24 | } 25 | 26 | async onRequest (client, message, args,embed) { 27 | if(args[0] != "metin" && args[0] != "embed") return message.reply({content:"göndermek istediğiniz mesajın türünü seçiniz (metin/embed)"}) 28 | if(args[0]== "metin"){ 29 | message.channel.send({content:`${args.splice(1).join(" ")}`}) 30 | } 31 | if(args[0]== "embed"){ 32 | message.channel.send({embeds:[embed.setDescription(`${args.splice(1).join(" ")}`)]}) 33 | } 34 | } 35 | } 36 | module.exports = Text; -------------------------------------------------------------------------------- /Bots/Main/_commands/Global/avatar.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, Discord } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | class Avatar extends Command { 4 | constructor(client) { 5 | super(client, { 6 | name: "avatar", 7 | description: "Aptal Avatar Arayanlara avatar istediği kullanıcının avatarını verir :)", 8 | usage: ".avatar", 9 | category: "Global", 10 | aliases: ["avatar","av","lulux"], 11 | 12 | enabled: true, 13 | 14 | }); 15 | } 16 | async onRequest (client, message, args) { 17 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 18 | let link = new ActionRowBuilder({components:[new ButtonBuilder({label:"Tarayıcıda aç", style:ButtonStyle.Link, url: member.user.displayAvatarURL({dynamic:true})})]}) 19 | await message.reply({ 20 | content: `${member.user.displayAvatarURL({dynamic:true, format:"png"})}`, 21 | components:[link] 22 | }) 23 | if(message) await message.react(await emojiBul("appEmoji_tik")) 24 | 25 | 26 | } 27 | } 28 | 29 | module.exports = Avatar; -------------------------------------------------------------------------------- /Bots/Main/_commands/Global/banner.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder, Discord } = require("discord.js"); 2 | const { DiscordBanners } = require('discord-banners'); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | const discordBanners = new DiscordBanners(client); 5 | class Banner extends Command { 6 | constructor(client) { 7 | super(client, { 8 | name: "banner", 9 | description: "Aptal Banner Arayanlara banner istedigi kullanicinin bannerin verir :)", 10 | usage: ".banner", 11 | category: "Global", 12 | aliases: ["Banner","banner","afiş","afis"], 13 | enabled: true, 14 | 15 | }); 16 | } 17 | async onRequest (client, message, args) { 18 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 19 | const banner = await discordBanners.getBanner(member.id, { size: 2048, format: "png", dynamic: true }) 20 | if(banner){ 21 | let link = new ActionRowBuilder({components:[new ButtonBuilder({label:"Tarayıcıda aç", style:ButtonStyle.Link, url: banner})]}) 22 | await message.reply({ 23 | content: `${banner}` 24 | , components:[link] })} 25 | if(message) await message.react(await emojiBul("appEmoji_tik")) 26 | 27 | else return cevap(message,"bannerYok") 28 | 29 | }; 30 | } 31 | 32 | module.exports = Banner; -------------------------------------------------------------------------------- /Bots/Main/_commands/Global/tag.js: -------------------------------------------------------------------------------- 1 | const tagsistem = require("../../../../Global/Database/tagsistem") 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | class Tag extends Command { 4 | constructor(client) { 5 | super(client, { 6 | name: "Tag", 7 | description: "Sunucu Tagı", 8 | usage: ".tag", 9 | category: "Global", 10 | aliases: ["tag","tag","tagh"], 11 | 12 | enabled: true, 13 | 14 | }); 15 | } 16 | async onRequest (client, message, args) { 17 | 18 | let data = await tagsistem.findOne({guildID: message.guild.id}) 19 | message.reply(`**${data.Tag} ${data.nameTags.join(", ")} ${data.NumberTag}**`); 20 | 21 | 22 | } 23 | } 24 | 25 | module.exports = Tag; -------------------------------------------------------------------------------- /Bots/Main/_commands/Global/yardım.js: -------------------------------------------------------------------------------- 1 | 2 | const { PermissionsBitField,Formatters } = require('discord.js'); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | 5 | class Help extends Command { 6 | constructor(client) { 7 | super(client, { 8 | name: "yardım", 9 | description: "Bot'a eklenmiş olan komutları gösterir", 10 | usage: ".yardım", 11 | category: "Global", 12 | aliases: ["help","yardım"], 13 | enabled: true, 14 | 15 | cooldown: 3500, 16 | 17 | }); 18 | } 19 | 20 | async onRequest (client, message, args,embed) { 21 | if(message) 22 | if(!args[0]) return message.reply({embeds:[embed.setDescription(`**${client.users.cache.get(client.owners[0]).tag}** tarafından \`${message.guild.name}\` sunucusuna yapılmış botun komutları aşağıda verilmiştir.\n ${client.commands.filter(x=> x.developer == false && x.guildOwner == false).map(x=>`\`${x.usage}\``).join("\n")}\n\n**Toplam ${client.commandLength} adet komut bulunuyor.**\n\`Not: Komut hakkında detaylı bilgi için ".yardım " yazmanız yeterlidir.\``)]}) 23 | if(args[0]){ 24 | let _find = args[0].toLocaleLowerCase() 25 | let command = client.commands.get(_find) || client.aliases.get(_find); 26 | message.reply({embeds:[ 27 | embed 28 | .setDescription(Formatters.codeBlock("md", 29 | `# ${command.name} komutunun detayları; 30 | > İsmi : ${command.name} 31 | > Kullanım : ${command.usage} 32 | > Diğer Anahtarları : ${command.aliases.filter(x=> x !== command.name).join(", ")} 33 | > Beklem Süresi : ${moment.duration(command.cooldown).format("s [Saniye]")} 34 | < Açıklaması : ${command.description} 35 | 36 | ` 37 | )) 38 | ]}) 39 | } 40 | } 41 | } 42 | 43 | module.exports = Help 44 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Invite/Topinvite.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle, AttachmentBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const inviter = require("../../../../Global/Database/invite") 4 | 5 | class topDavet extends Command { 6 | constructor(client) { 7 | super(client, { 8 | name: "topDavet", 9 | description: "Davet Bilgilerinizi Gösterir.", 10 | usage: ".topDavet", 11 | category: "Invite", 12 | aliases: ["topdavet","davettop"], 13 | 14 | enabled: true, 15 | }); 16 | } 17 | async onRequest (client, message, args,embed) { 18 | 19 | let data = await inviter.find({ guildID: message.guild.id }); 20 | let davetSıralama = await data.filter(data=>data.total > 0 && message.guild.members.cache.get(data.userID)).length > 0 ? data.filter(data=>data.total > 0 && message.guild.members.cache.get(data.userID)).sort((a,b)=>b.total - a.total).map((x,Index)=>`\`${Index+1}.\` <@${x.userID}>: __${x.total}__`).splice(0,10).join("\n"):`Veri Bulunamadı!` 21 | message.channel.send({embeds:[embed.setDescription(`**${message.guild.name}**, aşağıda en çok davet yapan **10** kullanıcı verilmiştir.`).setFields( 22 | {name:"Top 10 Davet", value:`**${davetSıralama}**`} 23 | )]}) 24 | } 25 | } 26 | module.exports = topDavet; -------------------------------------------------------------------------------- /Bots/Main/_commands/Invite/invite.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle, AttachmentBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const inviter = require("../../../../Global/Database/invite") 4 | class Davetim extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "Davetim", 8 | description: "Davet Bilgilerinizi Gösterir.", 9 | usage: ".davetim (@Clydev/ID)", 10 | category: "Invite", 11 | aliases: ["davetim","invite"], 12 | 13 | enabled: true, 14 | }); 15 | } 16 | async onRequest (client, message, args,embed) { 17 | 18 | 19 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 20 | 21 | let data = await inviter.findOne({ guildID: message.guild.id, userID: member.id }); 22 | if(member.id == message.member.id) { 23 | return await message.reply({embeds:[embed.setDescription(`Toplam **${data.total+data.bonus}** ${member.id === message.author.id ? "davetin" : "daveti"} var. (Gerçek: \`${data.regular || "0"}\`, Bonus: \`${data.bonus || "0"}\`, Sahte: \`${data.fake || "0"}\`, Çıkış: \`${data.leave || "0"}\`)`) .setFooter({text:"Clydev was here !"})]}) 24 | } 25 | message.channel.send({ embeds: [embed.setDescription(`${member} adlı kullanıcının genel davet bilgileri; 26 | 27 | Toplam **${data.total+data.bonus}** ${member.id === message.author.id ? "davetin" : "daveti"} var. (Gerçek: \`${data.regular || "0"}\`, Bonus: \`${data.bonus || "0"}\`, Sahte: \`${data.fake || "0"}\`, Çıkış: \`${data.leave || "0"}\`)`)] }); 28 | } 29 | } 30 | 31 | module.exports = Davetim; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/ban.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const bans = require("../../../../Global/Database/ban") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | class Ban extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "Ban", 13 | description: "ID'si girilen kullanıcıyı sunucudan yasaklar.", 14 | usage: ".ban @weatrix/ID", 15 | category: "Moderasyon", 16 | aliases: ["yasakla","ban","sik","uçur","ucur","weatrixsikgeçortalığı"], 17 | enabled: true, 18 | }); 19 | } 20 | async onRequest (client, message, args, embed) { 21 | let roles = await Roles.findOne({guildID: message.guild.id}) 22 | let channels = await Channel.findOne({guildID: message.guild.id}) 23 | if( 24 | [roles.banhammer].some(x=> message.member.roles.cache.has(x))) { 25 | 26 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 27 | if(!member) return cevap(message,"memberYok") 28 | if (member.user.bot) return cevap(message,"bot") 29 | if (!member.manageable) return cevap(message,"yetersizYetki") 30 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 31 | var reason = args.splice(1).join(" ") 32 | if(!reason) reason = "Sebep Girilmedi." 33 | const ceza = await penalty.countDocuments().exec(); 34 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),Reason:reason, type:"BAN"}}},{upsert:true}) 35 | await message.guild.members.ban(member.id, {reason:`${message.member.user.tag} Tarafından Yasaklandı!`}) 36 | await message.reply({ embeds: [new EmbedBuilder().setColor("2F3136").setAuthor({ 37 | name: message.member.user.username, 38 | iconURL: message.member.user.avatarURL({dynamic:true}) 39 | }).setDescription(`${client.emojis.cache.find(x => x.name === "appEmoji_yes")} ${member} Kullanıcısı banlandı. \n "${member.id}" ID'li kullanıcı tarihinde () sunucudan yasaklandı!`).setImage("https://cdn.discordapp.com/attachments/1066294817878986782/1067039590818529290/00648c6786aedeaf2d9b401e17dc7fe7.gif")]}) 40 | message.guild.channels.cache.get(channels.banlog) 41 | .send({embeds:[embed.setDescription(`${member} [\`${member.id}\`], Sunucudan Yasaklandı!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:**\n \`\`\` ${reason} \`\`\``})]}) 42 | await bans.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,banned:1},$push:{bans:{Punished:member.id, SentencingDate:Date.now(), Type:"BAN", Reason:reason}}},{upsert:true}) 43 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:25}},{upsert:true}) 44 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 45 | if(message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 46 | .send({content:`**${member} Ceza puanın güncellendi!.** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 47 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 48 | } 49 | } 50 | module.exports = Ban; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/banliste.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const bans = require("../../../../Global/Database/ban") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | class Banliste extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "Ban", 13 | description: "Sunucudaki yasaklı kişileri gösterir.", 14 | usage: ".ban @weatrix/ID", 15 | category: "Moderasyon", 16 | aliases: ["ban-list","banlist","yasaklılar"], 17 | enabled: true, 18 | }); 19 | } 20 | async onRequest (client, message, args, embed) { 21 | let roles = await Roles.findOne({guildID: message.guild.id}) 22 | let channels = await Channel.findOne({guildID: message.guild.id}) 23 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) || 24 | [roles.banhammer].some(x=> message.member.roles.cache.has(x))) { 25 | 26 | var bannedLength = 0; 27 | await message.guild.bans.fetch().then(async (banned)=> bannedLength = banned.size); 28 | var bannedUsers = []; 29 | await message.guild.bans.fetch().then(async (banned) => { 30 | var i = 0; 31 | banned.forEach(async (user) => { 32 | i = i+1 33 | bannedUsers.push(`${i}. ${user.user.tag} (${user.user.id})`) 34 | }) 35 | }) 36 | let mesaj = await chunkify(bannedUsers,20) 37 | message.channel.send({content:`Sunucuda Toplam ${bannedLength} Adet Yasaklama Bulunuyor.`}).then(a=>{ 38 | mesaj.forEach(x=>message.channel.send({content:` \`\`\`md 39 | ${x.join("\n")} 40 | \`\`\``})) 41 | }) 42 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 43 | } 44 | } 45 | module.exports = Banliste; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/cezabilgi.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const penalty =require("../../../../Global/Database/ceza") 5 | const Roles = require("../../../../Global/Database/Roles") 6 | const Channel = require("../../../../Global/Database/Channel") 7 | class Cezabilgi extends Command { 8 | constructor(client) { 9 | super(client, { 10 | name: "Cezabilgi", 11 | description: "ID'si girilen ceza bilgilerini gösterir.", 12 | usage: ".cezabilgi CezaID", 13 | category: "Moderasyon", 14 | aliases: ["cb","cezabilgi"], 15 | enabled: true, 16 | }); 17 | } 18 | async onRequest (client, message, args,embed) { 19 | let roles = await Roles.findOne({guildID: message.guild.id}) 20 | let channels = await Channel.findOne({guildID: message.guild.id}) 21 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 22 | || 23 | [roles.botcommands].some(x=> message.member.roles.cache.has(x))){ 24 | const hataEmbed = new EmbedBuilder() 25 | .setAuthor({name:message.guild.name,iconURL:message.guild.iconURL({dynamic:true})}) 26 | .setColor("Red") 27 | let cezaID = args[0] 28 | if(!cezaID || !Number(cezaID)) return message.reply({embeds:[hataEmbed.setDescription(`**[ __Hata__ ]** \` | \` Lütfen sayı olucak şekilde tekrar deneyiniz. (\`.cezabilgi 31\`)`)]}).then(async msg =>{ 29 | setTimeout(async() => { 30 | if(msg && msg.deletable) await msg.delete(); 31 | if(message && message.deletable) await message.delete(); 32 | }, 10000); 33 | }) 34 | const data = await penalty.findOne({guildID:message.guild.id,cezaId:cezaID}) 35 | let a = await penalty.countDocuments().exec(); 36 | if(!data) return message.reply({embeds:[hataEmbed.setDescription(`**[ __Hata__ ]** \` | \` Girilen ceza id'sine ait veriler bulunamadı. Toplam **${a}** ceza id'si bulunuyor.`)]}).then(async msg =>{ 37 | setTimeout(async() => { 38 | if(msg && msg.deletable) await msg.delete(); 39 | if(message && message.deletable) await message.delete(); 40 | }, 10000); 41 | }) 42 | message.reply({embeds:[ 43 | new EmbedBuilder() 44 | .setAuthor({name:message.guild.id, iconURL:message.guild.iconURL({dynamic:true})}) 45 | .setDescription(`**#${cezaID}**, Numaralı cezanin detayları aşağıda verilmiştir.`) 46 | .addFields({name:"** **",value: 47 | ` 48 | \` ❯ \` **Yetkili:** <@${data.penaltys[0].Staff}> - (\`${data.penaltys[0].Staff}\`) 49 | \` ❯ \` **Kullanıcı:** <@${data.penaltys[0].Punished}> - (\`${data.penaltys[0].Punished}\`) 50 | \` ❯ \` **Cezası:** ${data.penaltys[0].type} 51 | \` ❯ \` **Durum:** ${data.penaltys[0].Finished == true ? "Bitmiş":``} 52 | \` ❯ \` **Sebep:** ${data.penaltys[0].Reason} 53 | ` 54 | }) 55 | 56 | ]}) 57 | 58 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 59 | } 60 | } 61 | module.exports = Cezabilgi; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/ihlal.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database//ceza") 6 | const Roles = require("../../../../Global/Database/Roles") 7 | const Channel = require("../../../../Global/Database/Channel") 8 | class İhlaller extends Command { 9 | constructor(client) { 10 | super(client, { 11 | name: "ihlaller", 12 | description: "ID'si girilen ceza bilgilerini gösterir.", 13 | usage: ".ihlal (@weatrix/ID)", 14 | category: "Moderasyon", 15 | aliases: ["ihlaller","ihlal"], 16 | enabled: true, 17 | }); 18 | } 19 | async onRequest (client, message, args,embed) { 20 | let roles = await Roles.findOne({guildID: message.guild.id}) 21 | let channels = await Channel.findOne({guildID: message.guild.id}) 22 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 23 | || 24 | [roles.botcommands].some(x=> message.member.roles.cache.has(x))){ 25 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member; 26 | if(!member) return cevap(message,"memberYok") 27 | let data = await penalty.find({guildID:message.guild.id,userID:member.id}) 28 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 29 | const cp = cezapuandata ? cezapuandata.cezapuan: 0; 30 | var ban = 0; 31 | var cmute = 0; 32 | var vmute =0; 33 | var jail = 0; 34 | for (let i = 0; i < data.length; i++) { 35 | const cezalar = data[i]; 36 | if(cezalar.penaltys[0].type == "CHAT-MUTE"){cmute++} 37 | else if(cezalar.penaltys[0].type == "VOICE-MUTE"){vmute++} 38 | else if(cezalar.penaltys[0].type == "JAIL"){jail++} 39 | else if(cezalar.penaltys[0].type == "BAN"){ban++} 40 | } 41 | message.reply({content:`**${member.user.tag}** Kullanıcısının Toplamda \`${ban+cmute+vmute+jail}\` (**Mute: ${cmute} | VMute: ${vmute} | Jail: ${jail} | Ban: ${ban}**) adet ihlali ve \`${cp}\` ceza puanı bulundu.`}) 42 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 43 | } 44 | } 45 | module.exports = İhlaller; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/jail.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const mute = require("../../../../Global/Database/mute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | const ms = require("ms"); 10 | class Jail extends Command { 11 | constructor(client) { 12 | super(client, { 13 | name: "Jail", 14 | description: "ID'si girilen kullanıcıyı süreli bir şekilde sunucunun metin ve ses kanallarından uzaklaştırır.", 15 | usage: ".jail @weatrix/ID ", 16 | category: "Moderasyon", 17 | aliases: ["jail","cezali","cezalı"], 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let roles = await Roles.findOne({guildID: message.guild.id}) 23 | let channels = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | [roles.jailhammer].some(x=> message.member.roles.cache.has(x))){ 27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 28 | if(!member) return cevap(message,"memberYok") 29 | if (member.user.bot) return cevap(message,"bot") 30 | if (!member.manageable) return cevap(message,"yetersizYetki") 31 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 32 | var sure = args[1] 33 | if(!sure || !ms(sure)) return cevap(message,"sureYok") 34 | sure = ms(sure) 35 | let mutesure = args[1].replace(`s`, " Saniye").replace(`m`, " Dakika").replace(`h`, " Saat").replace(`d`, " Gün").replace(`w`, " Hafta") 36 | var reason = args.splice(2).join(" ") 37 | if(!reason) reason = "Sebep Girilmedi." 38 | const data = await penalty.find(); 39 | let cezakontrol = await data.filter(x=> x.penaltys.some(x=> x.type == "JAIL" && x.Punished == member.id && x.Finished == false)).length > 0 40 | if(member.roles.cache.has(roles.jailedRole) || cezakontrol) return message.reply({content:`**${member.user.tag}**, Aktif cezası bulunduğu için uzaklaştırma işlemi yapılamaz.`}) 41 | const ceza = await penalty.countDocuments().exec(); 42 | let rolleri = member.roles.cache.filter(x=> x.id != message.guild.id && x.id != roles.boosterRole).map(x=> x.id) 43 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),PenaltyEndTime: Date.now()+sure,Finished:false, type:"JAIL",Reason:reason,Roles:rolleri}}},{upsert:true}) 44 | await member.roles.set(member.roles.cache.has(roles.boosterRole) ? [roles.jailedRole, roles.boosterRole]:[roles.jailedRole]) 45 | await message.reply({content:`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} Uzaklaştırma (\`Jail\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin ve ses kanallarından uzaklaştırıldı!`}) 46 | message.guild.channels.cache.get(channels.jaillog) 47 | .send({embeds:[embed.setDescription(`${member} [\`${member.id}\`], Sunucunun metin ve ses kanallarından uzaklaştırıldı!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:** ${reason}\n\` ❯ \` **Süre:** ${mutesure}`})]}) 48 | await mute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,mute:1},$push:{mutes:{Punished:member.id, SentencingDate:Date.now(), Type:"C-MUTE", Reason:reason,Finished:false}}},{upsert:true}) 49 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:15}},{upsert:true}) 50 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 51 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 52 | .send({content:`**${member} Ceza puanın güncellendi!.** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 53 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 54 | } 55 | } 56 | module.exports = Jail; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/kilit.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle ,VoiceChannel,AttachmentBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | class Kilit extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "kilit", 8 | description: "buraya yaz bişey lan", 9 | usage: ".kilit", 10 | category: "Moderasyon", 11 | aliases: ["kilit","lock"], 12 | enabled: true, 13 | }); 14 | } 15 | 16 | 17 | async onLoad(client) { 18 | 19 | } 20 | 21 | async onRequest (client, message, args,embed) { 22 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,]){ 23 | if (args[0] == "aç") { 24 | message.channel.permissionOverwrites.edit(message.guild.id, { 25 | SendMessages: null 26 | }).then(async() => { 27 | message.react("🔓") 28 | await message.reply("🔓 Kanal Kilidi Açıldı.") 29 | }) 30 | } 31 | 32 | if (args[0] == "kapat") { 33 | message.channel.permissionOverwrites.edit(message.guild.id, { 34 | SendMessages: false 35 | }).then(async() => { 36 | message.react("🔒") 37 | await message.reply("🔓 Kanal Kilitlendi.") 38 | }) 39 | } 40 | 41 | } else { 42 | return 43 | } 44 | } 45 | } 46 | 47 | 48 | module.exports = Kilit; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/mute.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const mute = require("../../../../Global/Database/mute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | const ms = require("ms"); 10 | class ChatMute extends Command { 11 | constructor(client) { 12 | super(client, { 13 | name: "C-mute", 14 | description: "ID'si girilen kullanıcıyı süreli bir şekilde sunucunun metin kanallarında susturur", 15 | usage: ".cmute @weatrix/ID ", 16 | category: "Moderasyon", 17 | aliases: ["sustur","mute","cmute"], 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let roles = await Roles.findOne({guildID: message.guild.id}) 23 | let channels = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | [roles.mutehammer].some(x=> message.member.roles.cache.has(x))){ 27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 28 | if(!member) return cevap(message,"memberYok") 29 | if (member.user.bot) return cevap(message,"bot") 30 | if (!member.manageable) return cevap(message,"yetersizYetki") 31 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 32 | var sure = args[1] 33 | if(!sure || !ms(sure)) return cevap(message,"sureYok") 34 | sure = ms(sure) 35 | let mutesure = args[1].replace(`s`, " Saniye").replace(`m`, " Dakika").replace(`h`, " Saat").replace(`d`, " Gün").replace(`w`, " Hafta") 36 | var reason = args.splice(2).join(" ") 37 | if(!reason) reason = "Sebep Girilmedi." 38 | const data = await penalty.find(); 39 | let cezakontrol = data.filter(x=> x.penaltys.some(x=> x.type == "CHAT-MUTE" && x.Punished == member.id && x.Finished == false)).length > 0 40 | if(member.roles.cache.has(roles.muterol) || cezakontrol) return message.reply({content:`**${member.user.tag}**, Aktif cezası bulunduğu için susturma işlemi yapılamaz.`}) 41 | const ceza = await penalty.countDocuments().exec(); 42 | await penalty.findOneAndUpdate({guildID: message.guild.id, userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),PenaltyEndTime: Date.now()+sure,Finished:false,Reason:reason, type:"CHAT-MUTE"}}},{upsert:true}) 43 | if(roles && roles.muterol) await member.roles.add(roles.muterol) 44 | await message.reply({content:`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} Susturma (\`Chat Mute\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin kanallarından susturuldu!`}) 45 | message.guild.channels.cache.get(channels.mutelog) 46 | .send({embeds:[embed.setDescription(`${member} [\`${member.id}\`], Sunucunun metin kanallarından susturuldu!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:** ${reason}\n\` ❯ \` **Süre:**\n\`\`\` ${mutesure} \`\`\``})]}) 47 | await mute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,mute:1},$push:{mutes:{Punished:member.id, SentencingDate:Date.now(), Type:"C-MUTE", Reason:reason,Finished:false}}},{upsert:true}) 48 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:10}},{upsert:true}) 49 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 50 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 51 | .send({content:`**${member} Ceza puanın güncellendi!.** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 52 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 53 | } 54 | } 55 | module.exports = ChatMute; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/ses-bilgi.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database//ceza") 6 | const Roles = require("../../../../Global/Database/Roles") 7 | const Channel = require("../../../../Global/Database/Channel") 8 | class Nerde extends Command { 9 | constructor(client) { 10 | super(client, { 11 | name: "Nerde", 12 | description: "ID'si girilen ceza bilgilerini gösterir.", 13 | usage: ".Nerde (@weatrix/ID)", 14 | category: "Moderasyon", 15 | aliases: ["nerde","n","ses","sesbilgi"], 16 | enabled: true, 17 | }); 18 | } 19 | async onRequest (client, message, args,embed) { 20 | let roles = await Roles.findOne({guildID: message.guild.id}) 21 | let channels = await Channel.findOne({guildID: message.guild.id}) 22 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 23 | || 24 | [roles.botcommands].some(x=> message.member.roles.cache.has(x))){ 25 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 26 | if (!member.voice.channel) 27 | return message.reply({ embeds: [ new EmbedBuilder() 28 | .setAuthor({ name: message.author.tag,iconURL: message.author.displayAvatarURL({ dynamic: true})}) 29 | .setDescription(`${member} bir ses kanalına bağlı değil.`,)]}); 30 | let mic = member.voice.selfMute == true ? "Kapalı ❌" : "Açık ✅" 31 | let hop = member.voice.selfDeaf == true ? "Kapalı ❌" : "Açık ✅" 32 | const embed = new EmbedBuilder() 33 | .setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL({ dynamic: true }), }) 34 | .setColor("Random").setDescription(` 35 | ${member} Kullanıcısı ${member.voice.channel} ses kanalında 36 | Mikrafonu; \`${mic}\` 37 | Kulaklığı; \`${hop}\``); 38 | message.reply({ embeds: [embed] }); 39 | 40 | }}} 41 | module.exports = Nerde; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/sicil.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const penalty =require("../../../../Global/Database/ceza") 5 | const Roles = require("../../../../Global/Database/Roles") 6 | const Channel = require("../../../../Global/Database/Channel") 7 | class sicil extends Command { 8 | constructor(client) { 9 | super(client, { 10 | name: "Sicil", 11 | description: "ID'si girilen ceza bilgilerini gösterir.", 12 | usage: ".sicil CezaID", 13 | category: "Moderasyon", 14 | aliases: ["sicil","cezagecmis"], 15 | enabled: true, 16 | }); 17 | } 18 | async onRequest (client, message, args,embed) { 19 | let roles = await Roles.findOne({guildID: message.guild.id}) 20 | let channels = await Channel.findOne({guildID: message.guild.id}) 21 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 22 | || 23 | [roles.botcommands].some(x=> message.member.roles.cache.has(x))){ 24 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 25 | if(!member) return cevap(message,"memberYok") 26 | var currentPage = 1 27 | var sayi = 1 28 | var data = await penalty.find({guildID:message.guild.id,userID:member.id}); 29 | if(!data)return message.reply({content:`**${member.user.tag}** adlı kullanıcıya ait veri bulunamadı`}) 30 | var sicil = []; 31 | for (let index = 0; index < data.length; index++) { 32 | sayi++ 33 | const cezalar = data[index]; 34 | sicil.push({UserID: cezalar.userID, cezaID:cezalar.cezaId, Staff:cezalar.penaltys[0].Staff,cezaTarih:cezalar.penaltys[0].SentencingDate, type:cezalar.penaltys[0].type,sebep:cezalar.penaltys[0].Reason}) 35 | } 36 | let pages = sicil.chunk(10) 37 | if (!pages.length || !pages[currentPage - 1].length) return message.reply({content:`**${member.user.tag}** adlı kullanıcıya ait veri bulunamadı`}) 38 | let geri = new ButtonBuilder().setCustomId('geri').setLabel("◀").setStyle(ButtonStyle.Secondary); 39 | let ileri = new ButtonBuilder().setCustomId('ileri').setLabel("▶").setStyle(ButtonStyle.Secondary) 40 | if(sayi < 5){ 41 | geri.setDisabled(true); 42 | ileri.setDisabled(true); 43 | } 44 | let msg = await message.channel.send({ components: [new ActionRowBuilder() 45 | .addComponents( 46 | geri, 47 | new ButtonBuilder() 48 | .setCustomId('cancel') 49 | .setEmoji(`✖`) 50 | .setStyle(ButtonStyle.Secondary), 51 | ileri 52 | 53 | )], embeds: [embed.setDescription(`${member} adlı üyenin toplam **${sayi - 1}** adet ceza geçmişi bulundu!\n\n${pages[currentPage - 1].map(x => `**#${x.cezaID}** \`[${x.type}]\` <@${x.Staff}>: \`${x.sebep}\``).join("\n")}`)] }) 54 | var filter = (button) => button.user.id === message.author.id; 55 | const collector = msg.createMessageComponentCollector({ filter, time: 30000*2 }) 56 | collector.on('collect', async (button, user) => { 57 | await button.deferUpdate(); 58 | if (button.customId === "ileri") { 59 | if (currentPage == pages.length) return; 60 | currentPage++; 61 | if (msg) msg.edit({ embeds: [embed.setDescription(`${member} adlı üyenin toplam **${sayi - 1}** adet ceza geçmişi bulundu!\n\n${pages[currentPage - 1].map(x => `**#${x.cezaID}** \`[${x.type}]\` <@${x.Staff}>: \`${x.sebep}\``).join("\n")}`)] }) 62 | await button.editReply({ content: `**Sayfa: ${currentPage}**`}) 63 | } 64 | if (button.customId === "cancel") { 65 | 66 | if (msg) msg.delete().catch(err => { }); 67 | if (message) return message.delete().catch(err => { }); 68 | await button.editReply({ content: `**Ceza Geçmişi Silindi!**`}) 69 | 70 | } 71 | if (button.customId === "geri") { 72 | 73 | if (currentPage == 1) return; 74 | currentPage--; 75 | if (msg) msg.edit({ embeds: [embed.setDescription(`${member} adlı üyenin toplam **${sayi - 1}** adet ceza geçmişi bulundu!\n\n${pages[currentPage - 1].map(x => `**#${x.cezaID}** \`[${x.type}]\` <@${x.Staff}>: \`${x.sebep}\``).join("\n")}`)] }) 76 | await button.editReply({ content: `**Sayfa: ${currentPage}**`}) 77 | 78 | } 79 | } 80 | ); 81 | collector.on("end", async (collected, reason) => { 82 | if (reason === "time") { 83 | if (msg) msg.delete() 84 | } 85 | }); 86 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 87 | } 88 | } 89 | module.exports = sicil; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/snipe.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle ,VoiceChannel,AttachmentBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const Roles = require("../../../../Global/Database/Roles") 5 | const Channel = require("../../../../Global/Database/Channel") 6 | class Snipe extends Command { 7 | constructor(client) { 8 | super(client, { 9 | name: "Snipe", 10 | description: "buraya yaz bişey lan", 11 | usage: ".snipe", 12 | category: "Moderasyon", 13 | aliases: ["snipe","snip","snp"], 14 | enabled: true, 15 | }); 16 | } 17 | 18 | 19 | async onLoad(client) { 20 | 21 | } 22 | 23 | async onRequest (client, message, args,) { 24 | let roles = await Roles.findOne({guildID: message.guild.id}) 25 | let channels = await Channel.findOne({guildID: message.guild.id}) 26 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 27 | || 28 | [roles.botcommands].some(x=> message.member.roles.cache.has(x))){ 29 | let mesaj = client.snipe.get(message.channel.id); 30 | if (!mesaj) return message.react("🚫") 31 | const embed = new EmbedBuilder() 32 | .setColor("Random") 33 | .setAuthor({name: mesaj.member.displayName,iconURL:mesaj.author.avatarURL({dynamic: true})}) 34 | .setDescription(`${client.emojis.cache.find(x => x.name === "appEmoji_unlem")} Mesaj içeriği: ${mesaj.content.slice(0, 1000).replace(new RegExp(/(http[s]?:\/\/)(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)/gi), "\`Link\`").replace(new RegExp(/(https:\/\/)?(www\.)?(discord\.gg|discord\.me|discordapp\.com\/invite|discord\.com\/invite)\/([a-z0-9-.]+)?/i, "g"), "\`Sunucu Linki\`")}${mesaj.content.length > 1000 ? "... (sığmadı)" : ""}\n${client.emojis.cache.find(x => x.name === "appEmoji_unlem")} Mesajın Silinme Tarih `) 35 | message.reply({embeds: [embed]}).then(msg => { setTimeout(() => { msg.delete(); }, 13000); }) 36 | message.react("✅") 37 | client.snipe.delete(message.channel.id) 38 | } else return 39 | } 40 | } 41 | module.exports = Snipe; 42 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/temizle.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle ,VoiceChannel,AttachmentBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const Roles = require("../../../../Global/Database/Roles") 5 | const Channel = require("../../../../Global/Database/Channel") 6 | class Sil extends Command { 7 | constructor(client) { 8 | super(client, {//naber 9 | name: "temizle", 10 | description: "Bot ile mesaj göndermek için", 11 | usage: ".temizle", 12 | category: "Moderasyon", 13 | aliases: ["sil","temizle"], 14 | enabled: true, 15 | }); 16 | } 17 | 18 | 19 | async onLoad(client) { 20 | 21 | } 22 | 23 | async onRequest (client, message, args,) { 24 | let roles = await Roles.findOne({guildID: message.guild.id}) 25 | let channels = await Channel.findOne({guildID: message.guild.id}) 26 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x))){ 27 | if (!args[0] || (args[0] && isNaN(args[0])) || Number(args[0]) < 1 || Number(args[0]) > 100) return message.react(client.emojis.cache.find(res => res.name === "appEmoji_unlem")).catch(() => { }) 28 | 29 | message.channel.bulkDelete(Number(args[0])).then(msg => message.channel.send(`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} ${message.channel} Kanalından **${msg.size}** adet mesaj temizlendi!`)).catch(() => { }).then(e => setTimeout(() => e.delete().catch(() => { }), 10000)) 30 | } else return 31 | } 32 | } 33 | module.exports = Sil; 34 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/unban.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const bans = require("../../../../Global/Database/ban") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | class unBan extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "unban", 13 | description: "ID'si girilen kullanıcının yasağını kaldırır.", 14 | usage: ".unban ID", 15 | category: "Moderasyon", 16 | aliases: ["unban","bankaldır"], 17 | 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let roles = await Roles.findOne({guildID: message.guild.id}) 23 | let channels = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | [roles.banhammer].some(x=> message.member.roles.cache.has(x))){ 27 | const hataEmbed = new EmbedBuilder() 28 | .setAuthor({name:message.guild.name,iconURL:message.guild.iconURL({dynamic:true})}) 29 | .setColor("Red") 30 | const id = args[0]; 31 | var reason = args.splice(1).join(" ") 32 | if(!reason) reason = "Sebep Girilmedi." 33 | if(!id) return message.reply({embeds:[hataEmbed.setDescription(`**[ __Hata__ ]** \` | \` Yasağını kaldırmak istediğiniz kullanıcının ID'sini girmeniz gerekiyor.`)]}).then(async msg =>{ 34 | setTimeout(async() => { 35 | if(msg && msg.deletable) await msg.delete(); 36 | if(message && message.deletable) await message.delete(); 37 | }, 10000); 38 | }) 39 | if(!message.guild.bans.fetch(id)) return message.reply({embeds:[hataEmbed.setDescription(`**[ __Hata__ ]** \` | \` ID'si girilen kullanıcının yasağı bulunamadı.`)]}).then(async msg =>{ 40 | setTimeout(async() => { 41 | if(msg && msg.deletable) await msg.delete(); 42 | if(message && message.deletable) await message.delete(); 43 | }, 10000); 44 | }) 45 | if(message.guild.bans.fetch(id)) { 46 | const cezaId = await penalty.countDocuments().exec(); 47 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:id, cezaId: cezaId+1}, {$set:{penaltys:{Staff:message.member.id, Punished:id, SentencingDate:Date.now(),Reason:reason, type:"UNBAN"}}},{upsert:true}) 48 | await message.guild.members.unban(id, {reason:`Yasak ${message.member.user.tag} Tarafından Kaldırıldı!`}) 49 | await message.reply({content:`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} Ban Kaldırma İşlemi Başarılı! \n "${id}" ID'li kullanıcının yasağı tarihinde () kaldırıldı!`}) 50 | message.guild.channels.cache.get(channels.banlog) 51 | .send({embeds:[ 52 | embed 53 | .setDescription(`<@${id}> (\`${id}\`), Mevcut yasaklandırması kaldırıldı!`) 54 | .addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı: **<@${id}> [\`${id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:**\n\`\`\` ${reason} \`\`\``})]}) 55 | await bans.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,unban:1},$push:{bans:{Punished:id, SentencingDate:Date.now(), Type:"UNBAN", Reason:reason }}},{upsert:true}) 56 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:id}, {$inc:{cezapuan:-25}},{upsert:true}) 57 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:id}) 58 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(roles.penaltyPointsLog) 59 | .send({content:`**<@${id}> Ceza puanın güncellendi!.** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 60 | } 61 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 62 | } 63 | } 64 | module.exports = unBan; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/unjail.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const vmute = require("../../../../Global/Database/vmute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | class Unjail extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "Unjail", 13 | description: "ID'si girilen kullanıcının metin ve ses kanallarındaki uzaklaştırmasını kaldırır.", 14 | usage: ".unjail @weatrix/ID ", 15 | category: "Moderasyon", 16 | aliases: ["unjail","af","cezakaldır","cezakaldir"], 17 | enabled: true, 18 | }); 19 | } 20 | async onRequest (client, message, args,embed) { 21 | let roles = await Roles.findOne({guildID: message.guild.id}) 22 | let channels = await Channel.findOne({guildID: message.guild.id}) 23 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 24 | || 25 | [roles.jailhammer].some(x=> message.member.roles.cache.has(x))){ 26 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 27 | if(!member) return cevap(message,"memberYok") 28 | if (member.user.bot) return cevap(message,"bot") 29 | if (!member.manageable) return cevap(message,"yetersizYetki") 30 | var reason = args.splice(2).join(" ") 31 | if(!reason) reason = "Sebep Girilmedi." 32 | const data = await penalty.find(); 33 | let cezakontrol = data.filter(x=> x.penaltys.some(x=> x.type == "JAIL" && x.Punished == member.id && x.Finished == false)).length < 0 34 | if(!member.roles.cache.has(roles.jailedRole) && cezakontrol) return message.reply({content:`**${member.user.tag}**, Aktif cezası bulunmadığı için bu işlem yapılamaz`}) 35 | const ceza = await penalty.countDocuments().exec(); 36 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),Reason:reason, type:"UN-JAİL"}}},{upsert:true}) 37 | 38 | await message.reply({content:`Susturma Açma (\`Unjail\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin kanallarında ki susturması açıldı!`}) 39 | if(channels.jaillog !=undefined && message.guild.channels.cache.get(channels.jaillog)) message.guild.channels.cache.get(channels.jaillog) 40 | .send({embeds:[embed.setTitle(`#${ceza+1} Numaralı Yeni Ceza`).setDescription(`${member} (\`${member.id}\`), Sunucunun metin kanallarında bulunan susturması açıldı!`).addFields({name:`#${ceza+1} Numaraları Cezanin Detayları;`,value:`\`[•]\` **Yetkili:** ${message.member} (\`${message.member.user.tag} ▬ ${message.member.id}\`)\n\`[•]\`** Kullanıcı:** ${member} (\`${member.id}\`)\n\`[•]\`** İşlem:** Metin Kanallarında ki Susturma Kaldırıldı (Voice UnMute)\n\`[•]\`** Tarih:** ()\n\`[•]\`** Sebep:** ${reason}`})]}) 41 | await vmute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,unvmute:1},$push:{vmutes:{Punished:member.id, SentencingDate:Date.now(), Type:"UN-JAİL", Reason:reason,Finished:false}}},{upsert:true}) 42 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:-10}},{upsert:true}) 43 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 44 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 45 | .send({content:`**${member} Ceza puanın güncellendi!** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 46 | await cezaç(message.guild,member,message.member) 47 | 48 | } else return cevap(message,"komutKullanamazsın") 49 | } 50 | } 51 | async function cezaç(guild,member,staff){ 52 | let channels = await Channel.findOne({guildID: Guild.ID}) 53 | let roles = await Roles.findOne({guildID: Guild.ID}) 54 | await penalty.find({guildID:guild.id,userID:member.id}, async (err,data) => { 55 | data.filter(x=> x.penaltys.some(x=>x.type == "UN-JAIL" && x.Finished == false)).forEach(async veri => { 56 | veri.penaltys.forEach(async ceza => { 57 | await member.roles.set(ceza.roles) 58 | await penalty.findOneAndUpdate({guildID:guild.id,cezaId:veri.cezaId},{$set:{penaltys:{Staff:ceza.Staff, Punished:ceza.Punished,SentencingDate:ceza.SentencingDate,PenaltyEndTime:ceza.PenaltyEndTime,Finished:true,type:ceza.type,Reason:ceza.Reason}}},{upsert:true}) 59 | }) 60 | 61 | }) 62 | if(channels.jaillog !=undefined && guild.channels.cache.get(channels.jaillog)) guild.channels.cache.get(channels.jaillog) 63 | .send({content:`${member}Metin ve Ses kanallarındaki uzaklaştırması ${staff} tarafından kaldırıldı.`}) 64 | }) 65 | } 66 | module.exports = Unjail; 67 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/unmute.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const mute = require("../../../../Global/Database/mute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | const ms = require("ms"); 10 | class ChatUnMute extends Command { 11 | constructor(client) { 12 | super(client, { 13 | name: "C-unmute", 14 | description: "ID'si girilen kullanıcının metin kanallarındaki susturmasını açar.", 15 | usage: ".cmute @weatrix/ID ", 16 | category: "Moderasyon", 17 | aliases: ["susturmaac","unmute","cunmute"], 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let roles = await Roles.findOne({guildID: message.guild.id}) 23 | let channels = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | [roles.mutehammer].some(x=> message.member.roles.cache.has(x))){ 27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 28 | if(!member) return cevap(message,"memberYok") 29 | if (member.user.bot) return cevap(message,"bot") 30 | if (!member.manageable) return cevap(message,"yetersizYetki") 31 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 32 | var reason = args.splice(2).join(" ") 33 | if(!reason) reason = "Sebep Girilmedi." 34 | const data = await penalty.find(); 35 | let cezakontrol = await data.filter(x=> x.penaltys.some(x=> x.type == "CHAT-MUTE" && x.Punished == member.id && x.Finished == false)).length < 0 36 | if(!member.roles.cache.has(roles.muterol) || cezakontrol) return message.reply({content:`**${member.user.tag}**, Aktif cezası bulunmadığı için bu işlem yapılamaz`}) 37 | const ceza = await penalty.countDocuments().exec(); 38 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),Reason:reason, type:"CHAT-UNMUTE"}}},{upsert:true}) 39 | 40 | await message.reply({content:`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} Susturma Açma (\`Chat UnMute\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin kanallarında ki susturması açıldı!`}) 41 | message.guild.channels.cache.get(channels.mutelog) 42 | .send({embeds:[embed.setDescription(`${member} [\`${member.id}\`], Sunucunun metin kanallarında bulunan susturması açıldı!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:**\n\`\`\` ${reason} \`\`\``})]}) 43 | await mute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,unmute:1},$push:{mutes:{Punished:member.id, SentencingDate:Date.now(), Type:"C-UNMUTE", Reason:reason,Finished:false}}},{upsert:true}) 44 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:-10}},{upsert:true}) 45 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 46 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 47 | .send({content:`**${member} Ceza puanın güncellendi!** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 48 | await cezaç(message.guild,member,message.member) 49 | 50 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 51 | } 52 | } 53 | async function cezaç(guild,member,staff){ 54 | let roles = await Roles.findOne({guildID: Guild.ID}) 55 | let channels = await Channel.findOne({guildID:Guild.ID}) 56 | await penalty.find({guildID:guild.id}, async (err,data) => { 57 | data.filter(x=> x.penaltys.some(x=>x.type == "CHAT-MUTE" && x.Finished == false)).forEach(async veri => { 58 | veri.penaltys.forEach(async ceza => { 59 | if(member.roles.cache.has(roles.muterol)) member.roles.remove(roles.muterol) 60 | await penalty.findOneAndUpdate({guildID:guild.id,cezaId:veri.cezaId},{$set:{penaltys:{Staff:ceza.Staff, Punished:ceza.Punished,SentencingDate:ceza.SentencingDate,PenaltyEndTime:ceza.PenaltyEndTime,Finished:true,type:ceza.type}}},{upsert:true}) 61 | }) 62 | 63 | }) 64 | if(channels.mutelog !=undefined && message.guild.channels.cache.get(channels.mutelog)) message.guild.channels.cache.get(channels.mutelog) 65 | .send({content:`${member} Ses kanallarındaki susturması ${staff} tarafından kaldırıldı.`}) 66 | 67 | }) 68 | } 69 | module.exports = ChatUnMute; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/unvmute.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const vmute = require("../../../../Global/Database/vmute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | class VoiceUnMute extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "V-unmute", 13 | description: "ID'si girilen kullanıcının metin kanallarındaki susturmasını açar.", 14 | usage: ".vunmute @weatrix/ID ", 15 | category: "Moderasyon", 16 | aliases: ["unvmute","vunmute"], 17 | enabled: true, 18 | }); 19 | } 20 | async onRequest (client, message, args,embed) { 21 | let roles = await Roles.findOne({guildID: message.guild.id}) 22 | let channels = await Channel.findOne({guildID: message.guild.id}) 23 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 24 | || 25 | [roles.vmutehammer].some(x=> message.member.roles.cache.has(x))){ 26 | const hataEmbed = new EmbedBuilder() 27 | .setAuthor({name:message.guild.name,iconURL:message.guild.iconURL({dynamic:true})}) 28 | .setColor("Red") 29 | .setFooter({text: "Developed By weatrix | Hata olduğunu düşünüyorsan geliştirici ile iletişime geç!", iconURL: message.guild.members.cache.get(client.owners[0]).user.avatarURL({dynamic:true})}); 30 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 31 | if(!member) return cevap(message,"memberYok") 32 | if (member.user.bot) return cevap(message,"bot") 33 | if (!member.manageable) return cevap(message,"yetersizYetki") 34 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 35 | var reason = args.splice(2).join(" ") 36 | if(!reason) reason = "Sebep Girilmedi." 37 | const data = await penalty.find(); 38 | let cezakontrol = await data.filter(x=> x.penaltys.some(x=> x.type == "CHAT-MUTE" && x.Punished == member.id && x.Finished == false)).length < 0 39 | if(!member.roles.cache.has(roles.vmuterol) || cezakontrol) return message.reply({embeds:[hataEmbed.setDescription(`**[ __Hata__ ]** \` | \` **${member.user.tag}**, Aktif cezası bulunmadığı için bu işlem yapılamaz`)]}).then(async msg =>{ 40 | setTimeout(async() => { 41 | if(msg && msg.deletable) await msg.delete(); 42 | if(message && message.deletable) await message.delete(); 43 | }, 10000); 44 | }) 45 | if(member.voice.mute == false) return message.reply({content:`**${member.user.tag}** Ses kanallarında susturması bulunamadı.`}) 46 | const ceza = await penalty.countDocuments().exec(); 47 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),Reason:reason, type:"CHAT-UNMUTE"}}},{upsert:true}) 48 | 49 | await message.reply({content:`Susturma Açma (\`Chat UnMute\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin kanallarında ki susturması açıldı!`}) 50 | message.guild.channels.cache.get(channels.vmutelog) 51 | .send({embeds:[embed.setDescription(`${member} (\`${member.id}\`), Sunucunun metin kanallarında bulunan susturması açıldı!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \`** Sebep:**\n\`\`\` ${reason} \`\`\``})]}) 52 | await vmute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,unvmute:1},$push:{vmutes:{Punished:member.id, SentencingDate:Date.now(), Type:"C-UNMUTE", Reason:reason,Finished:false}}},{upsert:true}) 53 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:-10}},{upsert:true}) 54 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 55 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 56 | .send({content:`**${member} Ceza puanın güncellendi!** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 57 | await cezaç(message.guild,member,message.member) 58 | 59 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 60 | } 61 | } 62 | async function cezaç(guild,member,staff){ 63 | let roles = await Roles.findOne({guildID: Guild.ID}) 64 | let channels = await Channel.findOne({guildID: Guild.ID}) 65 | await penalty.find({guildID:guild.id,userID:member.id}, async (err,data) => { 66 | data.filter(x=> x.penaltys.some(x=>x.type == "VOICE-MUTE" && x.Finished == false)).forEach(async veri => { 67 | veri.penaltys.forEach(async ceza => { 68 | if((roles && roles.vmuterol) && member.roles.cache.has(roles.vmuterol)) member.roles.remove(roles.vmuterol) 69 | if(member && member.voice.mute == true) await member.voice.setMute(false); 70 | await penalty.findOneAndUpdate({guildID:guild.id,cezaId:veri.cezaId},{$set:{penaltys:{Staff:ceza.Staff, Punished:ceza.Punished,SentencingDate:ceza.SentencingDate,PenaltyEndTime:ceza.PenaltyEndTime,Finished:true,type:ceza.type}}},{upsert:true}) 71 | }) 72 | 73 | }) 74 | if(channels.vmutelog !=undefined && guild.channels.cache.get(channels.vmutelog)) guild.channels.cache.get(channels.vmutelog) 75 | .send({content:`${member} Ses kanallarındaki susturması ${staff} tarafından kaldırıldı.`}) 76 | }) 77 | } 78 | module.exports = VoiceUnMute; -------------------------------------------------------------------------------- /Bots/Main/_commands/Moderasyon/vmute.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | const cezapuan = require("../../../../Global/Database/cezapuan") 5 | const penalty =require("../../../../Global/Database/ceza") 6 | const vmute = require("../../../../Global/Database/vmute") 7 | const Roles = require("../../../../Global/Database/Roles") 8 | const Channel = require("../../../../Global/Database/Channel") 9 | const ms = require("ms"); 10 | class VoiceMute extends Command { 11 | constructor(client) { 12 | super(client, { 13 | name: "V-mute", 14 | description: "ID'si girilen kullanıcıyı süreli bir şekilde sunucunun ses kanallarında susturur", 15 | usage: ".vmute @weatrix/ID ", 16 | category: "Moderasyon", 17 | aliases: ["vmute","smute"], 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let roles = await Roles.findOne({guildID: message.guild.id}) 23 | let channels = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | [roles.vmutehammer].some(x=> message.member.roles.cache.has(x))){ 27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 28 | if(!member) return cevap(message,"memberYok") 29 | if (member.user.bot) return cevap(message,"bot") 30 | if (!member.manageable) return cevap(message,"yetersizYetki") 31 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 32 | var sure = args[1] 33 | if(!sure || !ms(sure)) return cevap(message,"sureYok") 34 | sure = ms(sure) 35 | let mutesure = args[1].replace(`s`, " Saniye").replace(`m`, " Dakika").replace(`h`, " Saat").replace(`d`, " Gün").replace(`w`, " Hafta") 36 | var reason = args.splice(2).join(" ") 37 | if(!reason) reason = "Sebep Girilmedi." 38 | const data = await penalty.find(); 39 | let cezakontrol = data.filter(x=> x.penaltys.some(x=> x.type == "VOICE-MUTE" && x.Punished == member.id && x.Finished == false)).length > 0 40 | if(((roles && roles.vmuterol) && member.roles.cache.has(roles.vmuterol)) || cezakontrol) return message.reply({content:`**${member.user.tag}**, Aktif cezası bulunduğu için susturma işlemi yapılamaz.`}) 41 | const ceza = await penalty.countDocuments().exec(); 42 | await penalty.findOneAndUpdate({guildID: message.guild.id,userID:member.id, cezaId: ceza+1}, {$set:{penaltys:{Staff:message.member.id, Punished:member.id, SentencingDate:Date.now(),PenaltyEndTime: Date.now()+sure,Reason:reason,Finished:false, type:"VOICE-MUTE"}}},{upsert:true}) 43 | if(roles && roles.vmuterol) await member.roles.add(roles.vmuterol) 44 | if(member.voice) await member.voice.setMute(true); 45 | await message.reply({content:`${client.emojis.cache.find(x => x.name === "appEmoji_tik")} Susturma (\`Voice Mute\`) İşlemi Başarılı! \n "${member.id}" ID'li kullanıcı tarihinde () metin kanallarından susturuldu!`}) 46 | message.guild.channels.cache.get(channels.vmutelog) 47 | .send({embeds:[embed.setDescription(`${member} (\`${member.id}\`), Sunucunun metin kanallarından susturuldu!`).addFields({name:`** **`,value:`\` ❯ \` **Yetkili:** ${message.member} [\`${message.member.user.tag} - ${message.member.id}\`]\n\` ❯ \`** Kullanıcı:** ${member} [\`${member.id}\`]\n\` ❯ \`** Tarih:** []\n\` ❯ \` **Süre:** ${mutesure}\n\` ❯ \`** Sebep:**\n\`\`\` ${reason} \`\`\``})]}) 48 | await vmute.findOneAndUpdate({guildID:message.guild.id, userID:message.member.id},{$inc:{limit:1,vmute:1},$push:{vmutes:{Punished:member.id, SentencingDate:Date.now(), Type:"C-MUTE", Reason:reason,Finished:false}}},{upsert:true}) 49 | await cezapuan.findOneAndUpdate({guildID:message.guild.id,userID:member.id}, {$inc:{cezapuan:10}},{upsert:true}) 50 | let cezapuandata = await cezapuan.findOne({guildID:message.guild.id,userID:member.id}) 51 | if(channels.penaltyPointsLog !=undefined && message.guild.channels.cache.get(channels.penaltyPointsLog)) message.guild.channels.cache.get(channels.penaltyPointsLog) 52 | .send({content:`**${member} Ceza puanın güncellendi!.** mevcut ceza puanın **${cezapuandata ? cezapuandata.cezapuan : 0}**`}) 53 | } else {return message.reply({content:"Bu komutu kullanmak için gerekli yetkilere veya rollere sahip değilsin."})} 54 | } 55 | } 56 | module.exports = VoiceMute; -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/isim.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const User = require("../../../../Global/Database/Profile") 4 | class İsim extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "isim", 8 | description: "Kullanıcının ismini değiştirmek için kullanılır", 9 | usage: ".isim @Clydev/ID", 10 | category: "Register", 11 | aliases: ["i","name"], 12 | enabled: true, 13 | }); 14 | } 15 | async onRequest (client, message, args,embed) { 16 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 17 | || 18 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 19 | 20 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 21 | args = args.filter(a => a !== "" && a !== " ").splice(1); 22 | let isim = args.filter(arg => isNaN(arg)).map(arg => arg.charAt(0).replace('i', "İ").toUpperCase() + arg.slice(1)).join(" "); 23 | let yas = args.filter(arg => !isNaN(arg))[0] || undefined 24 | 25 | if (!member) return cevap(message,"memberYok") 26 | if (!member.manageable) return cevap(message,"yetersizYetki") 27 | if (!isim) return cevap(message,"isimYok") 28 | let setName = `• ${isim} ${yas == undefined ? "":`| ${yas}`}`; 29 | if (setName.length > 32) return cevap(message,"isimSınır") 30 | if (member.manageable) await member.setNickname(`${setName}`, {reason:`İsim Değiştirme, Yetkili: ${message.author.id}`}) 31 | const log = message.guild.channels.cache.find(x=> x.name == "isim_log") 32 | if(log) await log.send({embeds:[embed.setDescription(`${member} adı ${message.member} tarafından __${new Date(Date.now()).toTurkishFormatDate()}__ tarihinde \`${setName}\` olarak değiştirildi.`)]}) 33 | await User.findOneAndUpdate({ userID: member.id }, { $push: { Names: { userID: message.author.id, Name: `${setName}`, islem: "İsim Değiştirme" } } }, { upsert: true }); 34 | await message.reply({ embeds: [embed.setDescription(`${member} Adlı kullanıcının ismi \`${setName}\` olarak ayarlandı.`)] }); 35 | } else return cevap(message,"komutKullanamazsın") 36 | } 37 | } 38 | module.exports = İsim; -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/isimler.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const User = require("../../../../Global/Database/Profile") 4 | class İsimler extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "isimler", 8 | description: "Kişinin geçmiş isimlerini gösterir.", 9 | usage: ".isimler @Clydev/ID", 10 | category: "Register", 11 | aliases: ["İsimler","names"], 12 | enabled: true, 13 | }); 14 | } 15 | async onRequest (client, message, args,embed) { 16 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 17 | || 18 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 19 | 20 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member 21 | const data = await User.findOne({ userID: member.id }) || [] 22 | if (!data) return message.channel.send({ embeds: [embed.setDescription(`Kullanıcıya ait herhangi bir isim verisi bulunamadı!`)] }); 23 | if (!data.Names) return message.channel.send({ embeds: [embed.setDescription(`Kullanıcıya ait herhangi bir isim verisi bulunamadı!`)] }); 24 | let isimler = data.Names 25 | const History = isimler.map((e, i) => ` \`${i + 1}.\` \`${e.Name}\` ${e.rol ? `(<@&${e.rol}>)` : ""} (${e.islem}) (<@!${e.userID}>)`).slice(0, 30) 26 | message.reply({ embeds: [embed.setDescription(`${member} adlı üyenin geçmiş isimleri sırasıyla aşağıda listelenmiştir. 27 | 28 | ${History.join("\n")} 29 | 30 | ${client.emojis.cache.find(x => x.name === "appEmoji_tik") || "Emoji Bulunamadı"} üyenin \`${History.length}\` adet geçmiş ismi görüntülendi.`)]}), message.react(`${client.emojis.cache.find(x => x.name === "appEmoji_tik")}`) 31 | 32 | } else return cevap(message,"komutKullanamazsın") 33 | } 34 | } 35 | module.exports = İsimler; -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/kayıt.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle, ActionRow ,StringSelectMenuBuilder } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const { post } = require("node-superfetch"); 4 | const tagsistem = require("../../../../Global/Database/tagsistem") 5 | const Users = require("../../../../Global/Database/Profile") 6 | const Roles = require("../../../../Global/Database/Roles") 7 | const Channel = require("../../../../Global/Database/Channel") 8 | 9 | class Kayıt extends Command { 10 | constructor(client) { 11 | super(client, { 12 | name: "kayıt", 13 | description: "Sunucuya üyeleri kayıt etmek için kullanılır.", 14 | usage: ".kayıt @Clydev/ID (isim) (yaş)", 15 | category: "Register", 16 | aliases: ["e","k","erkek","kız","kayıt","kayit"], 17 | 18 | enabled: true, 19 | }); 20 | } 21 | async onRequest (client, message, args,embed) { 22 | let guildroleconf = await Roles.findOne({guildID: message.guild.id}) 23 | let guildchannelconf = await Channel.findOne({guildID: message.guild.id}) 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 25 | || 26 | 27 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 28 | const data = await tagsistem.findOne({guildID:message.guild.id}); 29 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 30 | args = args.filter(a => a !== "" && a !== " ").splice(1); 31 | let isim = args.filter(arg => isNaN(arg)).map(arg => arg.charAt(0).replace('i', "İ").toUpperCase() + arg.slice(1)).join(" "); 32 | let yaş = args.filter(arg => !isNaN(arg))[0] || undefined 33 | let kayıtRolleri = [...guildroleconf.womanRoles,...guildroleconf.manRoles] 34 | if (!member) return cevap(message,"memberYok") 35 | if (member.roles.cache.has(guildroleconf.suspectRole)) return cevap(message,"supheli") 36 | if (kayıtRolleri.some(role => member.roles.cache.has(role))) return cevap(message,"kayitli") 37 | if (member.user.bot) return cevap(message,"bot") 38 | if (!member.manageable) return cevap(message,"yetersizYetki") 39 | if (!isim) return cevap(message,"isimYok") 40 | if(message.member.permissions.has(PermissionsBitField.Flags.Administrator) && !yaş) return cevap(message,"yasYok") 41 | if (member.roles.highest.position >= message.member.roles.highest.position && !client.owners.includes(message.author.id)) return cevap(message,"üstaynıYetki") 42 | var setName = `• ${isim} ${yaş == undefined ? "":`| ${yaş}`}`; 43 | if (setName.length > 32) return message.reply({content:cevaplar.isimApiSınır}) 44 | const row = new ActionRowBuilder() 45 | .addComponents( 46 | new ButtonBuilder() 47 | .setCustomId('Erkek') 48 | .setLabel("Erkek") 49 | .setStyle(ButtonStyle.Primary), 50 | new ButtonBuilder() 51 | .setCustomId('Kadın') 52 | .setLabel("Kadın") 53 | .setStyle(ButtonStyle.Danger), 54 | new ButtonBuilder() 55 | .setCustomId('CANCEL') 56 | .setLabel("İptal") 57 | .setStyle(ButtonStyle.Secondary), 58 | ); 59 | const log = member.guild.channels.cache.get(guildchannelconf.kayıtlog); 60 | const chat = message.guild.channels.cache.get(guildchannelconf.chatChannel); 61 | const msg = await message.channel.send({ components: [row], embeds: [embed.setDescription(`${member}, Üyesinin ismi **${isim} | ${yaş}** olarak değiştirilicek.\n`)], components: [row]}); 62 | var filter =async (button) =>{ 63 | await button.deferUpdate() 64 | return button.user.id === message.author.id}; 65 | const collector = msg.createMessageComponentCollector({ filter, time: 30000 }); 66 | collector.on('collect', async (button, user) => { 67 | let tamamlandi = await new ButtonBuilder().setCustomId("tamamlandı.").setDisabled(true).setLabel("Kayıt Tamamlandı").setStyle(ButtonStyle.Secondary) 68 | if(member.user.username.includes(data.Tag) || data.nameTags.some(x=> member.user.username.includes(x)) || member.user.discriminator.includes(data.NumberTag)) await member.roles.add(guildroleconf.taglırolu) 69 | if (button.customId == "CANCEL") { 70 | if (msg) msg.delete().catch(err => { }); 71 | if(message) await message.delete(); 72 | } 73 | if(button.customId == "Erkek"){ 74 | 75 | await msg.edit({ embeds:[embed.setDescription(`${member}, Üyesinin ismi **${isim} | ${yaş}** olarak değiştirildi.\n\n**ERKEK** olarak kayıt edildi.`)], components: [new ActionRowBuilder({components:[tamamlandi]})] }) 76 | if(log) await log.send({content:`**${member.user.tag}**, **${message.member.user.tag}** tarafından tarihinde () \`Erkek\` olarak kayıt edildi.`}) 77 | await member.setNickname(setName) 78 | await member.roles.remove(guildroleconf.unregisterRoles) 79 | await Users.findOneAndUpdate({ userID: message.member.id }, { $inc: { TeyitNo: 1 } }, { upsert: true }).exec(); 80 | await Users.findOneAndUpdate({ userID: message.member.id }, { $push: { Teyitler: { userID: member.id, rol: guildroleconf.manRoles[0], date: Date.now(), Gender: "Erkek" } } }, { upsert: true }); 81 | await Users.findOneAndUpdate({ userID: member.id }, { $push: { Names: { userID: message.member.id, Name: `${isim} | ${yaş}`, rol: guildroleconf.manRoles[0], islem: "Kayıt" } } }, { upsert: true }); 82 | await Users.findOneAndUpdate({ userID: member.id }, { $set: { Teyitci: { userID: message.member.id, Cinsiyet: guildroleconf.manRoles[0], date: Date.now() } } }, { upsert: true }); 83 | setTimeout(async() => {await member.roles.add(guildroleconf.manRoles);}, 1000); 84 | if(chat) await chat.send({content:`${member}, sunucumuza **Erkek** olarak katıldı! onu sevgiyle kucaklıyalım!`}).then(x=>setTimeout(() => {if(x) x.delete()},10000 )) 85 | } 86 | if(button.customId == "Kadın"){ 87 | 88 | await msg.edit({ embeds:[embed.setDescription(`${member}, Üyesinin ismi **${isim} | ${yaş}** olarak değiştirildi.\n\n**KADIN** olarak kayıt edildi.`)], components: [new ActionRowBuilder({components:[tamamlandi]})] }) 89 | if(log) await log.send({content:`**${member.user.tag}**, **${message.member.user.tag}** tarafından tarihinde () \`Kadın\` olarak kayıt edildi.`}) 90 | await member.setNickname(setName) 91 | await member.roles.remove(guildroleconf.unregisterRoles) 92 | await Users.findOneAndUpdate({ userID: message.member.id }, { $inc: { TeyitNo: 1 } }, { upsert: true }).exec(); 93 | await Users.findOneAndUpdate({ userID: message.member.id }, { $push: { Teyitler: { userID: member.id, rol:guildroleconf.womanRoles[0], date: Date.now(), Gender: "Kadın" } } }, { upsert: true }); 94 | await Users.findOneAndUpdate({ userID: member.id }, { $push: { Names: { userID: message.member.id, Name: `${isim} | ${yaş}`, rol: guildroleconf.womanRoles[0], islem: "Kayıt" } } }, { upsert: true }); 95 | await Users.findOneAndUpdate({ userID: member.id }, { $set: { Teyitci: { userID: message.member.id, Cinsiyet: guildroleconf.womanRoles[0], date: Date.now() } } }, { upsert: true }); 96 | setTimeout(async() => {await member.roles.add(guildroleconf.womanRoles);}, 1000); 97 | if(chat) await chat.send({content:`${member}, sunucumuza **Kız** olarak katıldı! onu sevgiyle kucaklıyalım!`}).then(x=>setTimeout(() => {if(x) x.delete()},10000 )) 98 | } 99 | 100 | }) 101 | 102 | } else return cevap(message,"komutKullanamazsın") 103 | } 104 | } 105 | 106 | module.exports = Kayıt 107 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/kayıtbilgi.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const User = require("../../../../Global/Database/Profile") 4 | class Kayıtbilgi extends Command { 5 | constructor(client) { 6 | super(client, { 7 | name: "kayıtbilgi", 8 | description: "Kişinin kayıt geçmişini gösterir.", 9 | usage: ".kayıtbilgi (@Clydev/ID)", 10 | category: "Register", 11 | aliases: ["reginfo","kayıtbilgi","kayıt-bilgi"], 12 | enabled: true, 13 | }); 14 | } 15 | 16 | 17 | onLoad(client) { 18 | 19 | } 20 | 21 | async onRequest (client, message, args,embed) { 22 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 23 | || 24 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 25 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) || message.member 26 | const data = await User.findOne({ userID: member.id }) || []; 27 | const Weatrix = new EmbedBuilder() 28 | .setDescription(`${member} toplam **${data.TeyitNo ? data.TeyitNo : 0}** kayıt yapmış!`) 29 | .addFields( 30 | {name:"__Erkek__",value:`\`\`\`js\n${data.Teyitler ? data.Teyitler.filter(v => v.Gender === "Erkek").length : 0}\`\`\``,inline:true}, 31 | {name:"__Kadın__",value:`\`\`\`js\n${data.Teyitler ? data.Teyitler.filter(v => v.Gender === "Kadın").length : 0}\`\`\``,inline:true}, 32 | 33 | ) 34 | return message.channel.send({ embeds: [Weatrix] }) 35 | } else return cevap(message,"komutKullanamazsın") 36 | } 37 | } 38 | module.exports = Kayıtbilgi; -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/kayıtsıralama.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const { post } = require("node-superfetch"); 4 | const {Guild} = require("../../../../Global/Config/Guild") 5 | const User = require("../../../../Global/Database/Profile") 6 | class kayıtSıralama extends Command { 7 | constructor(client) { 8 | super(client, { 9 | name: "kayıtsıralama", 10 | description: "Kayıt sıralamasını gösterir", 11 | usage: ".kayıtsıralama", 12 | category: "Register", 13 | aliases: ["regleaderboard","topteyit","kayıtsıralama"], 14 | 15 | enabled: true, 16 | }); 17 | } 18 | 19 | 20 | onLoad(client) { 21 | 22 | } 23 | 24 | async onRequest (client, message, args,embed) { 25 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers,].some(x=> message.member.permissions.has(x)) 26 | || 27 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 28 | 29 | const data = await User.find() || []; 30 | let teyitList = data.filter((x) => message.guild.members.cache.has(x.userID) && x.TeyitNo > 0).map((value, index) => `\`${index+1}.\` ${message.guild.members.cache.get(value.userID)} \`${value.Teyitler.filter(v => v.Gender === "Erkek").length + value.Teyitler.filter(v => v.Gender === "Kadın").length} Kayıt\``).slice(0, 20) 31 | await message.channel.send({ embeds: [embed.addFields({name:"**Kayıtlar Sıralama**", value:`${teyitList.join("\n") || "Kayıt verisi bulunamadı!"}`,inline: true})] }); 32 | } else return cevap(message,"komutKullanamazsın") 33 | 34 | } 35 | } 36 | module.exports = kayıtSıralama; 37 | 38 | -------------------------------------------------------------------------------- /Bots/Main/_commands/Register/kayıtsız.js: -------------------------------------------------------------------------------- 1 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 2 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 3 | const Users = require("../../../../Global/Database/Profile") 4 | const Channel = require("../../../../Global/Database/Channel") 5 | 6 | class Kayıtsız extends Command { 7 | constructor(client) { 8 | super(client, { 9 | name: "kayıtsız", 10 | description: "Kayıtlı üyeleri kayıtsıza atmak için kullanılır.", 11 | usage: ".kayıtsız @Clydev/ID", 12 | category: "Register", 13 | aliases: ["unreg","unregister","kayitsiz"], 14 | 15 | enabled: true, }); 16 | } 17 | 18 | 19 | onLoad(client) { 20 | 21 | } 22 | 23 | async onRequest (client, message, args,embed) { 24 | if( [PermissionsBitField.Flags.Administrator,PermissionsBitField.Flags.ManageRoles,PermissionsBitField.Flags.BanMembers,PermissionsBitField.Flags.KickMembers].some(x=> message.member.permissions.has(x)) 25 | || 26 | [guildroleconf.kurucuPerms,guildroleconf.registerStaffRole].some(x=> message.member.roles.cache.has(x))){ 27 | const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 28 | if (!member) return cevap(message,"memberYok"); 29 | if (roles.unregisterRoles.some(x=> member.roles.cache.has(x))) return cevap(message,"kayitsiz") 30 | if (member.user.bot) return cevap(message,"bot") 31 | if (!member.manageable) return cevap(message,"yetersizYetki") 32 | if (member.roles.highest.position >= message.member.roles.highest.position && !ayarlar.Owners.includes(message.author.id)) return cevap(message,"üstAynıYetki") 33 | var setName = `• İsim | Yaş`; 34 | await member.setNickname(setName, `${message.member.user.tag} tarafından kayıtsıza atıldı.`); 35 | let roller = member.roles.cache.filter(x=> x.id != roles.boosterRole && x.id != message.guild.id).map(x=> x.id) 36 | await member.roles.remove(roller) 37 | setTimeout(async() => { 38 | await member.roles.add(roles.unregisterRoles) 39 | }, 1000); 40 | message.reply({embeds:[embed.setDescription(`${member} üzerinde bulunan roller başarıyla alınıp **Kayıtsız**'a atıldı!`)]}).then(async msg =>{ 41 | setTimeout(async() => { 42 | if(msg && msg.deletable) await msg.delete(); 43 | if(message && message.deletable) await message.delete(); 44 | }, 10000); 45 | }) 46 | let guildchannelconf = await Channel.findOne({guildID: message.guild.id}) 47 | await Users.updateOne({ userID: member.id }, { $unset: { Teyitci: {} } }); 48 | await Users.findOneAndUpDate({ userID: member.id }, { $push: { Names: { userID: message.author.id, Name: setName, islem: "Kayıtsıza Atma", rol: roles.unregisterRoles[0]} } }, { upsert: true }); 49 | const log = member.guild.channels.cache.get(guildchannelconf.kayıtsızlog); 50 | if(log) await log.send({content:`**${member.user.tag}**, **${message.member.user.tag}** tarafından () Kayıtsıza atıldı!`}) 51 | } else return cevap(message,"komutKullanamazsın") 52 | 53 | } 54 | } 55 | module.exports = Kayıtsız; -------------------------------------------------------------------------------- /Bots/Main/_events/Client/Control.js: -------------------------------------------------------------------------------- 1 | const { Event } = require("../../../../Global/Structures/Default.Events"); 2 | const {Guild} = require("../../../../Global/Config/Guild") 3 | const inviteSchema = require("../../../../Global/Database/invite") 4 | 5 | class ready extends Event { 6 | constructor(client) { 7 | super(client, { 8 | name: "ready", 9 | enabled: true, 10 | }); 11 | } 12 | 13 | async onLoad() { 14 | 15 | const guild = client.guilds.cache.get(Guild.ID) 16 | guild.members.cache.forEach(member => { 17 | 18 | if(member.user.bot) return; 19 | 20 | inviteSchema.findOne({ guildID: guild.id, userID: member.id }, async (err, data) => { 21 | if(err) throw err; 22 | if(data) return; 23 | 24 | await new inviteSchema({ 25 | guildID: guild.id, 26 | userID: member.id, 27 | 28 | total: 0, 29 | regular: 0, 30 | leave: 0, 31 | fake: 0, 32 | bonus: 0, 33 | 34 | dailyInvites: 0, 35 | weeklyInvites: 0, 36 | 37 | inviteSchema: null 38 | 39 | }).save().catch(err => { return; }) 40 | }) 41 | 42 | 43 | }) 44 | 45 | guild.invites.fetch() 46 | .then(invites => { 47 | 48 | const codeUses = new Map(); 49 | invites.each(inv => codeUses.set(inv.code, inv.uses)); 50 | guildInvites.set(guild.id, codeUses); 51 | 52 | }) 53 | } 54 | } 55 | 56 | 57 | module.exports = ready; -------------------------------------------------------------------------------- /Bots/Main/_events/Client/Update.js: -------------------------------------------------------------------------------- 1 | const { Event } = require("../../../../Global/Structures/Default.Events"); 2 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 3 | const Roles = require("../../../../Global/Database/Roles") 4 | const Channel = require("../../../../Global/Database/Channel") 5 | const guildTagSystem = require("../../../../Global/Database/tagsistem") 6 | const {Guild} = require("../../../../Global/Config/Guild") 7 | class userUpdate extends Event { 8 | constructor(client) { 9 | super(client, { 10 | name: "userUpdate", 11 | enabled: true, 12 | }); 13 | } 14 | 15 | async onLoad(oldUser,newUser) { 16 | const guild = await client.guilds.cache.get(Guild.ID) 17 | const tagsistem = await guildTagSystem.findOne({guildID:guild.id}) 18 | let guildroleconf = await Roles.findOne({guildID: guild.id}) 19 | let guildchannelconf = await Channel.findOne({guildID: guild.id}) 20 | const tagLog = await guild.channels.cache.get(guildchannelconf.taglog); 21 | const embed = new EmbedBuilder().setAuthor({name:guild.name,iconURL:guild.iconURL({dynamic:true})}) 22 | const eskiMember = guild.members.cache.get(oldUser.id); 23 | const yeniMember = guild.members.cache.get(newUser.id); 24 | const isimtaglari = tagsistem.nameTags; 25 | const etikettaglari = tagsistem.NmberTag; 26 | const tag = tagsistem.Tag; 27 | const unTag = tagsistem.unTag; 28 | if(!yeniMember.roles.cache.has(guildroleconf.taglırolu) && (!isimtaglari.some(tag=> oldUser.username.includes(tag)) && isimtaglari.some(tag=> newUser.username.includes(tag))) || (oldUser.discriminator != etikettaglari && newUser.discriminator == etikettaglari) || (!oldUser.username.includes(tag) && newUser.username.includes(tag))) { 29 | if(tagLog) await tagLog.send({embeds:[embed.setDescription(`${yeniMember} kullanıcı adına tagımızı aldı. 30 | \`•\` __Eski kullanıcı adı__: **${oldUser.tag}** 31 | \`•\` __Yeni kullanıcı adı__: **${newUser.tag}**`)]}); 32 | await yeniMember.setNickname(yeniMember.displayName.replace(unTag,tag)); 33 | await yeniMember.roles.add(guildroleconf.taglırolu) 34 | } 35 | if(eskiMember.roles.cache.has(guildroleconf.taglırolu) && (isimtaglari.some(tag=> oldUser.username.includes(tag)) && !isimtaglari.some(tag=> newUser.username.includes(tag))) || (oldUser.discriminator == etikettaglari && newUser.discriminator != etikettaglari) || (oldUser.username.includes(tag) && !newUser.username.includes(tag))) { 36 | if(tagLog) await tagLog.send({embeds:[embed.setDescription(`${yeniMember} kullanıcı adına tagımızı bıraktı. 37 | \`•\` __Eski kullanıcı adı__: **${oldUser.tag}** 38 | \`•\` __Yeni kullanıcı adı__: **${newUser.tag}**`)]}); 39 | await yeniMember.setNickname(yeniMember.displayName.replace(tag,unTag)); 40 | { 41 | let roller = await yeniMember.roles.cache.filter(x=> x.id != guild.id && [guildroleconf.manRoles,guildroleconf.womanRoles,guildroleconf.boosterRole].some(y=> y == x.id)).map(x=> `${x.id}`); 42 | await yeniMember.roles.set(roller) 43 | } 44 | } 45 | }; 46 | }; 47 | 48 | 49 | module.exports = userUpdate -------------------------------------------------------------------------------- /Bots/Main/_events/Client/guildMemberAdd.js: -------------------------------------------------------------------------------- 1 | const { Collection, EmbedBuilder, PermissionsBitField,Formatters,ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); 2 | const { Event } = require("../../../../Global/Structures/Default.Events"); 3 | const inviteSchema = require("../../../../Global/Database/invite") 4 | const Channel = require("../../../../Global/Database/Channel") 5 | const Roles = require("../../../../Global/Database/Roles") 6 | class MemberAdd extends Event { 7 | constructor(client) { 8 | super(client, { 9 | name: "guildMemberAdd", 10 | enabled: true, 11 | }); 12 | } 13 | 14 | async onLoad(member) { 15 | let guildchannelconf = await Channel.findOne({guildID: member.guild.id}) 16 | let guildroleconf = await Roles.findOne({guildID: member.guild.id}) 17 | const invChannel = member.guild.channels.cache.get(guildchannelconf.inviteLog); 18 | if(!invChannel) return console.log("İnv Log kanalı Bulunamadı!") 19 | let fakeControl = Date.now()-member.user.createdTimestamp < 1000*60*60*24*7 20 | const cachedInvites = await guildInvites.get(member.guild.id) || await new Collection().clone(); 21 | const invites = await member.guild.invites.fetch(); 22 | const invite = invites.find(inv => cachedInvites.get(inv.code) < inv.uses) || member.guild.vanityURLCode; 23 | const codeUses = new Map(); 24 | invites.forEach(inv => codeUses.set(inv.code, inv.uses)); 25 | guildInvites.set(member.guild.id, codeUses); 26 | const sagOk = await member.guild.emojis.cache.find(x=> x.name == "appEmoji_sagOk") 27 | const carpi = await member.guild.emojis.cache.find(x=> x.name == "appEmoji_carpi") 28 | const tik = await member.guild.emojis.cache.find(x=> x.name == "appEmoji_tik") 29 | 30 | 31 | const welcomeChannel = member.guild.channels.cache.get(guildchannelconf.welcomeChannel); 32 | const suspectChannel = member.guild.channels.cache.get(guildchannelconf.suspectLog); 33 | const rules = member.guild.channels.cache.get(guildchannelconf.rules); 34 | const embed = new EmbedBuilder() 35 | .setAuthor({name:member.guild.name, iconURL:member.guild.iconURL()}) 36 | .setFooter({text:"Developed By Clydev"}) 37 | const kontrol = new Date().getTime() - member.user.createdAt.getTime() < 604800000 ? false : true 38 | if(welcomeChannel && kontrol == true){ 39 | await member.roles.add(guildroleconf.unregisterRoles) 40 | 41 | member.setNickname(`• İsim | Yaş`) 42 | welcomeChannel.send({ 43 | content: ` 44 | Sunucumuza Hoş geldin ${member.toString()}! Hesabın **** tarihinde () oluşturulmuş. 45 | 46 | Sunucuya erişebilmek için "Sesli Kayıt" odalarında yetkililerimize isim yaş belirtmelisin 47 | ${rules} kanalına göz atmayı unutmayınız. 48 | 49 | Tagımıza ulaşmak için herhangi bir kanala '!tag' yazabilirsiniz. 50 | Seninle beraber **${member.guild.memberCount}** kişiyiz!:tada:`}) 51 | 52 | } else if (suspectChannel && kontrol == false){ 53 | member.roles.add(guildroleconf.suspectRole) 54 | return suspectChannel.send({embeds:[embed.setDescription(`${member} isimli üye sunucuya katıldı fakat hesabı bir hafta içinde açılığından dolayı \`${new Date(Date.now()).toTurkishFormatDate()}\` tarihinde **şüpheli hesap** olarak işaretlendi.`)]}); 55 | } 56 | else{ 57 | console.log("guildMemberAdd Eventinde sorun var!") 58 | } 59 | 60 | 61 | 62 | if(invite === member.guild.vanityURLCode) { 63 | 64 | 65 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: member.id }, { $set: { inviter: member.guild.id } }, { upsert: true }); 66 | if(invChannel) invChannel.send({ content: `${sagOk} **${member.user.tag}** sunucuya **ÖZEL URL** ile katıldı! ${fakeControl === true ? `${carpi}`: `${tik}`}`}); 67 | 68 | 69 | } else if(invite) { 70 | 71 | const inviter = client.users.cache.get(invite?.inviter.id) 72 | 73 | if(!invite?.inviter) { 74 | 75 | if(fakeControl) { 76 | 77 | if(invChannel) invChannel.send({ content: `${member} sunucuya katıldı, davet eden kişi bulunamadı! ${carpi}`}) 78 | return; 79 | 80 | } 81 | 82 | if(invChannel) invChannel.send({ content: `${member} sunucuya katıldı, davet eden kişi bulunamadı!`}) 83 | 84 | } 85 | 86 | if(fakeControl) { 87 | 88 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: inviter.id }, { $inc: { total: 1, fake: 1, dailyInvites: 1, weeklyInvites: 1 } }, { upsert: true }); 89 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: member.id }, { $set: { inviter: inviter.id } }, { upsert: true }); 90 | 91 | const data = await inviteSchema.findOne({ guildID: member.guild.id, userID: inviter.id }); 92 | 93 | invChannel.send({ content: `${sagOk} **${member.user.tag}** **${inviter.tag}** (**${data.total+data.bonus}**) daveti ile sunucuya katıldı! ${fakeControl === true ? `${carpi}`: `${tik}`}`}); 94 | return; 95 | } 96 | 97 | if(invChannel) { 98 | const data = await inviteSchema.findOne({ guildID: member.guild.id, userID: inviter.id }); 99 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: member.id }, { $set: { inviter: inviter.id } }, { upsert: true }); 100 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: inviter.id }, { $inc: { total: 1, regular: 1, dailyInvites: 1, weeklyInvites: 1 } }, { upsert: true }); 101 | 102 | 103 | invChannel.send({ content: `${sagOk} **${member.user.tag}** **${inviter.tag}** (**${data.total+data.bonus}**) daveti ile sunucuya katıldı! ${fakeControl === true ? `${carpi}`: `${tik}`}`}); 104 | 105 | } 106 | 107 | } 108 | } 109 | } 110 | module.exports = MemberAdd; -------------------------------------------------------------------------------- /Bots/Main/_events/Client/guildMemberRemove.js: -------------------------------------------------------------------------------- 1 | const { Collection, EmbedBuilder, PermissionsBitField,Formatters,ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); 2 | const { Event } = require("../../../../Global/Structures/Default.Events"); 3 | const inviteSchema = require("../../../../Global/Database/invite") 4 | const Channel = require("../../../../Global/Database/Channel") 5 | class MemberRemove extends Event { 6 | constructor(client) { 7 | super(client, { 8 | name: "guildMemberRemove", 9 | enabled: true, 10 | }); 11 | } 12 | 13 | async onLoad(member) { 14 | 15 | let guildchannelconf = await Channel.findOne({guildID: member.guild.id}) 16 | const invChannel = member.guild.channels.cache.get(guildchannelconf.inviteLog); 17 | if(!invChannel) return console.log("İnv Log kanalı Bulunamadı!") 18 | let fakeControl = Date.now()-member.user.createdTimestamp < 1000*60*60*24*7 19 | 20 | let inviteUser = await inviteSchema.findOne({ guildID: member.guild.id, userID: member.id }) 21 | let inviter = client.users.cache.get(inviteUser.inviter) 22 | const solOk = await member.guild.emojis.cache.find(x=> x.name == "appEmoji_solOk") 23 | if(!inviter) { 24 | 25 | if(invChannel) invChannel.send({ content: `${solOk} **${member.user.tag}** sunucumuzdan ayrıldı, **ÖZEL URL** ile giriş yapmıştı. ${fakeControl === true ? "`❌`": ""}` }) 26 | 27 | } else if(inviter.id === inviteUser.inviter) { 28 | await inviteSchema.findOneAndUpdate({ guildID: member.guild.id, userID: inviter.id }, { $inc: { total: -1, regular: -1, leave: 1 } }, { upsert: true }) 29 | const data = await inviteSchema.findOne({ guildID: member.guild.id, userID: inviter.id }); 30 | const toplam = data.total+data.bonus 31 | if(invChannel) invChannel.send({ content: `${solOk} **${inviter.tag}** (**${toplam+1}**) daveti ile sunucuya katılan ${solOk} **${member.user.tag}**, sunucudan ayrıldı. kalan daveti: **${toplam}** `}); 32 | 33 | } 34 | } 35 | } 36 | module.exports = MemberRemove; -------------------------------------------------------------------------------- /Bots/Main/_events/Client/interactionCreate.js: -------------------------------------------------------------------------------- 1 | const { Collection, EmbedBuilder, InteractionType} = require('discord.js'); 2 | const { Event } = require("../../../../Global/Structures/Default.Events"); 3 | const cooldown = new Collection(); 4 | const ms = require('ms'); 5 | 6 | class interactionCreate extends Event { 7 | constructor(client) { 8 | super(client, { 9 | name: "interactionCreate", 10 | enabled: true, 11 | }); 12 | } 13 | 14 | async onLoad(interaction) { 15 | const slashcommands = client.slashcommands.get(interaction.commandName); 16 | if (interaction.type == 4) { 17 | if(slashcommands.autocomplete) { 18 | const choices = []; 19 | await slashcommands.autocomplete(interaction, choices) 20 | } 21 | } 22 | if (!interaction.type == 2) return; 23 | if(!slashcommands) return client.slashcommands.delete(interaction.commandName); 24 | await slashcommands.onRequest(client, interaction); 25 | } 26 | } 27 | 28 | module.exports = interactionCreate -------------------------------------------------------------------------------- /Bots/Main/_events/Client/inviteCreate.js: -------------------------------------------------------------------------------- 1 | const { Collection, EmbedBuilder, PermissionsBitField,Formatters,ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); 2 | const { Event } = require("../../../../Global/Structures/Default.Events"); 3 | const ms = require('ms'); 4 | class inviteCreate extends Event { 5 | constructor(client) { 6 | super(client, { 7 | name: "inviteCreate", 8 | enabled: true, 9 | }); 10 | } 11 | 12 | async onLoad(invites) { 13 | 14 | const invite = await invites.guild.invites.fetch(); 15 | 16 | const codeUses = new Map(); 17 | invite.each(inv => codeUses.set(inv.code, inv.uses)); 18 | guildInvites.set(invites.guild.id, codeUses); 19 | } 20 | } 21 | 22 | module.exports = inviteCreate -------------------------------------------------------------------------------- /Bots/Main/_events/Client/messageCreate.js: -------------------------------------------------------------------------------- 1 | const { Collection, EmbedBuilder, PermissionsBitField } = require('discord.js'); 2 | const { Event } = require("../../../../Global/Structures/Default.Events"); 3 | const cooldown = new Collection(); 4 | const ms = require('ms'); 5 | 6 | 7 | class messageCreate extends Event { 8 | constructor(client) { 9 | super(client, { 10 | name: "messageCreate", 11 | enabled: true, 12 | }); 13 | } 14 | 15 | async onLoad(message) { 16 | if (message.author.bot || !client.prefix.some(x => message.content.startsWith(x))||(!client.owners.includes(message.author.id) && [...roles.unregisterRoles,roles.bannedTagRole,roles.jailedRole,roles.suspectRole].some(rol=>message.member.roles.cache.has(rol))) || !message.channel || message.channel.type != 0) return; 17 | let args = message.content.substring(client.prefix.some(x => x.length)).split(" "); 18 | let _find = args[0].toLocaleLowerCase() 19 | args = args.splice(1); 20 | let command = client.commands.get(_find) || client.aliases.get(_find); 21 | let embed = new EmbedBuilder().setColor("2F3136").setAuthor({ 22 | name: message.guild.name, 23 | iconURL: message.guild.iconURL() 24 | }) 25 | .setFooter({text: "Developed By Weatrix", iconURL: message.guild.members.cache.get(client.owners[0]).user.avatarURL({dynamic:true})}) 26 | 27 | if(command) { 28 | if((command.developer && !client.owners.includes(message.author.id)) && (command.guildOwner && message.guild.ownerId != message.author.id)) return message.reply({embeds: [embed.setDescription(`Bu komutu kullanabilmek için Sunucu sahibi veya Developer olman lazım`)]}).then(msg => { 29 | setTimeout(() => { 30 | msg.delete().catch(err => {}) 31 | }, 5000) 32 | }); 33 | if(command.permissions && command.permissions.length > 0) { 34 | if((!command.permissions.some(perm => message.member.permissions.has(perm) || message.member.roles.cache.has(perm) || message.author.id == perm))) return message.reply({embeds: [embed.setDescription(`Bu komutu kullanabilmek için yeterli bir yetkiye sahip değilsin.`)]}).then(msg => { 35 | setTimeout(() => { 36 | msg.delete().catch(err => {}) 37 | }, 5000) 38 | }); 39 | } 40 | 41 | if(command.cooldown && cooldown.has(`${command.name}${message.author.id}`)) return message.reply({embeds: [embed.setDescription(`Bu komutu kullanabilirsiniz.`)]}).then(msg => { 42 | setTimeout(() => { 43 | msg.delete().catch(err => {}) 44 | }, 5000) 45 | }); 46 | 47 | command.onRequest(client, message, args,embed) 48 | if(message.guild.ownerId != message.author.id && !client.owners.includes(message.author.id) && !message.member.permissions.has(PermissionsBitField.Flags.Administrator)) { 49 | cooldown.set(`${command.name}${message.author.id}`, Date.now() + command.cooldown) 50 | setTimeout(() => { 51 | cooldown.delete(`${command.name}${message.author.id}`) 52 | }, command.cooldown); 53 | } 54 | } 55 | 56 | } 57 | } 58 | 59 | module.exports = messageCreate 60 | -------------------------------------------------------------------------------- /Bots/Main/_events/Client/ready.js: -------------------------------------------------------------------------------- 1 | const { Event } = require("../../../../Global/Structures/Default.Events"); 2 | const chalk = require('chalk') 3 | const {Guild} = require("../../../../Global/Config/Guild") 4 | class ready extends Event { 5 | constructor(client) { 6 | super(client, { 7 | name: "ready", 8 | enabled: true, 9 | }); 10 | } 11 | 12 | async onLoad() { 13 | _status([{name:Guild.botStatus, type:3}, ],["dnd","online","idle"],{on: false,activities: 5000,status: 30000}) 14 | 15 | const guild = client.guilds.cache.get(Guild.ID) 16 | const channel = guild.channels.cache.get(Guild.botVoiceChannel) 17 | voice.joinVoiceChannel({channelId: channel.id,guildId: channel.guild.id,adapterCreator: channel.guild.voiceAdapterCreator,}); 18 | setInterval(async() => {voice.joinVoiceChannel({channelId: channel.id,guildId: channel.guild.id,adapterCreator: channel.guild.voiceAdapterCreator,});}, 15 * 1000); 19 | console.log(`[${tarihsel(Date.now())}] ${chalk.green.bgHex('#2f3236')(`Başarıyla Giriş Yapıldı: ${client.user.tag}`)}`) 20 | } 21 | } 22 | 23 | 24 | module.exports = ready; 25 | 26 | 27 | function _status(activities, status, time) { 28 | if(!time.on) { 29 | client.user.setActivity(activities[0]) 30 | client.user.setStatus(status[0]) 31 | } else { 32 | let i = 0; 33 | setInterval(() => { 34 | if(i >= activities.length) i = 0 35 | client.user.setActivity(activities[i]) 36 | i++; 37 | }, time.activities); 38 | 39 | let s = 0; 40 | setInterval(() => { 41 | if(s >= activities.length) s = 0 42 | client.user.setStatus(status[s]) 43 | s++; 44 | }, time.status); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /Bots/Main/_slashcommands/_others/avatar.js: -------------------------------------------------------------------------------- 1 | const { ApplicationCommandType,EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "Avatar", 5 | type: ApplicationCommandType.User, 6 | onRequest: async (client, interaction) => { 7 | let link = new ActionRowBuilder({components:[new ButtonBuilder({label:"Tarayıcıda aç", style:ButtonStyle.Link, url: interaction.targetUser.displayAvatarURL({dynamic:true})})]}) 8 | await interaction.reply({ 9 | content: `${interaction.targetUser.displayAvatarURL({dynamic:true})}` 10 | , components:[link] }) 11 | } 12 | }; -------------------------------------------------------------------------------- /Bots/Main/_slashcommands/_others/banner.js: -------------------------------------------------------------------------------- 1 | const { ApplicationCommandType,EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle,ModalBuilder ,TextInputStyle, SelectMenuBuilder,TextInputBuilder , Formatters} = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "Banner", 5 | type: ApplicationCommandType.User, 6 | onRequest: async (client, interaction) => { 7 | const member = interaction.targetUser; 8 | let bannerurl = await GetBanner(member.id,client, interaction) 9 | let link = new ActionRowBuilder({components:[new ButtonBuilder({label:"Tarayıcıda aç", style:ButtonStyle.Link, url: bannerurl})]}) 10 | await interaction.reply({ 11 | content: `${bannerurl}` 12 | , components:[link] }) 13 | } 14 | }; -------------------------------------------------------------------------------- /Bots/Main/fivedb.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Weatrixcik/v14-supervisor-bot/b31bf4d7f73c14722e377efb1f38b4e77329c176/Bots/Main/fivedb.yml -------------------------------------------------------------------------------- /Bots/Main/main.js: -------------------------------------------------------------------------------- 1 | const { Weatrix } = require('../../Global/Structures/Default.Clients.js'); 2 | const {Bots} = require("../../Global/Config/Guild").Guild 3 | let client = global.client = new Weatrix({ 4 | token: Bots.mainToken, 5 | prefix: Bots.prefixs, 6 | owners: Bots.devs, 7 | MongoURI: Bots.MongoDb, 8 | _dirname: "Main" 9 | }); 10 | 11 | const invites = client.invites = {}; 12 | const guildInvites = global.guildInvites = new Map() 13 | client.fetchCommands(true, true); 14 | client.fetchEvents(true) 15 | client.connect() 16 | -------------------------------------------------------------------------------- /Command Template.js: -------------------------------------------------------------------------------- 1 | 2 | const { EmbedBuilder,PermissionsBitField, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require("discord.js"); 3 | const { Command } = require("../../../../Global/Structures/Default.Commands"); 4 | const { post } = require("node-superfetch"); 5 | const {Guild} = require("../../../../Global/Config/Guild") 6 | const User = require("../../../../Global/Database/Users") 7 | class template extends Command { 8 | constructor(client) { 9 | super(client, { 10 | name: "", 11 | description: "", 12 | usage: "", 13 | category: "", 14 | aliases: [""], 15 | 16 | enabled: true, 17 | 18 | permissions: ["BOT_OWNER","GUILD_OWNER", PermissionsBitField.Flags.Administrator,"938836851307987048"], 19 | }); 20 | } 21 | 22 | 23 | onLoad(client) { 24 | 25 | } 26 | 27 | async onRequest (client, message, args,embed) { 28 | let member = message.mentions.members.first() || message.guild.members.cache.get(args[0]) 29 | 30 | } 31 | } 32 | module.exports = template; -------------------------------------------------------------------------------- /Global/Additions/_console.additions.js: -------------------------------------------------------------------------------- 1 | const { bgBlue, black, green, bgGreenBright, bgWhiteBright } = require("chalk"); 2 | 3 | module.exports = class Logger { 4 | static log(content, type = "log", name) { 5 | const date = `[${tarihsel(Date.now())}]`; 6 | switch (type) { 7 | case "botReady": { 8 | return console.log(`${date} ${green("✓")} ${content}`); 9 | } 10 | case "log": { 11 | return console.log(`${date} ${bgBlue(type.toUpperCase())} ${content}`); 12 | } 13 | case "warn": { 14 | return console.log(`${date} ${black.bgHex('#D9A384')(type.toUpperCase())} ${content}`); 15 | } 16 | case "error": { 17 | return console.log(`${date} ${black.bgHex('#FF0000')(type.toUpperCase())} ${content}`); 18 | } 19 | case "debug": { 20 | return console.log(`${date} ${green(type.toUpperCase())} ${content}`); 21 | } 22 | case "cmd": { 23 | return console.log(`${date} ${black.bgHex('#8dbe85')(type.toUpperCase())} ${content}`); 24 | } 25 | case "ready": { 26 | return console.log(`${date} ${black.bgHex('#48D09B')(type.toUpperCase())} ${content}`); 27 | } 28 | case "mongodb": { 29 | return console.log(`${date} ${black.bgHex('#F9D342')(type.toUpperCase())} ${content}`); 30 | } 31 | case "interface": { 32 | return console.log(`${date} ${black.bgHex('#F9D342')(type.toUpperCase())} ${content}`); 33 | } 34 | case "reconnecting": { 35 | return console.log(`${date} ${black.bgHex('#133729')(type.toUpperCase())} ${content}`); 36 | } 37 | case "disconnecting": { 38 | return console.log(`${date} ${black.bgHex('#782020')(type.toUpperCase())} ${content}`); 39 | } 40 | case "load": { 41 | return console.log(`${date} ${black.bgHex('#00D6FF')(type.toUpperCase())} ${content}`); 42 | } 43 | case "varn": { 44 | return console.log(`${date} ${black.bgHex('#EEA2AD')(type.toUpperCase())} ${content}`); 45 | } 46 | case "caution": { 47 | return console.log(`${date} ${black.bgHex('#FF0000')(type.toUpperCase())} ${content}`); 48 | } 49 | case "event": { 50 | return console.log(`${date} ${black.bgHex('#C509D8')(type.toUpperCase())} ${content}`); 51 | } 52 | case "ups": { 53 | return console.log(`${date} ${black.bgHex('#CAB62F')(type.toUpperCase())} ${content}`); 54 | } 55 | case "stat": { 56 | return console.log(`${date} ${black.bgHex('#3DA6FF')(type.toUpperCase())} ${content}`); 57 | } 58 | case "category": { 59 | return console.log(`${date} ${black.bgHex('#E8D4A9')(type.toUpperCase())} ${content}`); 60 | } 61 | case "backup": { 62 | return console.log(`${date} ${black.bgHex('#00FF3B')(type.toUpperCase())} ${content}`) 63 | } 64 | case "dist": { 65 | return console.log(`${date} ${black.bgHex('#DFEB4B')(type.toUpperCase())} ${content}`) 66 | } 67 | default: throw new TypeError("Logger type must be either warn, debug, log, ready, cmd or error."); 68 | } 69 | } 70 | }; -------------------------------------------------------------------------------- /Global/Additions/_general.additions.js: -------------------------------------------------------------------------------- 1 | const moment = global.moment = require('moment'); 2 | require("moment-duration-format"); 3 | require("moment-timezone"); 4 | const { Client, GatewayIntentBits, Partials, Collection, EmbedBuilder,PermissionsBitField,Intents } = require('discord.js'); 5 | const axios = require("axios"); 6 | const Guild = require('../Config/Guild'); 7 | 8 | 9 | let aylartoplam = { "01": "Ocak", "02": "Şubat", "03": "Mart", "04": "Nisan", "05": "Mayıs", "06": "Haziran", "07": "Temmuz", "08": "Ağustos", "09": "Eylül", "10": "Ekim", "11": "Kasım", "12": "Aralık" }; 10 | global.aylar = aylartoplam; 11 | const voice = global.voice = require("@discordjs/voice") 12 | 13 | 14 | const sureCevir = global.sureCevir = function(veri){ 15 | return moment.duration(veri).format("H [Saat], m [dakika]"); 16 | } 17 | const tarihsel = global.tarihsel = function(tarih) { 18 | let tarihci = moment(tarih).tz("Europe/Istanbul").format("DD") + " " + global.aylar[moment(tarih).tz("Europe/Istanbul").format("MM")] + " " + moment(tarih).tz("Europe/Istanbul").format("YYYY") 19 | return tarihci; 20 | }; 21 | 22 | const createEnum = global.createEnum = function(keys) { 23 | const obj = {}; 24 | for (const [index, key] of keys.entries()) { 25 | if (key === null) continue; 26 | obj[key] = index; 27 | obj[index] = key; 28 | } 29 | return obj; 30 | } 31 | const checkDays = global.checkDays = function(date) { 32 | let now = new Date(); 33 | let diff = now.getTime() - date.getTime(); 34 | let days = Math.floor(diff / 86400000); 35 | return days + (days == 1 ? " Gün" : " Gün") + " Önce"; 36 | } 37 | const rakam = global.rakam = function(sayi,x) { 38 | var basamakbir = sayi.toString().replace(/ /g, " "); 39 | var basamakiki = basamakbir.match(/([0-9])/g); 40 | basamakbir = basamakbir.replace(/([a-zA-Z])/g, "bilinmiyor").toLowerCase(); 41 | if (basamakiki) { 42 | basamakbir = basamakbir.replace(/([0-9])/g, d => { 43 | return { 44 | '0': x.emojis.cache.find(x=> x.name == "appEmoji_sifir") ? x.emojis.cache.find(x=> x.name == "appEmoji_sifir") : "0", 45 | '1': x.emojis.cache.find(x=> x.name == "appEmoji_bir") ? x.emojis.cache.find(x=> x.name == "appEmoji_bir") : "1", 46 | '2': x.emojis.cache.find(x=> x.name == "appEmoji_iki")? x.emojis.cache.find(x=> x.name == "appEmoji_iki") : "2", 47 | '3': x.emojis.cache.find(x=> x.name == "appEmoji_uc")? x.emojis.cache.find(x=> x.name == "appEmoji_uc") : "3", 48 | '4': x.emojis.cache.find(x=> x.name == "appEmoji_dort")? x.emojis.cache.find(x=> x.name == "appEmoji_dort") : "4", 49 | '5': x.emojis.cache.find(x=> x.name == "appEmoji_bes")? x.emojis.cache.find(x=> x.name == "appEmoji_bes") : "5", 50 | '6': x.emojis.cache.find(x=> x.name == "appEmoji_alti")? x.emojis.cache.find(x=> x.name == "appEmoji_alti") : "6", 51 | '7': x.emojis.cache.find(x=> x.name == "appEmoji_yedi")? x.emojis.cache.find(x=> x.name == "appEmoji_yedi") : "7", 52 | '8': x.emojis.cache.find(x=> x.name == "appEmoji_sekiz")? x.emojis.cache.find(x=> x.name == "appEmoji_sekiz") : "8", 53 | '9': x.emojis.cache.find(x=> x.name == "appEmoji_dokuz")? x.emojis.cache.find(x=> x.name == "appEmoji_dokuz") : "9", 54 | } 55 | [d]; 56 | }) 57 | } 58 | return basamakbir; 59 | } 60 | const sleep = global.sleep = function(ms) { 61 | var start = new Date().getTime(); 62 | while (new Date().getTime() < start + ms); 63 | } 64 | 65 | const emojiBul = global.emojiBul = async function(name,type){ 66 | if(type == "id") return await client.guilds.cache.get(Guild.Guild.ID).emojis.cache.find(x=> x.name == name).id 67 | if(type == "name") return await client.guilds.cache.get(Guild.Guild.ID).emojis.cache.find(x=> x.name == name) 68 | } 69 | const chunkify = global.chunkify = function (array,chunkSize) { 70 | if (!array || !chunkSize) return array; 71 | 72 | let length = array.length; 73 | let slicePoint = 0; 74 | let result = []; 75 | 76 | while (slicePoint < length) { 77 | result.push(array.slice(slicePoint, slicePoint + chunkSize)) 78 | slicePoint += chunkSize; 79 | } 80 | return result; 81 | } 82 | 83 | const cevap = global.cevap = async function(message,type){ 84 | const hataEmbed = global.hataEmbed = new EmbedBuilder() 85 | .setAuthor({name:message.guild.name,iconURL:message.guild.iconURL({dynamic:true})}) 86 | .setColor("Red") 87 | .setFooter({text: "Developed By Weatrix | Hata olduğunu düşünüyorsan geliştirici ile iletişime geç!", iconURL: message.guild.members.cache.get(client.owners[0]).user.avatarURL({dynamic:true})}); 88 | const hata = message.guild.emojis.cache.find(x=> x.name =="appEmoji_unlem") ? message.guild.emojis.cache.find(x=> x.name =="appEmoji_unlem") : `**[ __Hata__ ]** \` | \`` 89 | if(type == "memberYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir kullanıcıyı etiketleyin **(\`@Weatrix\`)** veya **\`ID\`**'sini yazın.`)]}).then(async msg =>{ 90 | setTimeout(async() => { 91 | if(msg && msg.deletable) await msg.delete(); 92 | if(message && message.deletable) await message.delete(); 93 | }, 10000); 94 | }) 95 | if(type == "tagliYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Tag'a davet ettiğin kimseyi bulamadım!`)]}).then(async msg =>{ 96 | setTimeout(async() => { 97 | if(msg && msg.deletable) await msg.delete(); 98 | if(message && message.deletable) await message.delete(); 99 | }, 10000); 100 | }) 101 | if(type == "komutKullanamazsın") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Üzgünüm..., Bu komutu kullanamazsın!`)]}).then(async msg =>{ 102 | setTimeout(async() => { 103 | if(msg && msg.deletable) await msg.delete(); 104 | if(message && message.deletable) await message.delete(); 105 | }, 10000); 106 | }) 107 | if(type == "yetkilinYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Yetkili yaptığın kimseyi bulamadım!`)]}).then(async msg =>{ 108 | setTimeout(async() => { 109 | if(msg && msg.deletable) await msg.delete(); 110 | if(message && message.deletable) await message.delete(); 111 | }, 10000); 112 | }) 113 | if(type == "kendisi") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kendi üstünde işlem yapamazsın!`)]}).then(async msg =>{ 114 | setTimeout(async() => { 115 | if(msg && msg.deletable) await msg.delete(); 116 | if(message && message.deletable) await message.delete(); 117 | }, 10000); 118 | }) 119 | if(type == "sureYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bi süre belirtilmeden işlem yapamam! **(\`Örn: 1s/1m/1h/1w\`)**`)]}).then(async msg =>{ 120 | setTimeout(async() => { 121 | if(msg && msg.deletable) await msg.delete(); 122 | if(message && message.deletable) await message.delete(); 123 | }, 10000); 124 | }) 125 | if(type == "sebepYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bi sebep belirtilmeden işlem yapamam!*`)]}).then(async msg =>{ 126 | setTimeout(async() => { 127 | if(msg && msg.deletable) await msg.delete(); 128 | if(message && message.deletable) await message.delete(); 129 | }, 10000); 130 | }) 131 | if(type == "rolYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir rol etiketleyin **(\`@Rol\`)** veya **\`ID\`**'sini yazın.`)]}).then(async msg =>{ 132 | setTimeout(async() => { 133 | if(msg && msg.deletable) await msg.delete(); 134 | if(message && message.deletable) await message.delete(); 135 | }, 10000); 136 | }) 137 | if(type == "rolIDYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir rol **\`ID\`**'si yazın.`)]}).then(async msg =>{ 138 | setTimeout(async() => { 139 | if(msg && msg.deletable) await msg.delete(); 140 | if(message && message.deletable) await message.delete(); 141 | }, 10000); 142 | }) 143 | if(type == "kanalYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir Kanal etiketleyin **(\`#Kanal\`)** veya **\`ID\`**'sini yazın.`)]}).then(async msg =>{ 144 | setTimeout(async() => { 145 | if(msg && msg.deletable) await msg.delete(); 146 | if(message && message.deletable) await message.delete(); 147 | }, 10000); 148 | }) 149 | if(type == "bannerYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcının Banner'i Bulunamadı!`)]}).then(async msg =>{ 150 | setTimeout(async() => { 151 | if(msg && msg.deletable) await msg.delete(); 152 | if(message && message.deletable) await message.delete(); 153 | }, 10000); 154 | }) 155 | if(type == "kategoriYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir Kategori **\`ID\`**'sini yazın.`)]}).then(async msg =>{ 156 | setTimeout(async() => { 157 | if(msg && msg.deletable) await msg.delete(); 158 | if(message && message.deletable) await message.delete(); 159 | }, 10000); 160 | }) 161 | if(type == "veriYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir Kategori **\`ID\`**'sini yazın.`)]}).then(async msg =>{ 162 | setTimeout(async() => { 163 | if(msg && msg.deletable) await msg.delete(); 164 | if(message && message.deletable) await message.delete(); 165 | }, 10000); 166 | }) 167 | if(type == "kanalDYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Bir kanal **\`ID\`**'si yazın.`)]}).then(async msg =>{ 168 | setTimeout(async() => { 169 | if(msg && msg.deletable) await msg.delete(); 170 | if(message && message.deletable) await message.delete(); 171 | }, 10000); 172 | }) 173 | if(type == "komutYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Komut sistemde bulunamadı!`)]}).then(async msg =>{ 174 | setTimeout(async() => { 175 | if(msg && msg.deletable) await msg.delete(); 176 | if(message && message.deletable) await message.delete(); 177 | }, 10000); 178 | }) 179 | if(type == "sesteYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı herhangi bir ses kanalında değil!`)]}).then(async msg =>{ 180 | setTimeout(async() => { 181 | if(msg && msg.deletable) await msg.delete(); 182 | if(message && message.deletable) await message.delete(); 183 | }, 10000); 184 | }) 185 | if(type == "sesKanalıDolu") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Ses kanalı dolu olduğu için işlem yapılamaz!`)]}).then(async msg =>{ 186 | setTimeout(async() => { 187 | if(msg && msg.deletable) await msg.delete(); 188 | if(message && message.deletable) await message.delete(); 189 | }, 10000); 190 | }) 191 | if(type == "veriBulunamadı") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Veri bulunamadı!`)]}).then(async msg =>{ 192 | setTimeout(async() => { 193 | if(msg && msg.deletable) await msg.delete(); 194 | if(message && message.deletable) await message.delete(); 195 | }, 10000); 196 | }) 197 | if(type == "yasYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Yaş girilmeden işlem yapamam.`)]}).then(async msg =>{ 198 | setTimeout(async() => { 199 | if(msg && msg.deletable) await msg.delete(); 200 | if(message && message.deletable) await message.delete(); 201 | }, 10000); 202 | }) 203 | if(type == "isimYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} İsim girilmeden işlem yapamam.`)]}).then(async msg =>{ 204 | setTimeout(async() => { 205 | if(msg && msg.deletable) await msg.delete(); 206 | if(message && message.deletable) await message.delete(); 207 | }, 10000); 208 | }) 209 | if(type == "kendisiSesteYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} ${message.member} seste bulunmadığı(n) için işlem yapılamaz!`)]}).then(async msg =>{ 210 | setTimeout(async() => { 211 | if(msg && msg.deletable) await msg.delete(); 212 | if(message && message.deletable) await message.delete(); 213 | }, 10000); 214 | }) 215 | if(type == "rolverisiYok") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Rol bulunamadığı için işlem yapılamadı!`)]}).then(async msg =>{ 216 | setTimeout(async() => { 217 | if(msg && msg.deletable) await msg.delete(); 218 | if(message && message.deletable) await message.delete(); 219 | }, 10000); 220 | }) 221 | if(type == "yetersizYetki") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Yetersiz yetki !`)]}).then(async msg =>{ 222 | setTimeout(async() => { 223 | if(msg && msg.deletable) await msg.delete(); 224 | if(message && message.deletable) await message.delete(); 225 | }, 10000); 226 | }) 227 | if(type == "yetersizYetki") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Yetersiz yetki !`)]}).then(async msg =>{ 228 | setTimeout(async() => { 229 | if(msg && msg.deletable) await msg.delete(); 230 | if(message && message.deletable) await message.delete(); 231 | }, 10000); 232 | }) 233 | if(type == "isimSınır") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı isim uzunluğu en fazla 32 karakter olabilir`)]}).then(async msg =>{ 234 | setTimeout(async() => { 235 | if(msg && msg.deletable) await msg.delete(); 236 | if(message && message.deletable) await message.delete(); 237 | }, 10000); 238 | }) 239 | if(type == "cezali") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı cezalı olduğu için işlem yapılamaz.`)]}).then(async msg =>{ 240 | setTimeout(async() => { 241 | if(msg && msg.deletable) await msg.delete(); 242 | if(message && message.deletable) await message.delete(); 243 | }, 10000); 244 | }) 245 | if(type == "supheli") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı şüpheli olduğu için işlem yapılamaz.`)]}).then(async msg =>{ 246 | setTimeout(async() => { 247 | if(msg && msg.deletable) await msg.delete(); 248 | if(message && message.deletable) await message.delete(); 249 | }, 10000); 250 | }) 251 | if(type == "yasakliTag") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı "Yasaklı Tag" rolüne sahip olduğu için işlem yapılamaz`)]}).then(async msg =>{ 252 | setTimeout(async() => { 253 | if(msg && msg.deletable) await msg.delete(); 254 | if(message && message.deletable) await message.delete(); 255 | }, 10000); 256 | }) 257 | if(type == "bot") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Botlar üstünde işlem yapılamaz`)]}).then(async msg =>{ 258 | setTimeout(async() => { 259 | if(msg && msg.deletable) await msg.delete(); 260 | if(message && message.deletable) await message.delete(); 261 | }, 10000); 262 | }) 263 | if(type == "üstAynıYetki") return message.reply({embeds:[hataEmbed.setDescription(`${hata} kendinden Üst/Aynı yetkide ki kullanıcılar veya bot sahipleri üstünde işlem yapılamaz`)]}).then(async msg =>{ 264 | setTimeout(async() => { 265 | if(msg && msg.deletable) await msg.delete(); 266 | if(message && message.deletable) await message.delete(); 267 | }, 10000); 268 | }) 269 | if(type == "kayitli") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı kayıtlı olduğundan işlem yapılamaz`)]}).then(async msg =>{ 270 | setTimeout(async() => { 271 | if(msg && msg.deletable) await msg.delete(); 272 | if(message && message.deletable) await message.delete(); 273 | }, 10000); 274 | }) 275 | if(type == "kayitsiz") return message.reply({embeds:[hataEmbed.setDescription(`${hata} Kullanıcı kayıtsız olduğundan işlem yapılamaz`)]}).then(async msg =>{ 276 | setTimeout(async() => { 277 | if(msg && msg.deletable) await msg.delete(); 278 | if(message && message.deletable) await message.delete(); 279 | }, 10000); 280 | }) 281 | } 282 | 283 | -------------------------------------------------------------------------------- /Global/Config/Guild.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | Guild:{ 3 | Bots:{ 4 | mainToken:"", // Bot token 5 | MongoDb:"", // MongoDB Connection URL 6 | prefixs:["."], // Bot Prefixs 7 | devs:["", ""] // Bot Sahip ID leri ["1", "2"] diğe çoğaltılabiliyor 8 | }, 9 | ID:"", // Server (Guild, Sunucu) ID 10 | botVoiceChannel:"", // Bot Ses Kanalı 11 | botStatus:"weatrix V14", // Botun Durumu 12 | } 13 | }; -------------------------------------------------------------------------------- /Global/Database/Channel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: {type:String, default:undefined}, 5 | Tag:{type:String,default:undefined}, 6 | welcomeChannel: {type:String, default:undefined}, 7 | suspectLog: {type:String, default:undefined}, 8 | chatChannel: {type:String, default:undefined}, 9 | taglog: {type:String, default:undefined}, 10 | rules: {type:String, default:undefined}, 11 | inviteLog: {type:String, default:undefined}, 12 | kayıtsızlog: {type:String, default:undefined}, 13 | kayıtlog: {type:String, default:undefined}, 14 | penaltyPointsLog: {type:String, default:undefined}, 15 | mutelog: {type:String, default:undefined}, 16 | vmutelog: {type:String, default:undefined}, 17 | jaillog: {type:String, default:undefined}, 18 | banlog: {type:String, default:undefined}, 19 | toplantı: {type:String, default:undefined}, 20 | }); 21 | 22 | module.exports = model("weatrix-Channel", schema); 23 | -------------------------------------------------------------------------------- /Global/Database/Profile.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const Users = mongoose.model("weatrix_Users", new mongoose.Schema({ 4 | userID: String, 5 | TeyitNo: Number, 6 | Teyitler: { type: Array, default: [] }, 7 | Registrant: Object, 8 | Inviter: Object, 9 | AfkStatus: Object, 10 | Names: { type: Array, default: [] }, 11 | })); 12 | 13 | module.exports = Users -------------------------------------------------------------------------------- /Global/Database/Roles.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | kurucuPerms:{type:Array, default:[]}, 6 | unregisterRoles:{type:Array, default:[]}, 7 | manRoles:{type:Array, default:[]}, 8 | womanRoles:{type:Array, default:[]}, 9 | taglırolu:{type:String, default:undefined}, 10 | boosterRole:{type:String, default:undefined}, 11 | registerStaffRole:{type:String, default:undefined}, 12 | suspectRole:{type:String, default:undefined}, 13 | bannedTagRole:{type:String, default:undefined}, 14 | jailedRole:{type:String, default:undefined}, 15 | mutehammer:{type:String, default:undefined}, 16 | banhammer:{type:String, default:undefined}, 17 | jailhammer:{type:String, default:undefined}, 18 | vmutehammer:{type:String, default:undefined}, 19 | botcommands:{type:String, default:undefined}, 20 | muterol:{type:String, default:undefined}, 21 | vmuterol:{type:String, default:undefined}, 22 | toplantırol:{type:String, default:undefined}, 23 | 24 | }); 25 | 26 | module.exports = model("weatrix-Roles", schema); 27 | -------------------------------------------------------------------------------- /Global/Database/RolesVeri.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | module.exports = mongoose.model("weatrixrollog", 4 | new mongoose.Schema({ 5 | user: String, 6 | roller: Array, 7 | }), 8 | ); -------------------------------------------------------------------------------- /Global/Database/StaffSchema.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | const schema = Schema({guildId:{ type: String,default:""},userId:{type:String,default:""},point: {type:Number,default:0}}); 3 | module.exports = model("weatrix_points", schema); -------------------------------------------------------------------------------- /Global/Database/TagMode.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const schema = mongoose.model("TagMode", mongoose.Schema({ 4 | guildID: { type: String }, 5 | Public: {type: Array, default: []}, 6 | Ekip: {type: Array, default: []} 7 | })); 8 | 9 | module.exports = schema; -------------------------------------------------------------------------------- /Global/Database/afk.js: -------------------------------------------------------------------------------- 1 | let mongoose = require("mongoose"); 2 | let Schema = mongoose.Schema; 3 | 4 | let afkSchema = Schema({ 5 | userID: {type: String, default: ""}, 6 | guildID: {type: String, default: ""}, 7 | Type: {type: Boolean, default: false}, 8 | Reason: {type: String, default: ""}, 9 | Time: {type: Number, default: Date.now()}, 10 | }) 11 | 12 | module.exports = mongoose.model("weatrix_afk", afkSchema) -------------------------------------------------------------------------------- /Global/Database/ban.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID:String, 5 | userID:String, 6 | bans:{type:Array, default:[]}, 7 | banned:{type:Number, default:0}, 8 | unban:{type:Number,default:0}, 9 | limit:{type:Number,default:0}, 10 | }); 11 | 12 | module.exports = model("weatrix_ban", schema); 13 | -------------------------------------------------------------------------------- /Global/Database/camerastat.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelName:String, 8 | dailyStat: { type: Number, default: 0 }, 9 | weeklyStat: { type: Number, default: 0 }, 10 | twoWeeklyStat: { type: Number, default: 0 }, 11 | totalStat: { type: Number, default: 0 }, 12 | 13 | }); 14 | 15 | module.exports = model("weatrix_CameraUser", schema); 16 | -------------------------------------------------------------------------------- /Global/Database/ceza.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID:String, 5 | userID:String, 6 | cezaId:Number, 7 | penaltys:{type:Array,default:[]} 8 | }); 9 | 10 | module.exports = model("weatrix_penaltys", schema); 11 | -------------------------------------------------------------------------------- /Global/Database/cezapuan.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: { type: String, default: "" }, 5 | userID: { type: String, default: "" }, 6 | cezapuan: { type: Number, default: 0 } 7 | }); 8 | 9 | module.exports = model("weatrix_cezapuan", schema); -------------------------------------------------------------------------------- /Global/Database/görev.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | const schema = Schema({ 3 | guildId: { type: String, default: "" }, 4 | userId: { type: String, default: "" }, 5 | id: { type: Number, default: 0 }, 6 | type: { type: String, default: "" }, 7 | count: { type: Number, default: 0 }, 8 | prizeCount: { type: Number, default: 0 }, 9 | active: { type: Boolean, default: true }, 10 | finishDate: { type: Number, default: Date.now() }, 11 | date: { type: Number, default: Date.now() }, 12 | completed: { type: Boolean, default: false }, 13 | completedCount: { type: Number, default: 0 }, 14 | channels: { type: Array, default: null }, 15 | message: { type: String, default: "" } 16 | }); 17 | module.exports = model("weatrixsex-tasks", schema); 18 | -------------------------------------------------------------------------------- /Global/Database/göreval.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | const schema = Schema({guildId: { type: String, default: "" }, 3 | userId: { type: String, default: "" }, 4 | id: { type: Number, default: 0 }, 5 | type: { type: String, default: "" }, 6 | count: { type: Number, default: 0 }, 7 | prizeCount: { type: Number, default: 0 }, 8 | active: { type: Boolean, default: true }, 9 | finishDate: { type: Number, default: Date.now() }, 10 | date: { type: Number, default: Date.now() }, 11 | completed: { type: Boolean, default: false }, 12 | completedCount: { type: Number, default: 0 }, 13 | channels: { type: Array, default: null }, 14 | message: { type: String, default: "" }}); 15 | module.exports = model("weatrix-tasks", schema); 16 | -------------------------------------------------------------------------------- /Global/Database/invite.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | 3 | const invitesSchema = mongoose.Schema({ 4 | guildID: String, 5 | userID: String, 6 | total: { type: Number, default: 0 }, 7 | regular: { type: Number, default: 0 }, 8 | leave: { type: Number, default: 0 }, 9 | fake: { type: Number, default: 0 }, 10 | bonus: { type: Number, default: 0 }, 11 | inviter: { type: String, default: null }, 12 | 13 | }) 14 | 15 | module.exports = mongoose.model('weatrix-invites', invitesSchema); 16 | 17 | 18 | -------------------------------------------------------------------------------- /Global/Database/inviteMember.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = new Schema({ 4 | guildID: { type: String, default: "" }, 5 | userID: { type: String, default: "" }, 6 | inviter: { type: String, default: "" }, 7 | }); 8 | 9 | module.exports = model("weatrix_inviteMember", schema); -------------------------------------------------------------------------------- /Global/Database/leaderboard.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID:{type:String}, 6 | only:{type:Boolean}, 7 | MessageBoardID:{type:String}, 8 | VoiceBoardID:{type:String}, 9 | }); 10 | 11 | module.exports = model("weatrix-leaderBoard", schema); 12 | -------------------------------------------------------------------------------- /Global/Database/level.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | 3 | const levelSchema = new mongoose.Schema({ 4 | guildID: String, 5 | userID: String, 6 | gerekli: { type: Number, default: 100 }, 7 | xp: { type: Number, default: 1 }, 8 | level: { type: Number, default: 1 } 9 | }); 10 | 11 | module.exports = mongoose.model("weatrix_level", levelSchema); -------------------------------------------------------------------------------- /Global/Database/messageGuild.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: { type: String, default: "" }, 5 | dailyStat: { type: Number, default: 0 }, 6 | weeklyStat: { type: Number, default: 0 }, 7 | twoWeeklyStat: { type: Number, default: 0 }, 8 | totalStat: { type: Number, default: 0 }, 9 | }); 10 | 11 | module.exports = model("weatrix_messageGuild", schema); 12 | -------------------------------------------------------------------------------- /Global/Database/messageGuildChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID: String, 6 | channelData: { type: Number, default: 0 }, 7 | }); 8 | 9 | module.exports = model("weatrix_messageGuildChannel", schema); 10 | -------------------------------------------------------------------------------- /Global/Database/messageUser.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelName:String, 7 | dailyStat: { type: Number, default: 0 }, 8 | weeklyStat: { type: Number, default: 0 }, 9 | twoWeeklyStat: { type: Number, default: 0 }, 10 | totalStat: { type: Number, default: 0 }, 11 | 12 | }); 13 | 14 | module.exports = model("weatrix_messageUser", schema); 15 | -------------------------------------------------------------------------------- /Global/Database/messageUserChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelData: { type: Number, default: 0 }, 8 | }); 9 | 10 | module.exports = model("weatrix_messageUserChannel", schema); 11 | -------------------------------------------------------------------------------- /Global/Database/mute.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID:String, 5 | userID:String, 6 | mutes:{type:Array, default:[]}, 7 | mute:{type:Number, default:0}, 8 | unmute:{type:Number,default:0}, 9 | limit:{type:Number,default:0}, 10 | }); 11 | 12 | module.exports = model("weatrix_mute", schema); 13 | -------------------------------------------------------------------------------- /Global/Database/names.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: { type: String, default: "" }, 5 | userID: { type: String, default: "" }, 6 | names: { type: Array, default: [] }, 7 | yetkili: {type: String, default: ""}, 8 | sebep: {type: String, default: ""} 9 | }); 10 | 11 | module.exports = model("weatrix_names", schema); -------------------------------------------------------------------------------- /Global/Database/perm.js: -------------------------------------------------------------------------------- 1 | const mongoose = require('mongoose'); 2 | module.exports = mongoose.model("perms", mongoose.Schema({ 3 | guildID: { type: String, default: "" }, 4 | perms:{type:Array,default:[]} 5 | })); -------------------------------------------------------------------------------- /Global/Database/puant.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | const schema = Schema({ 3 | guildId:{ type: String,default:""}, 4 | userId:{type:String,default:""}, 5 | point: {type:Number,default:0} 6 | }); 7 | module.exports = model("weatrix-points", schema); 8 | -------------------------------------------------------------------------------- /Global/Database/streamOpenedAt.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | userID: String, 5 | date: { type: Number, default: 0 }, 6 | }); 7 | 8 | module.exports = model("weatrix_streamOpenedAt", schema); 9 | -------------------------------------------------------------------------------- /Global/Database/streamer.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelName:String, 8 | dailyStat: { type: Number, default: 0 }, 9 | weeklyStat: { type: Number, default: 0 }, 10 | twoWeeklyStat: { type: Number, default: 0 }, 11 | totalStat: { type: Number, default: 0 }, 12 | }); 13 | 14 | module.exports = model("weatrix_voiceStreamUser", schema); 15 | -------------------------------------------------------------------------------- /Global/Database/tagaldır.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | const schema = Schema({ 3 | guildId: { type: String, default: "" }, 4 | userId: { type: String, default: "" }, 5 | Data:{type: Array,default:[]} 6 | }); 7 | module.exports = model("weatrix-taggesmansex", schema); 8 | -------------------------------------------------------------------------------- /Global/Database/tagsistem.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: {type:String, default:undefined}, 5 | unTag:{type:String,default:undefined}, 6 | Tag:{type:String,default:undefined}, 7 | nameTags:{type:Array,default:[]}, 8 | NumberTag:{type:String,default:undefined}, 9 | }); 10 | 11 | module.exports = model("weatrix-tag", schema); 12 | -------------------------------------------------------------------------------- /Global/Database/vmute.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID:String, 5 | userID:String, 6 | vmutes:{type:Array, default:[]}, 7 | vmute:{type:Number, default:0}, 8 | unvmute:{type:Number,default:0}, 9 | limit:{type:Number,default:0}, 10 | }); 11 | 12 | module.exports = model("weatrix_vmute", schema); 13 | -------------------------------------------------------------------------------- /Global/Database/voiceGuild.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID: String, 6 | dailyStat: { type: Number, default: 0 }, 7 | weeklyStat: { type: Number, default: 0 }, 8 | twoWeeklyStat: { type: Number, default: 0 }, 9 | totalStat: { type: Number, default: 0 }, 10 | 11 | }); 12 | 13 | module.exports = model("weatrix_voiceGuild", schema); 14 | -------------------------------------------------------------------------------- /Global/Database/voiceGuildChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID: String, 6 | channelData: { type: Number, default: 0 }, 7 | }); 8 | 9 | module.exports = model("weatrix_voiceGuildChannel", schema); 10 | -------------------------------------------------------------------------------- /Global/Database/voiceGuildStream.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID: String, 6 | dailyStat: { type: Number, default: 0 }, 7 | weeklyStat: { type: Number, default: 0 }, 8 | twoWeeklyStat: { type: Number, default: 0 }, 9 | totalStat: { type: Number, default: 0 }, 10 | 11 | }); 12 | 13 | module.exports = model("weatrix_voiceGuildStreamUser", schema); 14 | -------------------------------------------------------------------------------- /Global/Database/voiceGuildStreamChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | channelID: String, 6 | channelData: { type: Number, default: 0 }, 7 | }); 8 | 9 | module.exports = model("weatrix_voiceGuildStreamChannel", schema); 10 | -------------------------------------------------------------------------------- /Global/Database/voiceGuildStreamUserChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelData: { type: Number, default: 0 }, 8 | }); 9 | 10 | module.exports = model("weatrix_voiceGuildUserStreamChannel", schema); 11 | -------------------------------------------------------------------------------- /Global/Database/voiceJoinedAt.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | userID: String, 5 | date: { type: Number, default: 0 }, 6 | }); 7 | 8 | module.exports = model("weatrix_voiceJoinedAt", schema); 9 | -------------------------------------------------------------------------------- /Global/Database/voiceUser.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelName:String, 8 | dailyStat: { type: Number, default: 0 }, 9 | weeklyStat: { type: Number, default: 0 }, 10 | twoWeeklyStat: { type: Number, default: 0 }, 11 | totalStat: { type: Number, default: 0 }, 12 | 13 | }); 14 | 15 | module.exports = model("weatrix_voiceUser", schema); 16 | -------------------------------------------------------------------------------- /Global/Database/voiceUserChannel.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | channelID: String, 7 | channelData: { type: Number, default: 0 }, 8 | }); 9 | 10 | module.exports = model("weatrix_voiceUserChannel", schema); 11 | -------------------------------------------------------------------------------- /Global/Database/voiceUserParent.js: -------------------------------------------------------------------------------- 1 | const { Schema, model } = require("mongoose"); 2 | 3 | const schema = Schema({ 4 | guildID: String, 5 | userID: String, 6 | parentID: String, 7 | parentData: { type: Number, default: 0 }, 8 | }); 9 | 10 | module.exports = model("weatrix_voiceUserParent", schema); 11 | -------------------------------------------------------------------------------- /Global/Structures/Default.Clients.js: -------------------------------------------------------------------------------- 1 | const { Client, GatewayIntentBits, Partials, Collection, EmbedBuilder } = require('discord.js'); 2 | const Discord = global.Discord = require('discord.js'); 3 | const mongoose = require('mongoose'); 4 | const { bgBlue, black, green } = require("chalk"); 5 | const fs = require('fs'); 6 | const { glob } = require("glob"); 7 | const { promisify } = require("util"); 8 | const globPromise = promisify(glob); 9 | const {Guild} = require("../Config/Guild") 10 | const logs = require('discord-logs'); 11 | class Weatrix extends Client { 12 | constructor(options) { 13 | super({ 14 | options, 15 | intents: [ 16 | GatewayIntentBits.Guilds, 17 | GatewayIntentBits.GuildMembers, 18 | GatewayIntentBits.GuildBans, 19 | GatewayIntentBits.GuildEmojisAndStickers, 20 | GatewayIntentBits.GuildIntegrations, 21 | GatewayIntentBits.GuildWebhooks, 22 | GatewayIntentBits.GuildInvites, 23 | GatewayIntentBits.GuildVoiceStates, 24 | GatewayIntentBits.GuildPresences, 25 | GatewayIntentBits.GuildMessages, 26 | GatewayIntentBits.GuildMessageReactions, 27 | GatewayIntentBits.GuildMessageTyping, 28 | GatewayIntentBits.DirectMessages, 29 | GatewayIntentBits.DirectMessageReactions, 30 | GatewayIntentBits.DirectMessageTyping, 31 | GatewayIntentBits.MessageContent, 32 | ], 33 | partials: [ 34 | Partials.Message, 35 | Partials.Channel, 36 | Partials.GuildMember, 37 | Partials.Reaction, 38 | Partials.GuildScheduledEvent, 39 | Partials.User, 40 | Partials.ThreadMember, 41 | ] 42 | }) 43 | this._logger = require('../Additions/_console.additions'); 44 | require('../Additions/_general.additions') 45 | this.token = options.token 46 | this.MongoURI = options.MongoURI 47 | this.prefix = options.prefix || ["."] 48 | this.owners = options.owners || ["1003950576800899083"] 49 | this.commands = new Collection() 50 | this.aliases = new Collection() 51 | this.slashcommands = new Collection() 52 | this.invites = new Collection(); 53 | this._dirname = options._dirname; 54 | this.commandLength = global.commandLength == 0; 55 | this.on("disconnect", () => this._logger.log("Bot is disconnecting...", "disconnecting")) 56 | this.on("reconnecting", () => this._logger.log("Bot reconnecting...", "reconnecting")) 57 | this.on("error", (e) => this._logger.log(e, "error")) 58 | this.on("warn", (info) => this._logger.log(info, "warn")); 59 | logs(this); 60 | 61 | // process.on("unhandledRejection", (err) => { this._logger.log(err, "caution") }); 62 | process.on("warning", (warn) => { this._logger.log(warn, "varn") }); 63 | 64 | process.on("uncaughtException", err => { 65 | const hata = err.stack.replace(new RegExp(`${__dirname}/`, "g"), "./"); 66 | console.error("Beklenmedik Hata: ", hata); 67 | }); 68 | } 69 | 70 | async fetchCommands(active = true, slash = false) { 71 | if(slash) { 72 | const slashcommands = await globPromise(`../../Bots/${this._dirname}/_slashcommands/*/*.js`); 73 | const arrSlash = []; 74 | slashcommands.map((value) => { 75 | const file = require(value); 76 | if (!file?.name) return; 77 | this.slashcommands.set(file.name, file); 78 | if (["MESSAGE", "USER"].includes(file.type)) delete file.description; 79 | arrSlash.push(file); 80 | 81 | }); 82 | this.on("ready", async () => { 83 | this.guilds.cache.map(async (x) => { 84 | x.commands.set(arrSlash); 85 | }) 86 | this._logger.log(`${arrSlash.length} Slash Command(s) loaded.`, "ready") 87 | }) 88 | } 89 | if(!active) return; 90 | let dirs = fs.readdirSync("./_commands", { encoding: "utf8" }); 91 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} ${dirs.length} category in client loaded.`, "category"); 92 | dirs.forEach(dir => { 93 | let files = fs.readdirSync(`../../Bots/${this._dirname}/_commands/${dir}`, { encoding: "utf8" }).filter(file => file.endsWith(".js")); 94 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} ${files.length} commands loaded in ${dir} category.`, "load"); 95 | files.forEach(file => { 96 | const cmd = new (require(`../../Bots/${this._dirname}/_commands/${dir}/${file}`))(client); 97 | this.commandLength++ 98 | cmd.location = dir; 99 | if(cmd) cmd.on() 100 | }); 101 | }); 102 | } 103 | 104 | async fetchEvents(active = true) { 105 | if(!active) return; 106 | let dirs = fs.readdirSync('./_events', { encoding: "utf8" }); 107 | dirs.forEach(dir => { 108 | let files = fs.readdirSync(`../../Bots/${this._dirname}/_events/${dir}`, { encoding: "utf8" }).filter(file => file.endsWith(".js")); 109 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} ${files.length} events loaded in ${dir} category.`, "load"); 110 | files.forEach(file => { 111 | const events = new (require(`../../Bots/${this._dirname}/_events/${dir}/${file}`))(client); 112 | if(events) events.on(); 113 | }); 114 | }); 115 | } 116 | 117 | async connect(token = this.token) { 118 | 119 | if(!token) { 120 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} Tokeni girilmediğinden dolayı bot kapanıyor...`,"error"); 121 | process.exit() 122 | return; 123 | } 124 | if(this.MongoURI) { 125 | await mongoose.connect(this.MongoURI, { 126 | useNewUrlParser: true, 127 | useUnifiedTopology: true 128 | }).then(async (a) => { 129 | this._logger.log("MongoDB Bağlantısı Başarıyla Kuruldu.", "mongodb") 130 | await this.login(token) 131 | .then(async a => { 132 | this.guilds.cache.filter(guild => guild.id != Guild.ID).forEach(guild=> guild.leave().then(x=> console.log(`${guild.name}`))) 133 | }).catch(err => { 134 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} Botun tokeni doğrulanamadı. 5 Saniye sonra tekrardan denenecektir...`,"reconnecting") 135 | setTimeout(() => { 136 | this.login().catch(Weatrix => { 137 | this._logger.log(`${black.bgHex('#D9A384')(this._dirname.toUpperCase())} => Bot tokeni tamamiyle doğrulanamadı.. Bot kapanıyor...`,"error") 138 | process.exit() 139 | }) 140 | }, 5000) 141 | }) 142 | }).catch(err => { 143 | this._logger.log("MongoDB Bağlantısı Başarısız.", "error") 144 | this._logger.log(err, "error") 145 | 146 | process.exit(); 147 | }) 148 | } 149 | Date.prototype.toTurkishFormatDate = function (format) { 150 | let date = this, 151 | day = date.getDate(), 152 | weekDay = date.getDay(), 153 | month = date.getMonth(), 154 | year = date.getFullYear(), 155 | hours = date.getHours(), 156 | minutes = date.getMinutes(), 157 | seconds = date.getSeconds(); 158 | let monthNames = new Array("Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"); 159 | let dayNames = new Array("Pazar", "Pazartesi", "Salı", "Çarşamba", "Perşembe", "Cuma", "Cumartesi"); 160 | if (!format) { 161 | format = "dd MM yyyy - HH:ii:ss"; 162 | }; 163 | format = format.replace("mm", month.toString().padStart(2, "0")); 164 | format = format.replace("MM", monthNames[month]); 165 | if (format.indexOf("yyyy") > -1) { 166 | format = format.replace("yyyy", year.toString()); 167 | } else if (format.indexOf("yy") > -1) { 168 | format = format.replace("yy", year.toString().substr(2, 2)); 169 | }; 170 | format = format.replace("dd", day.toString().padStart(2, "0")); 171 | format = format.replace("DD", dayNames[weekDay]); 172 | if (format.indexOf("HH") > -1) format = format.replace("HH", hours.toString().replace(/^(\d)$/, '0$1')); 173 | if (format.indexOf("ii") > -1) format = format.replace("ii", minutes.toString().replace(/^(\d)$/, '0$1')); 174 | if (format.indexOf("ss") > -1) format = format.replace("ss", seconds.toString().replace(/^(\d)$/, '0$1')); 175 | return format; 176 | }; 177 | Array.prototype.chunk = function (chunk_size) { 178 | let myArray = Array.from(this); 179 | let tempArray = []; 180 | for (let index = 0; index < myArray.length; index += chunk_size) { 181 | let chunk = myArray.slice(index, index + chunk_size); 182 | tempArray.push(chunk); 183 | } 184 | return tempArray; 185 | }; 186 | 187 | } 188 | 189 | } 190 | 191 | module.exports = { Weatrix } -------------------------------------------------------------------------------- /Global/Structures/Default.Commands.js: -------------------------------------------------------------------------------- 1 | class Command { 2 | constructor(client, { 3 | name = null, 4 | description = "Açıklama Belirtilmemiş.", 5 | usage = "Kullanım Belirtilmemiş.", 6 | category = "Other", 7 | aliases = [], 8 | permissions = [], 9 | enabled = true, 10 | cooldown = null, 11 | guildOwner= false, 12 | developer = false, 13 | location = undefined, 14 | }){ 15 | this.client = client; 16 | this.name = name; 17 | this.description = description; 18 | this.usage = usage; 19 | this.aliases = aliases; 20 | this.category = category; 21 | this.enabled = enabled; 22 | this.guildOwner = guildOwner; 23 | this.developer = developer; 24 | this.permissions = permissions; 25 | this.onRequest = this.onRequest; 26 | this.cooldown = cooldown; 27 | this.location = location 28 | if(!this.name) throw new Error('Komut ismi belirlenmediği için bu komut atlandı.'); 29 | if(this.onLoad) this.onLoad(this.client); 30 | } 31 | 32 | on() { 33 | if(!this.enabled) return; 34 | this.client.commands.set(this.name, this); 35 | if(this.aliases && this.aliases.length > 0) this.aliases.forEach(alias => this.client.aliases.set(alias, this)); 36 | } 37 | 38 | } 39 | 40 | module.exports = { Command }; -------------------------------------------------------------------------------- /Global/Structures/Default.Events.js: -------------------------------------------------------------------------------- 1 | class Event { 2 | constructor(client, { 3 | name = null, 4 | enabled = true 5 | }){ 6 | this.client = client; 7 | this.name = name; 8 | this.enabled = enabled; 9 | if(!this.name) throw new Error('Komut ismi belirlenmediği için bu komut atlandı.'); 10 | } 11 | 12 | on() { 13 | if(!this.enabled) return; 14 | this.client.on(this.name, this.onLoad); 15 | } 16 | 17 | } 18 | 19 | module.exports = { Event }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # v14-supervisor-bot Setup kurulumlu 2 | - V14 Supervisor Setuplu Davet Sistemli 3 | - Hem Public Tagı Hem Ekip Taglı (Coklu TAG ve ETİKET TAGI) 4 | - Belki Moderasyon Sistemleri eklerim (Eklendi) 5 | - Ulaşmak için✩ Weatrix?#1927 veya https://discord.gg/Clydev 6 | - PAYLAŞILMASI İÇİN YAPILDI 7 | - Star gelirse stat yapicam toplu bot olur istee asko 8 | 9 | # Bilgi 10 | * V14 GUARD MOD STAT YÖNETİM İSTEK ALTYAPILAR UYGUN FİYATA SATILIK KAÇIRMAYIN 11 | * Ücretli Bot Veya Altyapı İçin [✩ Weatrix?#1927](https://discord.com/users/1003950576800899083) 12 | * 1 Saate Paylaşıcam 13 | 14 | # Önemli !!! 15 | 16 | * Yardımları İçin [luhux#1337](https://discord.com/users/341592492224806914) Teşekkürler 17 | 18 | # Kurulum 19 | 20 | * İlk olarak bilgisayarınıza [Node JS](https://nodejs.org/en/) indirin. 21 | * Daha sonra bir [MongoDB](http://mongodb.com) hesabı oluşturun ve connection linki alın. 22 | * Sonra klasörün içerisinde bir `powershell` ya da `cmd` penceresi açın. 23 | * ```npm install``` yazarak tüm modülleri kurun. 24 | * ```npm install pm2 -g``` yazarak pm2 modülünü indirin 25 | * .setup durum yazıp kurulum hakkında bilgi alın 26 | * Kurulum bittikten sonra ```pm2 start``` başlatın. Tebrikler! 27 | 28 | ![image](https://user-images.githubusercontent.com/74924310/226172962-1929adfb-a048-475a-bf8d-3ebcef95f027.png) 29 | ![image](https://user-images.githubusercontent.com/74924310/226172993-21cbc161-49fb-4df5-aa39-c68d5961f919.png) 30 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/f37bcd53-4330-408b-92c6-db525c98b017) 31 | ![image](https://user-images.githubusercontent.com/74924310/226173065-4018e6ca-b86b-44de-8a01-212b3fb25f3e.png) 32 | ![image](https://user-images.githubusercontent.com/74924310/226173248-ca8fb5bd-aad0-49bd-8072-ed174abaf9c3.png) 33 | ![image](https://user-images.githubusercontent.com/74924310/226173289-c767eef3-26d7-4e8c-8510-a0b93bb602e2.png) 34 | 35 | # Moderasyon Görselleri 36 | 37 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/6f097948-b616-4bde-98c0-bd29a6f63221) 38 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/6f39dee2-1152-4e53-8de7-23cf7f47348d) 39 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/80a8efa1-50a6-431d-841a-e04db33cf658) 40 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/c7b1c3d1-8a6d-42ec-a8cf-9a4af2c83fed) 41 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/e5483e58-75b7-46d3-9393-989ea7f30484) 42 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/54681bcc-150e-4158-b8d2-4f6237cc3a4f) 43 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/6e8c5d14-96ce-48f9-9435-9421d6cfd010) 44 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/95d03c11-98cd-4378-9330-df77b6018873) 45 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/0b602859-eee9-4e62-9034-5d7c5cfda9cb) 46 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/7bedf4f9-3153-4b25-9476-42b4f118664d) 47 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/d8f3a12f-e67b-44e3-9d4a-309c2de5ab95) 48 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/af18530a-4fbd-4a60-8c6b-173a7da7b146) 49 | ![image](https://github.com/Weatrixcik/v14-supervisor-bot/assets/121248383/ebae5f9f-f67d-4e47-9d2a-8e2fc3fa78c2) 50 | 51 | -------------------------------------------------------------------------------- /ecosystem.config.js: -------------------------------------------------------------------------------- 1 | 2 | let sunucu = "Deneme" 3 | module.exports = { 4 | apps: [ 5 | { 6 | name: sunucu+"-Supervisor", 7 | namespace: "Weatrix", 8 | script: 'main.js', 9 | watch: false, 10 | exec_mode: "cluster", 11 | max_memory_restart: "2G", 12 | cwd: "./Bots/Main" 13 | } 14 | ] 15 | }; 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | {"dependencies":{"@discordjs/voice":"^0.6.0","axios":"^0.27.2","body-parser":"^1.20.1","canvacord":"^5.4.6","chalk":"^4.1.2","chartjs-node-canvas":"^4.1.6","chartjs-to-image":"^1.1.0","child_process":"^1.0.2","cookie-parser":"^1.4.6","cron":"^2.1.0","crypto":"^1.0.1","discord-banners":"^1.0.1","discord-canvas":"^1.5.2","discord-logs":"^2.2.1","discord.js":"^14.0.3","ejs":"^3.1.8","express":"^4.18.2","express-session":"^1.17.3","ffmpeg-static":"^5.1.0","five.db":"^0.0.8","fs":"^0.0.1-security","glob":"^8.0.3","libsodium-wrappers":"^0.7.10","moment":"^2.29.4","moment-duration-format":"^2.3.2","moment-timezone":"^0.5.34","mongoose":"^6.0.12","ms":"^2.1.3","node-fetch":"^2.6.7","node-superfetch":"^0.2.3","openai":"^3.1.0","opusscript":"^0.0.8","parse-ms":"^3.0.0","passport":"^0.6.0","passport-discord":"^0.1.4","path":"^0.12.7","pm2":"^5.2.0","request":"^2.88.2","util":"^0.12.4"}} -------------------------------------------------------------------------------- /pm2log.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color d 3 | cls 4 | :a 5 | pm2 log -------------------------------------------------------------------------------- /restart.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color d 3 | cls 4 | :a 5 | pm2 restart ecosystem.config.js 6 | goto a -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color d 3 | cls 4 | :a 5 | pm2 start ecosystem.config.js 6 | goto a -------------------------------------------------------------------------------- /stop.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color d 3 | cls 4 | :a 5 | pm2 stop ecosystem.config.js 6 | goto a --------------------------------------------------------------------------------