├── croxydb └── croxydb.json ├── config.json ├── commands ├── kurucu-kim.js ├── ping.js ├── random-anime.js ├── level.js ├── özel-oda-sil.js ├── görsel-engel-kapat.js ├── hg-bb-kapat.js ├── oto-tag-kapat.js ├── oto-rol-kapat.js ├── emojiler.js ├── afk.js ├── sunucupp.js ├── yasaklı-kelime-sıfırla.js ├── kanal-aç.js ├── kanal-kilitle.js ├── kayıt-isim-sıfırla.js ├── unban.js ├── level-sıralaması.js ├── sil.js ├── forceban.js ├── rol-oluştur.js ├── level-log.js ├── oto-tag.js ├── level-arkaplan.js ├── mod-log.js ├── ban-list.js ├── görsel-engel.js ├── yasaklı-kelime.js ├── hg-bb.js ├── resimli-giriş-çıkış.js ├── kick.js ├── kullanıcıbilgi.js ├── timeout-sistemi-sıfırla.js ├── yavaş-mod.js ├── rol-ver.js ├── rol-al.js ├── kanal-açıklama.js ├── captcha-sistemi-sıfırla.js ├── mute-ayar.js ├── özel-oda-kullanıcı-menü.js ├── level-add.js ├── oto-rol.js ├── level-remove.js ├── kayıt-sistemi-kapat.js ├── ban.js ├── davet.js ├── banner.js ├── sunucukur.js ├── destek-sistemi-sıfırla.js ├── spotify.js ├── buton-rol.js ├── oylama.js ├── avatar.js ├── sa-as.js ├── say.js ├── level-sistemi.js ├── özel-oda-sistemi.js ├── giriş-çıkış-mesaj.js ├── captcha-görüntüle.js ├── capslock-koruma.js ├── hesap-koruma.js ├── küfür-engel.js ├── reklam-engel.js ├── captcha-sistemi.js ├── timeout-sistemi.js ├── mute.js ├── kayıt-sistemi.js ├── istatistik.js ├── yardım.js ├── sunucubilgi.js ├── ayarlar.js ├── destek-sistemi.js ├── untimeout.js ├── botlist.js └── timeout.js ├── README.md ├── helpers └── rcapchta.js ├── events ├── guildDelete.js ├── guildCreate.js ├── roleDelete.js ├── roleCreate.js ├── messageDelete.js ├── ready.js ├── messageUpdate.js ├── voiceStateUpdate.js ├── guildMemberRemove.js ├── messageCreate.js └── guildMemberAdd.js ├── package.json ├── LICENSE ├── function └── functions.js ├── index.js └── func ├── AddRank.js ├── RemoveRank.js └── Rank.js /croxydb/croxydb.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "token":"token", 3 | "log":"logid" 4 | } 5 | -------------------------------------------------------------------------------- /commands/kurucu-kim.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "kurucu", 5 | description: "💙 Sunucunun kurucusunu görürsün!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | const owner = interaction.guild.members.cache.get(interaction.guild.ownerId); 12 | interaction.reply(owner.user.tag) 13 | } 14 | 15 | }; 16 | -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "ping", 5 | description: "💙 Botun pingini görürsün!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | interaction.reply({ 12 | embeds: [{ 13 | image: { 14 | url: 'https://dummyimage.com/2000x500/33363c/ffffff&text='+ client.ws.ping +'%20MS', 15 | }, 16 | 17 | }] 18 | }) 19 | 20 | } 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /commands/random-anime.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const randomanime = require("random-anime") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "random-anime", 6 | description: "💙 Random anime atar.", 7 | type: 1, 8 | options: [], 9 | 10 | run: async(client, interaction) => { 11 | 12 | 13 | const anime = randomanime.anime(); 14 | const embed = new EmbedBuilder() 15 | .setImage(anime) 16 | .setColor("Random") 17 | interaction.reply({embeds: [embed]}) 18 | } 19 | 20 | }; -------------------------------------------------------------------------------- /commands/level.js: -------------------------------------------------------------------------------- 1 | const { AttachmentBuilder, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level", 5 | description: "💙 Seviyenizi görüntüleyin.", 6 | type: 1, 7 | options: [], 8 | 9 | 10 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 11 | 12 | const { user, guild, options } = interaction; 13 | 14 | const level = db.fetch(`levelPos_${user.id}${guild.id}`) || 0; 15 | const xp = db.fetch(`xpPos_${user.id}${guild.id}`) || 0; 16 | 17 | return Rank(interaction, String(xp), String(level), "100") 18 | 19 | } 20 | }; 21 | -------------------------------------------------------------------------------- /commands/özel-oda-sil.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"özel-oda-sil", 5 | description: '💙 Özel odanı silersin.', 6 | type:1, 7 | options: [], 8 | run: async(client, interaction) => { 9 | 10 | let odasi = db.fetch(`oda_${interaction.user.id}`) 11 | if (!odasi) return interaction.reply("<:carpi:1040649840394260510> | Sana ait bir oda bulamadım!") 12 | interaction.reply("<:tik:1039607067729727519> | Odan Başarıyla Silindi!") 13 | interaction.guild.channels.delete(odasi) 14 | } 15 | 16 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # :hammer: | Başlatma 2 | - İlk öncelikle projeyi indirin. (**git** veya **manuel indirme**) 3 | - Projeyi açıp `config.json` dosyasındaki gerekli bilgileri doldurunuz. 4 | - Daha sonra ana `CMD`'yi açıp şu kodları yazın; `npm install && npm start` 5 | - Tebrikler, artık botunuz aktiftir :tada: 6 | 7 | # :tada: | Raven's 8 | - Bir hata veya bir sorunla mı karşılaştın? o zaman [**Raven's**](https://discord.gg/altyapilar) topluluk sunucusuna katıl. 9 | 10 | # ⚠ | Uyarı 11 | - Bu projenin alınıp başka bir yerde paylaşılması veya sahiplenmesi katiyen yasaktır, `MIT` lisansı ile korunmaktadır. 12 | - Kodlar şahsime aittir. 13 | -------------------------------------------------------------------------------- /helpers/rcapchta.js: -------------------------------------------------------------------------------- 1 | function rcaptcha(text) { 2 | const Canvas = require('canvas'); 3 | 4 | const canvas = Canvas.createCanvas(900, 300); 5 | const ctx = canvas.getContext('2d'); 6 | 7 | ctx.fillStyle = "#000000"; 8 | ctx.textAlign = "center"; 9 | ctx.font = text.length >= 10 ? '900 100px Nunito' : text.length <= 6 ? '900 160px Nunito' : '900 140px Nunito'; 10 | ctx.lineWidth = 5; 11 | ctx.fillText(text, canvas.width / 2, canvas.height / 1.7); 12 | ctx.strokeStyle = "#ffffff"; 13 | ctx.strokeText(text, canvas.width / 2, canvas.height / 1.7); 14 | 15 | return canvas.toBuffer(); 16 | } 17 | 18 | module.exports = rcaptcha; 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /commands/görsel-engel-kapat.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"görsel-engel-kapat", 5 | description: '💙 Görsel engel sistemini kapatırsın!', 6 | type:1, 7 | options: [], 8 | run: async(client, interaction) => { 9 | 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 11 | db.delete(`görselengel.${interaction.guild.id}`) 12 | interaction.reply("<:tik:1039607067729727519> | Görsel Engel başarıyla kapatıldı!") 13 | } 14 | 15 | }; -------------------------------------------------------------------------------- /commands/hg-bb-kapat.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"giriş-çıkış-kapat", 5 | description: '💙 Giriş Çıkış Sistemini kapatırsın!', 6 | type:1, 7 | options: [], 8 | run: async(client, interaction) => { 9 | 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 11 | db.delete(`hgbb_${interaction.guild.id}`) 12 | interaction.reply("<:tik:1039607067729727519> | Hoşgeldin Güle Güle Kanalı Başarıyla Sıfırlandı!") 13 | } 14 | 15 | }; 16 | -------------------------------------------------------------------------------- /commands/oto-tag-kapat.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"oto-tag-kapat", 5 | description: '💙 Oto-tag sistemini kapatırsın!', 6 | type:1, 7 | options: [], 8 | run: async(client, interaction) => { 9 | 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageNicknames)) return interaction.reply({content: "<:carpi:1040649840394260510> | İsimleri Yönet Yetkin Yok!", ephemeral: true}) 11 | db.delete(`ototag_${interaction.guild.id}`) 12 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla sistemi sıfırladım!"}) 13 | } 14 | 15 | }; 16 | -------------------------------------------------------------------------------- /commands/oto-rol-kapat.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"oto-rol-kapat", 5 | description: '💙 Oto-Rol Sistemini kapatır!', 6 | type:1, 7 | options: [], 8 | run: async(client, interaction) => { 9 | 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 11 | db.delete(`otorol_${interaction.guild.id}`) 12 | db.delete(`botrol_${interaction.guild.id}`) 13 | interaction.reply({content: "<:tik:1039607067729727519> | Otorol Başarıyla kapatıldı!"}) 14 | } 15 | 16 | }; 17 | -------------------------------------------------------------------------------- /commands/emojiler.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "emojiler", 5 | description: "💙 Sunucudaki Emojileri Görürsün!!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | 12 | let animEmotes = [], staticEmotes = []; 13 | interaction.guild.emojis.cache.forEach((x) => { 14 | x.animated ? animEmotes.push(``) : staticEmotes.push(`<:${x.name}: ${x.id}>`); 15 | }) 16 | const embed = new EmbedBuilder() 17 | .setTimestamp() 18 | .setColor('#ff0000') 19 | .setTitle(`Silex - Emoji List!`) 20 | .setDescription(`${animEmotes} ${staticEmotes}`) 21 | interaction.reply({embeds: [embed]}) 22 | } 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /events/guildDelete.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder } = require("discord.js") 3 | 4 | module.exports = { 5 | name: Discord.Events.GuildDelete, 6 | 7 | run: async(client, guild) => { 8 | const kanal = "1066724841341849650"; 9 | 10 | const owner = await client.users.fetch(guild.ownerId) 11 | const embed = new EmbedBuilder() 12 | .setDescription(`Bir Sunucudan Atıldım! 13 | Sunucu İsmi: ${guild.name} 14 | Sunucu Kimliği: ${guild.id} 15 | Kurucu: ${owner.tag} 16 | Kurucu Kimliği: ${owner.id} 17 | Üye Sayısı: ${guild.memberCount}`) 18 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 19 | 20 | 21 | // 22 | } 23 | } -------------------------------------------------------------------------------- /commands/afk.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "afk", 5 | description: "💙 Afk Olursun!", 6 | type: 1, 7 | options: [ 8 | { 9 | name:"sebep", 10 | description:"Afk Olma Sebebini Gir!", 11 | type:3, 12 | required:true 13 | }, 14 | ], 15 | 16 | run: async(client, interaction) => { 17 | const sebep = interaction.options.getString('sebep') 18 | db.set(`afk_${interaction.user.id}`, sebep); 19 | db.set(`afkDate_${interaction.user.id}`, { date: Date.now() } ) 20 | interaction.reply("<:tik:1039607067729727519> | Başarıyla Afk Oldun!") 21 | 22 | 23 | 24 | } 25 | 26 | }; 27 | -------------------------------------------------------------------------------- /commands/sunucupp.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField, ActionRowBuilder, ButtonBuilder } = require("discord.js"); 2 | module.exports = { 3 | name:"sunucupp", 4 | description: '💙 Sunucunun avatarına bakarsın!', 5 | type:1, 6 | options:[], 7 | 8 | run: async(client, interaction) => { 9 | 10 | interaction.reply({ 11 | embeds:[ 12 | { 13 | title: `${interaction.guild.name} adlı sunucunun avatarı:`, 14 | description: `[Link](${interaction.guild.iconURL({ dynamic: true })})`, 15 | image: {url: interaction.guild.iconURL({ dynamic: true })} 16 | } 17 | ], 18 | 19 | }) 20 | } 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /commands/yasaklı-kelime-sıfırla.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const db = require('croxydb') 4 | module.exports = { 5 | name:"yasaklı-kelime-sıfırla", 6 | description: '💙 Yasaklı kelimeyi sıfırlarsınız!', 7 | type:1, 8 | options: [], 9 | run: async(client, interaction) => { 10 | 11 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageMessages)) return interaction.reply({content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!", ephemeral: true}) 12 | db.delete(`yasaklı_kelime_${interaction.guild.id}`) 13 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla yasaklı kelime sistemini sıfırladım!"}) 14 | } 15 | 16 | }; -------------------------------------------------------------------------------- /commands/kanal-aç.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name: "kanal-aç", 5 | description: "💙 Kanalı mesaj gönderimine açar!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları yönet yetkin yok!", ephemeral: true}) 11 | interaction.channel.permissionOverwrites.edit(interaction.guild.id, { 12 | SendMessages: true, 13 | }); 14 | interaction.reply({content: '<:tik:1039607067729727519> | Kanal başarılı bir şekilde mesaj gönderimine açıldı!'}) 15 | } 16 | 17 | }; -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "silex", 3 | "version": "9.9.9", 4 | "description": "Silex Bot Altyapı", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "author": "araschain", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@discordjs/rest": "^1.1.0", 13 | "canvas": "^2.10.2", 14 | "croxydb": "^0.0.7", 15 | "discord-api-types": "^0.37.5", 16 | "discord.js": "^14.11.0", 17 | "moment": "^2.29.4", 18 | "moment-duration-format": "^2.3.2", 19 | "ms": "^2.1.3", 20 | "node-fetch": "^3.3.0", 21 | "node-superfetch": "^0.3.3", 22 | "os": "^0.1.2", 23 | "random-anime": "^1.0.6", 24 | "request": "^2.88.2", 25 | "rhino-ms": "^0.4.0" 26 | }, 27 | "engines": { 28 | "node": "16.x" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /events/guildCreate.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder } = require("discord.js") 3 | const db = require("croxydb") 4 | 5 | module.exports = { 6 | name: Discord.Events.GuildCreate, 7 | 8 | run: async(client, guild) => { 9 | 10 | const kanal = "1066724841341849650"; 11 | 12 | const owner = await client.users.fetch(guild.ownerId) 13 | const embed = new EmbedBuilder() 14 | .setDescription(`Bir Sunucuya Eklendim! 15 | Sunucu İsmi: ${guild.name} 16 | Sunucu Kimliği: ${guild.id} 17 | Kurucu: ${owner.tag} 18 | Kurucu Kimliği: ${owner.id} 19 | Üye Sayısı: ${guild.memberCount}`) 20 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 21 | 22 | // 23 | } 24 | } -------------------------------------------------------------------------------- /commands/kanal-kilitle.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name: "kanal-kilitle", 5 | description: "💙 Kanalı mesaj gönderilmesine kapatır.!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları yönet yetkin yok!", ephemeral: true}) 11 | interaction.channel.permissionOverwrites.edit(interaction.guild.id, { 12 | SendMessages: false, 13 | }); 14 | interaction.reply({content: '<:tik:1039607067729727519> | Kanal başarılı bir şekilde mesaj gönderimine kapatıldı!'}) 15 | } 16 | 17 | }; -------------------------------------------------------------------------------- /commands/kayıt-isim-sıfırla.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | 3 | module.exports = { 4 | name: "kayıt-isim-sıfırla", 5 | description: "💙 Kayıt ismini sıfırlarsın!", 6 | options: [], 7 | 8 | run: async(client, interaction) => { 9 | 10 | const findDatabase = db.fetch(`kayıtlıuye_${interaction.user.id}`) ? true : false; 11 | 12 | if(findDatabase) { 13 | db.delete(`kayıtlıuye_${interaction.user.id}`) 14 | interaction.member.setNickname(`${interaction.user.username}`) 15 | 16 | return interaction.reply({ embeds: [{ description: "<:tik:1039607067729727519> | İsminiz başarıyla sıfırlandı." }] }) 17 | } else { 18 | return interaction.reply({ embeds: [{ description: "<:carpi:1040649840394260510> | İsminiz kayıt sisteminde kayıtlı değildir." }] }) 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /events/roleDelete.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | const { PermissionFlagsBits, EmbedBuilder, Events } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: Events.GuildRoleDelete, 6 | 7 | run: async(client, role) => { 8 | let kanal = db.get(`modlogK_${role.guild.id}`) 9 | try { 10 | const embed = new EmbedBuilder() 11 | .setColor("Random") 12 | .setDescription(`Bir rol silindi!`) 13 | .addFields( 14 | { name: "**Silinen Rol**", value: `\`${role.name}\``, inline: false }, 15 | { name: "**Rol Rengi Kodu**", value: `${role.hexColor}`, inline: false }, 16 | { name: "**Silindiği Zaman**", value: ``, inline: true } 17 | ) 18 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 19 | } catch(err) { } 20 | } 21 | } -------------------------------------------------------------------------------- /events/roleCreate.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | const { PermissionFlagsBits, EmbedBuilder, Events } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: Events.GuildRoleCreate, 6 | 7 | run: async(client, role) => { 8 | let kanal = db.get(`modlogK_${role.guild.id}`) 9 | try { 10 | const embed = new EmbedBuilder() 11 | .setColor("Random") 12 | .setDescription(`Yeni bir rol oluşturuldu!`) 13 | .addFields( 14 | { name: "**Rol**", value: `\`${role.name}\``, inline: false }, 15 | { name: "**Rol Rengi Kodu**", value: `${role.hexColor}`, inline: false }, 16 | { name: "**Oluşturulduğu Zaman**", value: ``, inline: true } 17 | ) 18 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 19 | } catch(err) { } 20 | } 21 | } -------------------------------------------------------------------------------- /commands/unban.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | module.exports = { 3 | name:"unban", 4 | description: '💙 Kullanıcının Yasağını Kaldırırsın!', 5 | type:1, 6 | options: [ 7 | { 8 | name:"id", 9 | description:"Kullanıcı ID Girin!", 10 | type:3, 11 | required:true 12 | }, 13 | ], 14 | run: async(client, interaction) => { 15 | 16 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.BanMembers)) return interaction.reply({content: "<:carpi:1040649840394260510> | Üyeleri Yasakla Yetkin Yok!", ephemeral: true}) 17 | const user = interaction.options.getString('id') 18 | 19 | interaction.guild.members.unban(user) 20 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla Üyenin Yasağını Kaldırdım."}) 21 | } 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /events/messageDelete.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | const { PermissionFlagsBits, EmbedBuilder, Events } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: Events.MessageDelete, 6 | 7 | run: async(client, message) => { 8 | let kanal = db.get(`modlogK_${message.guild.id}`) 9 | try { 10 | const embed = new EmbedBuilder() 11 | .setColor("Random") 12 | .setDescription(`Yeni bir mesaj silindi!`) 13 | .addFields( 14 | { name: "**Kullanıcı Tag**", value: message.author.tag, inline: false }, 15 | { name: "**ID**", value: message.author.id, inline: false }, 16 | { name: "**Silinen Mesaj**", value: "```" + message.content + "```", inline: false }, 17 | { name: "**Silindiği Zaman**", value: ``, inline: true } 18 | ) 19 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 20 | } catch(err) { } 21 | } 22 | } -------------------------------------------------------------------------------- /commands/level-sıralaması.js: -------------------------------------------------------------------------------- 1 | const { AttachmentBuilder, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-sıralaması", 5 | description: "💙 Sunucunun level sıralamasını görüntüleyin.", 6 | type: 1, 7 | options: [], 8 | 9 | 10 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 11 | 12 | const { user, guild, options } = interaction; 13 | 14 | let sayi = 1; 15 | 16 | const content = client.users.cache.filter(x => (db.fetch(`levelPos_${x.id}${guild.id}`))|| 0) 17 | .sort((x,y) => (db.fetch(`levelPos_${y.id}${guild.id}`)|| 0) - (db.fetch(`levelPos_${x.id}${guild.id}`))|| 0) 18 | .map((x) => { 19 | return `${sayi++}. <@${x.id}> **|** ${db.fetch(`levelPos_${x.id}${guild.id}`) || 0} Seviye` 20 | }); 21 | 22 | return interaction.reply({ embeds: [{ description: `${content.slice(0, 10).join("\n")}`}] }) 23 | 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder } = require("discord.js") 3 | const db = require("croxydb") 4 | 5 | module.exports = { 6 | name: Discord.Events.ClientReady, 7 | 8 | run: async(client, message) => { 9 | console.log(`${client.user.tag} Aktif!`); 10 | const activities = [ 11 | "🎫 | Destek sistemi ile sunucuna destek sistemi kur!", 12 | "👮🏽‍♂️ | Captcha sistemi ile sunucunu güvene al!", 13 | "🌟 | Botlist sistemi ile sunucunu kolaylaştır!", 14 | "💙 | Moderasyon komutları ile sunucunu çok daha pratik yap!", 15 | "➕ | Yapay zeka kayıt sistemi ile sunucuna bir renk kat!" 16 | ] 17 | 18 | setInterval(async() => { 19 | client.user.setPresence({ activities: [{ name: `${activities[Math.floor(Math.random() * activities.length)]}` }], status: 'idle' }); 20 | }, 1000 * 15); 21 | db.set(`botAcilis_`, Date.now()) 22 | 23 | 24 | } 25 | } -------------------------------------------------------------------------------- /commands/sil.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | module.exports = { 3 | name:"sil", 4 | description: '💙 Sohbette istediğin kadar mesajı silersin!', 5 | type:1, 6 | options: [ 7 | { 8 | name:"sayı", 9 | description:"Temizlencek Mesaj Sayısını Girin.", 10 | type:3, 11 | required:true 12 | }, 13 | 14 | ], 15 | run: async(client, interaction) => { 16 | 17 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageMessages)) return interaction.reply({content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!", ephemeral: true}) 18 | const sayi = interaction.options.getString('sayı') 19 | interaction.channel.bulkDelete(sayi) 20 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla belirtilen adet mesajı sildim."}) 21 | } 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /commands/forceban.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"forceban", 5 | description: '💙 ID ile kullanıcı yasaklarsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"id", 10 | description:"Lütfen bir kullanıcı ID girin!", 11 | type:3, 12 | required:true 13 | }, 14 | 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.BanMembers)) return interaction.reply({content: "<:carpi:1040649840394260510> | Üyeleri Yasakla Yetkin Yok!", ephemeral: true}) 20 | const id = interaction.options.getString('id') 21 | interaction.guild.members.ban(id).catch(() => {}) 22 | interaction.reply(id+ "<:tik:1039607067729727519> | IDLI Kullanıcı Başarıyla Yasaklandı!") 23 | } 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /commands/rol-oluştur.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"rol-oluştur", 5 | description: '💙 Yeni Bir Rol Oluşturursun!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"isim", 10 | description:"Oluşturulucak Rolün Adı!", 11 | type:3, 12 | required:true 13 | }, 14 | 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 20 | const isim = interaction.options.getString('isim') 21 | interaction.guild.roles.create({name: isim}) 22 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla **"+isim+"** Rolü Oluşturuldu."}) 23 | } 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /commands/level-log.js: -------------------------------------------------------------------------------- 1 | const { AttachmentBuilder, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-log", 5 | description: "Level logu ayarlarsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | name: "kanal", 10 | description: "Level log kanalını ayarlarsın!", 11 | type: 7, 12 | required: true, 13 | channel_types: [0] 14 | }, 15 | ], 16 | 17 | 18 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 19 | 20 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 21 | const kanal2 = interaction.options.getChannel('kanal') 22 | db.set(`level_log_${interaction.guild.id}`, kanal2.id) 23 | interaction.reply("<:tik:1039607067729727519> | Level log kanalı <#"+kanal2+"> olarak ayarlandı!") 24 | } 25 | }; 26 | -------------------------------------------------------------------------------- /commands/oto-tag.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"oto-tag", 5 | description: '💙 Sunucuya giren üyelere otomatik tag verir!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"tag", 10 | description:"Lütfen bir tag girin!", 11 | type:3, 12 | required:true 13 | }, 14 | 15 | ], 16 | run: async(client, interaction) => { 17 | 18 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageNicknames)) return interaction.reply({content: "<:carpi:1040649840394260510> | İsimleri Yönet Yetkin Yok!", ephemeral: true}) 19 | const tag = interaction.options.getString('tag') 20 | db.set(`ototag_${interaction.guild.id}`, tag) 21 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla tagı "+tag+" olarak ayarladım!"}) 22 | } 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /commands/level-arkaplan.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-arka-plan", 5 | description: "💙 Levelinizin arka planını ayarlayın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "link", 11 | description: "Link yaz!", 12 | required: true 13 | } 14 | ], 15 | 16 | 17 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 18 | 19 | const { user, guild, options } = interaction; 20 | 21 | const link = options.getString("link") 22 | 23 | if(!interaction.member.permissions.has(PermissionsBitField.ManageMessages)) { 24 | return interaction.followUp({ content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!" }) 25 | } 26 | 27 | db.set(`arkaplan_${interaction.guild.id}`, link) 28 | 29 | interaction.reply("<:tik:1039607067729727519> | Başarılı bir şekilde arka plan ayarlandı!") 30 | 31 | } 32 | }; 33 | -------------------------------------------------------------------------------- /commands/mod-log.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"mod-log", 5 | description: '💙 Moderasyon kanalını ayarlarsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name: "kanal", 10 | description: "Mod logunu ayarlarsın!", 11 | type: 7, 12 | required: true, 13 | channel_types: [0] 14 | }, 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1039607044036116581> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 20 | const kanal2 = interaction.options.getChannel('kanal') 21 | db.set(`modlogK_${interaction.guild.id}`, kanal2.id) 22 | interaction.reply("<:tik:1039607067729727519> | Moderasyon kanalı <#"+kanal2+"> olarak ayarlandı!") 23 | } 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /commands/ban-list.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "ban-list", 5 | description: "💙 Banlı Olan Kullanıcıları Görürsün!", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | var userlist = interaction.guild.bans.fetch() 12 | userlist.then(collection => { 13 | if(collection.first() == null){ 14 | 15 | const embed = new EmbedBuilder() 16 | .setDescription("Sunucunuzda Banlanan Kimse Yok!") 17 | .setColor("Red") 18 | .setTitle("<:carpi:1040649840394260510> Hata!") 19 | interaction.reply({embeds: [embed]}) 20 | 21 | } else { 22 | const data = collection.map(mr => "`"+mr.user.username+"`").slice(0, 60).join(", ") 23 | const embed2 = new EmbedBuilder() 24 | .setTitle("Silex - Ban List") 25 | .setColor("#ff0000") 26 | .setDescription(data) 27 | interaction.reply({embeds: [embed2]}) 28 | } 29 | 30 | }) 31 | } 32 | 33 | }; 34 | -------------------------------------------------------------------------------- /commands/görsel-engel.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"görsel-engel", 5 | description: '💙 Görsel engel sistemini ayarlarsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name: "kanal", 10 | description: "Görsel engel kanalını ayarlarsın!", 11 | type: 7, 12 | required: true, 13 | channel_types: [0] 14 | }, 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 20 | const kanal2 = interaction.options.getChannel('kanal') 21 | db.set(`görselengel.${interaction.guild.id}`, kanal2.id) 22 | interaction.reply("<:tik:1039607067729727519> | <#"+kanal2+"> kanalında sadece gif ve resimlere izin vereceğim!") 23 | } 24 | 25 | }; -------------------------------------------------------------------------------- /commands/yasaklı-kelime.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const db = require('croxydb') 4 | module.exports = { 5 | name:"yasaklı-kelime", 6 | description: '💙 Yasaklı kelimeyi ayarlarsınız!', 7 | type:1, 8 | options: [ 9 | { 10 | name:"kelime", 11 | description:"Lütfen bir kelime girin!", 12 | type:3, 13 | required:true 14 | }, 15 | 16 | ], 17 | 18 | run: async(client, interaction) => { 19 | 20 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageMessages)) return interaction.reply({content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!", ephemeral: true}) 21 | const kelime = interaction.options.getString('kelime') 22 | db.push(`yasaklı_kelime_${interaction.guild.id}`, kelime) 23 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla yasaklı kelimeyi **"+kelime+"** olarak ayarladım!"}) 24 | } 25 | 26 | }; -------------------------------------------------------------------------------- /commands/hg-bb.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"giriş-çıkış", 5 | description: '💙 Giriş Çıkış Sistemini Ayarlarsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name: "kanal", 10 | description: "Giriş çıkış kanalını ayarlarsın!", 11 | type: 7, 12 | required: true, 13 | channel_types: [0] 14 | }, 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 20 | const kanal2 = interaction.options.getChannel('kanal') 21 | db.set(`hgbb_${interaction.guild.id}`, { channel: kanal2.id, } ) 22 | interaction.reply("<:tik:1039607067729727519> | Hoşgeldin Güle Güle Kanalı Başarıyla <#"+kanal2+"> Olarak Ayarlandı!") 23 | } 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /commands/resimli-giriş-çıkış.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"resimli-giriş-çıkış", 5 | description: '💙 Resimli Giriş Çıkış Sistemini Ayarlarsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name: "kanal", 10 | description: "Giriş çıkış kanalını ayarlarsın!", 11 | type: 7, 12 | required: true, 13 | channel_types: [0] 14 | }, 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 20 | const kanal2 = interaction.options.getChannel('kanal') 21 | db.set(`canvaskanal_${interaction.guild.id}`, { channel: kanal2.id, } ) 22 | interaction.reply("<:tik:1039607067729727519> | Resimli Giriş Çıkış Kanalı Başarıyla <#"+kanal2+"> Olarak Ayarlandı!") 23 | } 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /commands/kick.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | module.exports = { 3 | name:"kick", 4 | description: '💙 Kullanıcıyı Sunucudan Atarsın.', 5 | type:1, 6 | options: [ 7 | { 8 | name:"user", 9 | description:"Atılacak Kullanıcıyı Seçin.", 10 | type:6, 11 | required:true 12 | }, 13 | 14 | ], 15 | run: async(client, interaction) => { 16 | 17 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.KickMembers)) return interaction.reply({content: "<:carpi:1040649840394260510> | Üyeleri At Yetkin Yok!", ephemeral: true}) 18 | const user = interaction.options.getMember('user') 19 | if(user.permissions.has(PermissionsBitField.Flags.KickMembers)) return interaction.reply({content:"<:carpi:1040649840394260510> | Bu Kullanıcının Kullanıcıları Atma Yetkisi Olduğu İçin Onu Yasaklayamadım. ",ephemeral:true}) 20 | user.kick(); 21 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla Üyeyi Attım!"}) 22 | } 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /commands/kullanıcıbilgi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | 4 | module.exports = { 5 | name:"kullanıcı-bilgi", 6 | description: '💙 Kullanıcı bilgisine bakarsın.', 7 | type:1, 8 | options: [ 9 | { 10 | name:"kullanıcı", 11 | description:"Bilgisine bakmak istediğin kullanıcı etiketle!", 12 | type:6, 13 | required:true 14 | }, 15 | 16 | ], 17 | run: async(client, interaction) => { 18 | 19 | const member = interaction.options.getMember('kullanıcı') 20 | 21 | const embed = new EmbedBuilder() 22 | .setDescription(`**➥ Kullanıcı Bilgileri** 23 | 24 | • Kullanıcı: (<@${member.user.id}> - \`${member.user.id}\`) 25 | • Hesap Kurulum Tarihi: 26 | • Sunucuya Katılma Tarihi: 27 | `) 28 | .setThumbnail(`${member.user.displayAvatarURL()}`) 29 | .setColor("Random") 30 | interaction.reply({embeds: [embed]}) 31 | } 32 | 33 | }; -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 araschain 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /events/messageUpdate.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | const { PermissionFlagsBits, EmbedBuilder, Events } = require("discord.js"); 3 | 4 | module.exports = { 5 | name: Events.MessageUpdate, 6 | 7 | run: async(client, oldMsg, newMsg) => { 8 | 9 | if(!db.fetch(`modlogK_${oldMsg.guild.id}`)) return; 10 | 11 | const myDb = { 12 | kanal: db.fetch(`modlogK_${oldMsg.guild.id}`) 13 | } 14 | // 15 | const { kanal } = myDb; 16 | 17 | const embed = new EmbedBuilder() 18 | .setColor("Random") 19 | .setDescription(`Yeni bir mesaj düzenlendi!`) 20 | .addFields( 21 | { name: "**Kullanıcı Tag**", value: oldMsg.author.tag, inline: false }, 22 | { name: "**ID**", value: oldMsg.author.id, inline: false }, 23 | { name: "**Eski Mesaj**", value: "```" + oldMsg.content + "```", inline: false }, 24 | { name: "Yeni Mesaj", value: "```" + newMsg.content + "```", inline: false}, 25 | { name: "**Düzenlendiği Zaman**", value: ``, inline: true } 26 | ) 27 | client.channels.cache.get(kanal).send({ embeds: [embed] }) 28 | } 29 | } -------------------------------------------------------------------------------- /commands/timeout-sistemi-sıfırla.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "timeout-sistemi-sıfırla", 6 | description: "💙 Timeout sistemini sıfırlarsın!", 7 | type: 1, 8 | options: [], 9 | 10 | run: async (client, interaction) => { 11 | // 12 | const yetki = new Discord.EmbedBuilder() 13 | .setColor("Red") 14 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 15 | 16 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 17 | 18 | const basarili = new EmbedBuilder() 19 | .setColor("Green") 20 | .setDescription(`<:tik:1039607067729727519> | __**Timeout Sistemi**__ başarıyla sıfırlandı dostum!`) 21 | 22 | db.delete(`timeoutSistemi_${interaction.guild.id}`) 23 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 24 | 25 | } 26 | 27 | }; -------------------------------------------------------------------------------- /commands/yavaş-mod.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "yavaş-mod", 5 | description: "💙 Kanalın Yavaş Modunu Ayarlarsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | name:"saniye", 10 | description:"Yavaş Modu Kaç Saniye Yapıcaksın?", 11 | type:3, 12 | required:true 13 | }, 14 | 15 | 16 | 17 | ], 18 | 19 | run: async(client, interaction) => { 20 | const ms = require('rhino-ms') 21 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 22 | 23 | 24 | const zaman = interaction.options.getString('saniye') 25 | if (zaman < 0 || zaman > 21600) return interaction.reply("<:carpi:1040649840394260510> | Süre limiti maksimum **6** saat olabilir.") 26 | const slowmode = Math.floor(zaman) 27 | interaction.channel.setRateLimitPerUser(slowmode) 28 | 29 | interaction.reply(`<:tik:1039607067729727519> | Yazma süre limiti **${zaman}** saniye olarak ayarlanmıştır.`) 30 | 31 | 32 | } 33 | 34 | }; 35 | -------------------------------------------------------------------------------- /commands/rol-ver.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"rol-ver", 5 | description: '💙 Birine Rol Verirsin!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"user", 10 | description:"Rol verilicek kullanıcıyı seçin!", 11 | type:6, 12 | required:true 13 | }, 14 | { 15 | name:"rol", 16 | description:"Lütfen bir rol etiketle!", 17 | type:8, 18 | required:true 19 | }, 20 | 21 | 22 | ], 23 | run: async(client, interaction) => { 24 | 25 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 26 | const rol = interaction.options.getRole('rol') 27 | const user = interaction.options.getMember('user') 28 | interaction.guild.members.cache.get(user.id).roles.add(rol) 29 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla <@"+user+"> Kullanıcısına <@&"+rol.id+"> Rolü Verildi."}) 30 | } 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /commands/rol-al.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"rol-al", 5 | description: '💙 Birinden Rol Alırsın!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"user", 10 | description:"Rolü alınıcak kullanıcıyı seçin!", 11 | type:6, 12 | required:true 13 | }, 14 | { 15 | name:"rol", 16 | description:"Lütfen bir rol etiketle!", 17 | type:8, 18 | required:true 19 | }, 20 | 21 | 22 | ], 23 | run: async(client, interaction) => { 24 | 25 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 26 | const rol = interaction.options.getRole('rol') 27 | const user = interaction.options.getMember('user') 28 | interaction.guild.members.cache.get(user.id).roles.remove(rol) 29 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla <@"+user+"> Kullanıcısının <@&"+rol.id+"> Rolü Alındı!"}) 30 | } 31 | 32 | }; 33 | -------------------------------------------------------------------------------- /commands/kanal-açıklama.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "kanal-açıklama", 5 | description: "💙 Kanal Açıklamasını Değiştirsin!", 6 | type: 1, 7 | options: [ 8 | { 9 | name:"kanal", 10 | description:"Açıklaması Değiştirilicek Kanalı Ayarlarsın!", 11 | type:7, 12 | required:true, 13 | channel_types:[0] 14 | }, 15 | { 16 | name:"açıklama", 17 | description:"Kanal Açıklamasını Girin!", 18 | type:3, 19 | required:true 20 | }, 21 | 22 | ], 23 | 24 | run: async(client, interaction) => { 25 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 26 | const aciklama = interaction.options.getString('açıklama') 27 | const kanal2 = interaction.options.getChannel('kanal') 28 | client.channels.cache.get(kanal2.id).setTopic(aciklama) 29 | interaction.reply("<:tik:1039607067729727519> | <#"+kanal2+"> Kanalının Açıklaması Başarıyla **"+aciklama+"** Olarak Değiştirildi.") 30 | 31 | } 32 | 33 | }; 34 | -------------------------------------------------------------------------------- /commands/captcha-sistemi-sıfırla.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "captcha-sistemi-sıfırla", 6 | description: "💙 Captcha sistemini sıfırlarsın!", 7 | type: 1, 8 | options: [], 9 | 10 | run: async (client, interaction) => { 11 | // 12 | const yetki = new Discord.EmbedBuilder() 13 | .setColor("Red") 14 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 15 | 16 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 17 | 18 | const basarili = new EmbedBuilder() 19 | .setColor("Green") 20 | .setDescription(`<:tik:1039607067729727519> | __**Captcha Sistemi**__ başarıyla sıfırlandı dostum!`) 21 | 22 | db.delete(`rcaptchaDate_${interaction.guild.id}`) 23 | db.delete(`rcaptcha_${interaction.guild.id}`) 24 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 25 | 26 | } 27 | 28 | }; -------------------------------------------------------------------------------- /commands/mute-ayar.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"mute-ayar", 5 | description: '💙 Mute ayarlarını yaparsın.', 6 | type:1, 7 | options: [ 8 | { 9 | name:"rol", 10 | description:"Muteli rolünü ayarla!", 11 | type:8, 12 | required:true 13 | }, 14 | { 15 | name:"yetkili", 16 | description:"Mute yetkilisini ayarla!", 17 | type:8, 18 | required:true 19 | }, 20 | ], 21 | run: async(client, interaction) => { 22 | 23 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 24 | const rol = interaction.options.getRole('rol') 25 | const yetkili = interaction.options.getRole('yetkili') 26 | db.set(`rol_${interaction.guild.id}`, rol.id) 27 | db.set(`yetkili_${interaction.guild.id}`, yetkili.id) 28 | interaction.reply({content: "<:tik:1039607067729727519> | Muteli rolü <@&"+rol+"> olarak ayarlandı, Yetkilisi ise <@&"+yetkili+"> olarak ayarlandı!"}) 29 | } 30 | 31 | }; -------------------------------------------------------------------------------- /commands/özel-oda-kullanıcı-menü.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require('discord.js') 4 | module.exports = { 5 | name:"özel-oda-menü", 6 | description: '💙 Özel oda menüsü.', 7 | type:1, 8 | options: [], 9 | run: async(client, interaction) => { 10 | 11 | let odasi = db.fetch(`oda_${interaction.user.id}`) 12 | if (!odasi) return interaction.reply("<:carpi:1040649840394260510> | Sana ait bir oda bulamadım!") 13 | const embed = new EmbedBuilder() 14 | .setTitle("Silex - Özel Oda Sistemi!") 15 | .setDescription("Aşağıdaki butondan özel odana kullanıcı ekleyebilirsin!") 16 | .setColor("#ff0000") 17 | const row = new Discord.ActionRowBuilder() 18 | .addComponents( 19 | new Discord.ButtonBuilder() 20 | .setLabel("Ekle") 21 | .setStyle(Discord.ButtonStyle.Secondary) 22 | .setEmoji('1041737371131056218') 23 | .setCustomId("ekle_"+interaction.user.id), 24 | new Discord.ButtonBuilder() 25 | .setLabel("Çıkar") 26 | .setStyle(Discord.ButtonStyle.Secondary) 27 | .setEmoji('1041737369436557393') 28 | .setCustomId("çıkar_"+interaction.user.id)) 29 | interaction.reply({embeds: [embed], components: [row]}) 30 | } 31 | 32 | }; -------------------------------------------------------------------------------- /commands/level-add.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-ekle", 5 | description: "💙 Seviyenizi arttırın.", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 6, 10 | name: "kullanıcı", 11 | description: "Hangi kullanıcıyı etkileyecek?", 12 | required: true 13 | }, 14 | { 15 | type: 10, 16 | name: "miktar", 17 | description: "Kaç level eklenecek?", 18 | required: true 19 | } 20 | ], 21 | 22 | 23 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 24 | 25 | const { user, guild, options } = interaction; 26 | 27 | const member = options.getUser("kullanıcı"); 28 | 29 | if(!interaction.member.permissions.has(PermissionsBitField.ManageMessages)) { 30 | return interaction.reply({ content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!" }) 31 | } 32 | 33 | db.add(`levelPos_${member.id}${guild.id}`, options.getNumber("miktar")) 34 | 35 | const level = db.fetch(`levelPos_${member.id}${guild.id}`) || 0; 36 | const xp = db.fetch(`xpPos_${member.id}${guild.id}`) || 0; 37 | 38 | AddRank(interaction, member, String(xp), String(level), "100"); 39 | 40 | 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /commands/oto-rol.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name:"oto-rol", 5 | description: '💙 Yeni Gelenlere Otomatik Rol Verir!', 6 | type:1, 7 | options: [ 8 | { 9 | name:"rol", 10 | description:"Lütfen bir rol etiketle!", 11 | type:8, 12 | required:true 13 | }, 14 | { 15 | name:"bot-rol", 16 | description:"Lütfen bir rol etiketle!", 17 | type:8, 18 | required:true 19 | }, 20 | 21 | 22 | ], 23 | run: async(client, interaction) => { 24 | 25 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 26 | const rol = interaction.options.getRole('rol') 27 | const bot = interaction.options.getRole('bot-rol') 28 | db.set(`botrol_${interaction.guild.id}`, bot.id) 29 | db.set(`otorol_${interaction.guild.id}`, rol.id) 30 | interaction.reply({content: "<:tik:1039607067729727519> | Otorol Başarıyla <@&"+rol+"> Olarak Ayarlandı. Bot rolü <@&"+bot+"> olarak ayarlandı."}) 31 | } 32 | 33 | }; 34 | -------------------------------------------------------------------------------- /commands/level-remove.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-kaldır", 5 | description: "💙 Seviyenizi azaltın.", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 6, 10 | name: "kullanıcı", 11 | description: "Hangi kullanıcıyı etkileyecek?", 12 | required: true 13 | }, 14 | { 15 | type: 10, 16 | name: "miktar", 17 | description: "Kaç level silinecek?", 18 | required: true 19 | } 20 | ], 21 | 22 | 23 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 24 | 25 | const { user, guild, options } = interaction; 26 | 27 | const member = options.getUser("kullanıcı"); 28 | 29 | if(!interaction.member.permissions.has(PermissionsBitField.ManageMessages)) { 30 | return interaction.reply({ content: "<:carpi:1040649840394260510> | Mesajları Yönet Yetkin Yok!" }) 31 | } 32 | 33 | db.subtract(`levelPos_${member.id}${guild.id}`, options.getNumber("miktar")) 34 | 35 | const level = db.fetch(`levelPos_${member.id}${guild.id}`) || 0; 36 | const xp = db.fetch(`xpPos_${member.id}${guild.id}`) || 0; 37 | 38 | RemoveRank(interaction, member, String(xp), String(level), "100"); 39 | 40 | 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /commands/kayıt-sistemi-kapat.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "kayıt-sistemi-kapat", 6 | description: "💙 Kayıt sistemini kapatırsın!", 7 | type: 1, 8 | options: [], 9 | // 10 | run: async (client, interaction) => { 11 | 12 | const { user, customId, guild } = interaction; 13 | const yetki = new Discord.EmbedBuilder() 14 | .setColor("Red") 15 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 16 | 17 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 18 | 19 | const basarili = new EmbedBuilder() 20 | .setColor("Green") 21 | .setDescription(`<:tik:1039607067729727519> | __**Kayıt Sistemi**__ başarıyla sıfırlandı!`) 22 | db.delete(`kayıtsistemi_${interaction.guild.id}`) 23 | db.delete(`kayıtsistemiDate_${interaction.guild.id}`) 24 | 25 | 26 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 27 | 28 | } 29 | 30 | }; -------------------------------------------------------------------------------- /commands/ban.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | module.exports = { 3 | name:"ban", 4 | description: '💙 Kullanıcıyı Sunucudan Yasaklarsın.', 5 | type:1, 6 | options: [ 7 | { 8 | name:"user", 9 | description:"Yasaklanıcak Kullanıcıyı Seçin.", 10 | type:6, 11 | required:true 12 | }, 13 | { 14 | name:"reason", 15 | description:"Hangi Sebepten dolayı yasaklanıcak?", 16 | type:3, 17 | required:true 18 | }, 19 | ], 20 | run: async(client, interaction) => { 21 | 22 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.BanMembers)) return interaction.reply({content: "<:carpi:1040649840394260510> | Üyeleri Yasakla Yetkin Yok!", ephemeral: true}) 23 | const user = interaction.options.getMember('user') 24 | const sebep = interaction.options.getString('reason') 25 | if(user.permissions.has(PermissionsBitField.Flags.BanMembers)) return interaction.reply({content:"<:carpi:1040649840394260510> | Bu Kullanıcının Ban Yetkisi Olduğu İçin Onu Yasaklayamadım. ",ephemeral:true}) 26 | user.ban({reason: sebep}); 27 | interaction.reply({content: "<:tik:1039607067729727519> | Başarıyla Üyeyi Yasakladım!"}) 28 | } 29 | 30 | }; 31 | -------------------------------------------------------------------------------- /commands/davet.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, ButtonBuilder, ActionRow } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name: "davet", 5 | description: "💙 Botun davet linkini atar.", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | const dvt = new Discord.ButtonBuilder().setLabel('Davet Linkim').setStyle('Link').setEmoji('1063843026482503739').setURL('https://discord.com/api/oauth2/authorize?client_id=1038372156578480199&permissions=347200&scope=applications.commands%20bot'); 12 | const destek = new Discord.ButtonBuilder().setLabel('Destek Sunucum').setStyle('Link').setEmoji('1044325557615202364').setURL('https://discord.gg/SY7aMsVpUJ'); 13 | const row = new Discord.ActionRowBuilder().addComponents(dvt).addComponents(destek) 14 | const embed = new EmbedBuilder() 15 | .setAuthor({ name: "Merhaba, Ben Silex!", iconURL: interaction.client.user.displayAvatarURL({ dynamic: true })}) 16 | .setTitle("Silex'i Davet Et!") 17 | .setDescription(`<:bot:1039607042291269703> | Silex'i şimdi sunucuna davet et ve botun tadını çıkar!`) 18 | .setColor('#2F3136') 19 | .setTimestamp() 20 | .setFooter({text: interaction.user.tag+" İstedi.", iconURL: interaction.user.displayAvatarURL({ dynamic: true })}) 21 | 22 | interaction.reply({ embeds: [embed], components:[row]}); 23 | } 24 | 25 | }; -------------------------------------------------------------------------------- /commands/banner.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name:"banner", 5 | description: '💙 Bannerine bakarsın.', 6 | type:1, 7 | options: [ 8 | { 9 | name:"kullanıcı", 10 | description:"Bannerine bakmak istediğin kullanıcı etiketle!", 11 | type:6, 12 | required:true 13 | }, 14 | 15 | ], 16 | run: async(client, interaction) => { 17 | const { DiscordBanners } = require('discord-banners'); 18 | const discordBanners = new DiscordBanners(client); 19 | const target = interaction.options.getMember('kullanıcı') 20 | const banner = await discordBanners.getBanner(target.user.id, { dynamic: true }); 21 | if (banner.includes('https')) { 22 | const embed = new EmbedBuilder() 23 | .setDescription(`**➥ \`(<@${target.user.id}>\`) adlı kullanıcının banneri!**`) 24 | .setImage(banner) 25 | .setColor("Random") 26 | return interaction.reply({embeds: [embed]}) 27 | } else if (!banner.includes('https')) { 28 | const embed = new EmbedBuilder() 29 | .setDescription(`:x: Bu kullanıcıda banner bulunmamaktadır! \n\n 📔 Not: Hata olduğunu düşünüyorsanız [Discord](https://discord.gg/QtC7Cvh3MQ) sunucumuza gelebilir yada **bug** komutunu kullanabilirsiniz.`) 30 | return interaction.reply({ embeds: [embed] }); 31 | } 32 | 33 | } 34 | }; -------------------------------------------------------------------------------- /commands/sunucukur.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, ChannelType, EmbedBuilder } = require("discord.js"); 2 | const db = require('croxydb'); 3 | const Discord = require('discord.js'); 4 | const { Permissions } = require("discord.js") 5 | module.exports = { 6 | name:"sunucu-kur", 7 | description: '💙 Otomatik Sunucu kurarsın!', 8 | type:1, 9 | options: [], 10 | run: async(client, interaction) => { 11 | 12 | if(interaction.user.id !== interaction.guild.ownerId) return interaction.reply('<:blurplecross:922176863881797693> | Bu komutu sadece **sunucu sahibi** kullanabilir!') 13 | 14 | 15 | const row = new Discord.ActionRowBuilder() 16 | .addComponents( 17 | new Discord.ButtonBuilder() 18 | .setCustomId('sunucukuronay_'+interaction.user.id) 19 | .setLabel('Onayla') 20 | .setEmoji("1039607067729727519") 21 | .setStyle('Success'), 22 | new Discord.ButtonBuilder() 23 | .setCustomId('sunucukurred_'+interaction.user.id) 24 | .setLabel('İptal') 25 | .setEmoji("1040649840394260510") 26 | .setStyle('Danger'), 27 | 28 | ); 29 | 30 | const embed = new EmbedBuilder() 31 | .setDescription(`Sunucuyu kurmak istediğinden emin misin? Sunucudaki bütün kanallar ve roller silinecek.`) 32 | 33 | interaction.reply({ embeds: [embed], components: [row] }) 34 | } 35 | 36 | }; -------------------------------------------------------------------------------- /commands/destek-sistemi-sıfırla.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "destek-sistemi-sıfırla", 6 | description: "💙 Destek sistemini sıfırlarsın!", 7 | type: 1, 8 | options: [], 9 | // 10 | run: async (client, interaction) => { 11 | 12 | const { user, customId, guild } = interaction; 13 | const yetki = new Discord.EmbedBuilder() 14 | .setColor("Red") 15 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 16 | 17 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 18 | 19 | const basarili = new EmbedBuilder() 20 | .setColor("Green") 21 | .setDescription(`<:tik:1039607067729727519> | __**Destek Sistemi**__ başarıyla sıfırlandı!`) 22 | db.delete(`ticketKanal_${interaction.guild.id}`) 23 | db.delete(`ticketSystem_${interaction.guild.id}`) 24 | db.delete(`ticketLvl_${interaction.guild.id}`) 25 | db.delete(`ticketCategory_${interaction.guild.id}`); 26 | db.delete(`ticketSystemDate_${interaction.guild.id}`) 27 | 28 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 29 | 30 | } 31 | 32 | }; -------------------------------------------------------------------------------- /commands/spotify.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name: "spotify", 5 | description: "💙 Kullanıcının Spotify bilgilerine bakarsın!", 6 | type: 1, 7 | options: [ { 8 | name: "kullanıcı", 9 | description: "Kullanıcı belirt!", 10 | type: 6, 11 | required: true 12 | },], 13 | 14 | run: async(client, interaction) => { 15 | const kullanıcı = interaction.options.getMember('kullanıcı') 16 | const spotify = kullanıcı.presence.activities.filter(x => x.name === 'Spotify' && x.type === 2)[0] 17 | 18 | const dinleyenyok = new Discord.EmbedBuilder() 19 | .setDescription(`:x: ${kullanıcı} Spotify **Dinlemiyor**`) 20 | .setColor('Red') 21 | if(!spotify) return interaction.reply({ embeds: [dinleyenyok] }) 22 | 23 | const resim = `https://i.scdn.co/image/${spotify.assets.largeImage.slice(8)}`; 24 | const ad = spotify.details; 25 | const album = spotify.assets.largeText; 26 | const yapimci = spotify.state; 27 | 28 | const embed = new Discord.EmbedBuilder() 29 | .setThumbnail(resim) 30 | .setDescription(` 31 | 🎧 **| ${kullanıcı} Adlı kişinin spotify bilgisi** 32 | 33 | • **Şarkı İsmi »** \`${ad}\` 34 | • **Albüm »** \`${album}\` 35 | • **Yapımcı »** \`${yapimci}\` 36 | `) 37 | .setColor("Aqua") 38 | await interaction.reply({ embeds: [embed] }) 39 | 40 | } 41 | 42 | }; -------------------------------------------------------------------------------- /function/functions.js: -------------------------------------------------------------------------------- 1 | const { ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js'); 2 | 3 | module.exports = { 4 | createButton(interaction, options) { 5 | const { user } = interaction; 6 | 7 | const id = options.id; 8 | const id_name = options.id_name; 9 | const label = options.label; 10 | const button_style = options.style; 11 | 12 | if(id.includes("_")) { 13 | throw new TypeError("Geçersiz ID. '_' olmadan kullanın.") 14 | } 15 | 16 | if(id_name.includes("_")) { 17 | throw new TypeError("Geçersiz ID Name. '_' olmadan kullanın.") 18 | } 19 | 20 | const { emoji } = options; 21 | 22 | if(!emoji) { 23 | emoji = null 24 | } 25 | 26 | const button = new ButtonBuilder().setCustomId(`${id_name}_${id}`).setLabel(`${label}`).setStyle(button_style).setEmoji(emoji) 27 | 28 | const row = new ActionRowBuilder().addComponents(button); 29 | 30 | return row; 31 | }, 32 | deleteMessageButton(interaction, options) { 33 | const { user } = interaction; 34 | 35 | const { label, style, emoji } = options; 36 | 37 | if(!emoji) { 38 | emoji = null 39 | } 40 | 41 | const button = new ButtonBuilder().setCustomId(`.clearMessageButton_${user.id}`).setLabel(`${label}`).setStyle(style).setEmoji(emoji) 42 | const row = new ActionRowBuilder().addComponents(button); 43 | 44 | return row; 45 | } 46 | } -------------------------------------------------------------------------------- /commands/buton-rol.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const db = require("croxydb") 4 | module.exports = { 5 | name: "buton-rol", 6 | description: "💙 Rol alma sistemini ayarlarsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name:"rol", 11 | description:"Lütfen bir rol etiketle!", 12 | type:8, 13 | required:true 14 | }, 15 | { 16 | name:"yazı", 17 | description:"Lütfen bir embed mesaj yazısı gir!", 18 | type:3, 19 | required:true 20 | }, 21 | 22 | 23 | ], 24 | 25 | run: async(client, interaction) => { 26 | 27 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 28 | 29 | const rol = interaction.options.getRole('rol') 30 | const yazı = interaction.options.getString('yazı') 31 | 32 | let buttonid = rol.name 33 | const embed = new EmbedBuilder() 34 | .setTitle("Silex - Buton Rol Al Sistemi!") 35 | .setDescription(`${yazı}`) 36 | .setColor("#ff0000") 37 | const row = new Discord.ActionRowBuilder() 38 | .addComponents( 39 | new Discord.ButtonBuilder() 40 | .setLabel(rol.name) 41 | .setStyle(Discord.ButtonStyle.Secondary) 42 | .setCustomId("rol_everyone") 43 | ) 44 | interaction.reply({embeds: [embed], components: [row]}).then((mesaj) => { 45 | db.set(`buton_rol${interaction.guild.id}`, rol.id) 46 | }) 47 | 48 | 49 | } 50 | 51 | }; 52 | -------------------------------------------------------------------------------- /events/voiceStateUpdate.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const db = require("croxydb"); 3 | 4 | module.exports = { 5 | name: Discord.Events.VoiceStateUpdate, 6 | 7 | run: async(client, oldState, newState) => { 8 | 9 | if(!db.fetch(`ozelodasistemi_${newState.guild.id}`)) return; 10 | 11 | const myDb = { 12 | sohbetses: db.fetch(`ozelodasistemi_${newState.guild.id}`) 13 | } 14 | const { sohbetses } = myDb; 15 | const sesli = db.fetch(`oda_${newState.id}`) 16 | const sesli2 = db.fetch(`oda2${newState.id}`) 17 | if(sesli && sesli2) { 18 | if (newState.member.voice.channel != null && newState.member.voice.channel.name.startsWith(sohbetses)) { 19 | const ozelOdaCategory = db.fetch(`ozelOdaSystemCategory_${newState.guild.id}`); 20 | const channel = await newState.guild.channels.create({ 21 | name: `║👤 ${newState.member.displayName}`, 22 | type: Discord.ChannelType.GuildVoice, 23 | parent: ozelOdaCategory.category, 24 | permissionOverwrites: [ 25 | 26 | ], 27 | }).then((sesli) => { 28 | newState.member.voice.setChannel(sesli.id) 29 | db.set(`oda_${newState.id}`, sesli.id) 30 | db.set(`oda2_${newState.id}`, sesli) 31 | sesli.permissionOverwrites.create( 32 | newState.guild.roles.everyone, {ViewChannel: false} 33 | 34 | ) 35 | }) 36 | } 37 | } 38 | } 39 | } -------------------------------------------------------------------------------- /commands/oylama.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "oylama", 6 | description: "💙 Oylama Yaparsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name:"yazı", 11 | description:"Oylama Seçeneğini Gir!", 12 | type:3, 13 | required:true 14 | }, 15 | ], 16 | 17 | run: async(client, interaction) => { 18 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageNicknames)) return interaction.reply({content: "<:carpi:1040649840394260510> | İsimleri Yönet Yetkin Yok!", ephemeral: true}) 19 | 20 | const yazı = interaction.options.getString('yazı') 21 | 22 | const row = new Discord.ActionRowBuilder() 23 | .addComponents( 24 | new Discord.ButtonBuilder() 25 | .setStyle("Success") 26 | .setLabel("(0) Evet") 27 | .setEmoji("922176863911149660") 28 | .setCustomId("evetoylama_everyone"), 29 | new Discord.ButtonBuilder() 30 | .setStyle("Danger") 31 | .setLabel("(0) Hayır") 32 | .setEmoji("922176863881797693") 33 | .setCustomId("hayıroylama_everyone")) 34 | 35 | const embed = new EmbedBuilder() 36 | .setTitle("Oylama!") 37 | .setDescription("> "+ yazı) 38 | .addFields({ name: 'Evet Oy ver', value: `> Evet oyu vermek için **Evet** butonuna tıklayın.`, inline: false}) 39 | .addFields({ name: 'Hayır Oy ver', value: `> Hayır oyu vermek için **Hayır** butonuna tıklayın.`, inline: false}) 40 | .setColor("Random") 41 | 42 | interaction.reply({embeds: [embed], components: [row] }) 43 | 44 | } 45 | 46 | }; 47 | -------------------------------------------------------------------------------- /commands/avatar.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField, ActionRowBuilder, ButtonBuilder } = require("discord.js"); 2 | module.exports = { 3 | name:"avatar", 4 | description: '💙 Birinin Avatarına Bakarsın!', 5 | type:1, 6 | options: [ 7 | { 8 | name:"kullanıcı", 9 | description:"Avatarına Bakmak İstediğin Kullanıcıyı Etiketle!", 10 | type:6, 11 | required:true 12 | }, 13 | 14 | ], 15 | run: async(client, interaction) => { 16 | 17 | const member = interaction.options.getMember('kullanıcı') 18 | 19 | 20 | const row = new ActionRowBuilder() 21 | .addComponents( 22 | new ButtonBuilder() 23 | .setLabel(`PNG`) 24 | .setStyle(5) .setURL(`${member.user.displayAvatarURL({size:1024,format:"png"})}`), 25 | 26 | new ButtonBuilder() 27 | .setLabel(`JPG`) 28 | .setStyle(5) .setURL(`${member.user.displayAvatarURL({size:1024,format:"jpg"})}`), 29 | 30 | new ButtonBuilder() 31 | .setLabel(`WEBP`) 32 | .setStyle(5) .setURL(`${member.user.displayAvatarURL({size:1024,format:"webp"})}`), 33 | 34 | new ButtonBuilder() 35 | .setLabel(`GIF`) 36 | .setStyle(5) .setURL(`${member.user.displayAvatarURL({size:1024,format:"gif"})}`), 37 | ) 38 | 39 | interaction.reply({ 40 | embeds:[ 41 | { 42 | title: `${member.user.tag} avatarı`, 43 | description: `[Link](${member.user.displayAvatarURL({size:1024,format:"png"})})`, 44 | image: {url: member.user.displayAvatarURL({size:1024,dynamic:true})} 45 | } 46 | ], components: [row] 47 | }) 48 | } 49 | 50 | }; 51 | -------------------------------------------------------------------------------- /commands/sa-as.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "sa-as", 5 | description: "💙 Selam Sistemini Açıp Kapatırsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | } 24 | ], 25 | 26 | run: async(client, interaction) => { 27 | const { user, guild, options } = interaction; 28 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 29 | const saasSystemTrue = options.getString("seçenek"); 30 | const saasSystem = db.fetch(`saas_${interaction.guild.id}`) 31 | 32 | switch(saasSystemTrue) { 33 | case "ac": { 34 | if(saasSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten açık!" }); 35 | 36 | db.set(`saas_${interaction.guild.id}`, true) 37 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 38 | } 39 | 40 | case "kapat": { 41 | if(!saasSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 42 | 43 | db.delete(`saas_${interaction.guild.id}`) 44 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 45 | } 46 | } 47 | 48 | } 49 | 50 | }; 51 | -------------------------------------------------------------------------------- /commands/say.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | module.exports = { 4 | name: "say", 5 | description: "💙 Sunucuda kaç üye olduğunu gösterir.", 6 | type: 1, 7 | options: [], 8 | 9 | run: async(client, interaction) => { 10 | 11 | const memberCount = interaction.guild.members.cache.filter((member) => !member.user.bot).size || 0 12 | const fakeMemberCount = interaction.guild.members.cache.filter((member) => new Date().getTime() - client.users.cache.get(member.id).createdAt.getTime() < 1296000000).size || 0 13 | const botCount = interaction.guild.members.cache.filter((member) => member.user.bot).size || 0 14 | const permissionsMemberCount = interaction.guild.members.cache.filter((member) => member.permissions.has(PermissionsBitField.Flags.Administrator)).size || 0 15 | const onlinekişi = interaction.guild.members.cache.filter(o => !o.user.bot && o.presence && o.presence.status === 'online').size 16 | const boştakişi = interaction.guild.members.cache.filter(o => !o.user.bot && o.presence && o.presence.status === 'idle').size 17 | const retmekişi = interaction.guild.members.cache.filter(o => !o.user.bot && o.presence && o.presence.status === 'dnd').size 18 | 19 | const embed = new EmbedBuilder() 20 | .setTitle('Silex Bot') 21 | .setThumbnail(`${interaction.guild.iconURL({ dynamic: true })}`) 22 | .setFooter({text: interaction.user.tag+" İstedi."}) 23 | .setDescription(`<:member:1039607059357913098> | Toplam Üye: **${interaction.guild.memberCount}** ( Çevrimiçi: **${onlinekişi}** | Boşta: **${boştakişi}** | Rahatsız Etmeyin **${retmekişi}** )\n<:tik:1039607067729727519> | Gerçek: **${memberCount}**\n<:uyari:1040649846400499712> | Sahte: **${fakeMemberCount}**\n<:bot:1039607042291269703> | Bot: **${botCount}**\n<:guardian:1044325535800635422> | Yönetici Yetkili: **${permissionsMemberCount}**`) 24 | .setColor("Random") 25 | interaction.reply({embeds: [embed]}) 26 | } 27 | 28 | }; -------------------------------------------------------------------------------- /commands/level-sistemi.js: -------------------------------------------------------------------------------- 1 | const { AttachmentBuilder, EmbedBuilder } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "level-sistemi", 5 | description: "💙 Level sistemini açıp kapatırsın.", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | } 24 | ], 25 | 26 | 27 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 28 | 29 | const { user, guild, options } = interaction; 30 | 31 | const levelSystem = db.fetch(`acikmiLevel_${guild.id}`) ? true : false; 32 | const levelSystemTrue = options.getString("seçenek"); 33 | 34 | switch(levelSystemTrue) { 35 | case "ac": { 36 | const levelSystem = db.fetch(`acikmiLevel_${interaction.guild.id}`) 37 | const levelSystemDate = db.fetch(`levelSystemDate_${interaction.guild.id}`) 38 | 39 | if (levelSystem && levelSystemDate) { 40 | const date = new EmbedBuilder() 41 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 42 | 43 | return interaction.reply({ embeds: [date] }) 44 | } 45 | db.set(`acikmiLevel_${guild.id}`, true) 46 | db.set(`levelSystemDate_${interaction.guild.id}`, { date: Date.now() }) 47 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 48 | } 49 | 50 | case "kapat": { 51 | if(!levelSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 52 | 53 | db.delete(`acikmiLevel_${guild.id}`) 54 | db.delete(`levelSystemDate_${interaction.guild.id}`) 55 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 56 | } 57 | } 58 | } 59 | }; 60 | 61 | // -------------------------------------------------------------------------------- /commands/özel-oda-sistemi.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, ChannelType } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const db = require("croxydb") 4 | module.exports = { 5 | name:"özel-oda-sistemi", 6 | description: '💙 Özel oda sistemini ayarlarsın!', 7 | type:1, 8 | options: [ 9 | { 10 | type: 3, 11 | name: "isim", 12 | description: "Oda ismi yaz!", 13 | required: true 14 | } 15 | ], 16 | run: async(client, interaction) => { 17 | const { user, guild, options } = interaction; 18 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 19 | const ozelOdaSystem = db.fetch(`ozelodasistemi_${interaction.guild.id}`) 20 | const ozelOdaSystemDate = db.fetch(`ozelOdaSystemDate_${interaction.guild.id}`) 21 | 22 | if (ozelOdaSystem && ozelOdaSystemDate) { 23 | const date = new EmbedBuilder() 24 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 25 | 26 | return interaction.reply({ embeds: [date] }) 27 | } 28 | const isim = options.getString("isim") 29 | 30 | const category = await guild.channels.create({ 31 | name: 'ÖZEL ODA', 32 | type: Discord.ChannelType.GuildCategory, 33 | permissionOverwrites: [ 34 | { 35 | id: interaction.guild.id, 36 | }, 37 | ], 38 | }); 39 | db.set(`ozelOdaSystemCategory_${interaction.guild.id}`, { category: category.id }); 40 | const ozelOdaCategory = db.fetch(`ozelOdaSystemCategory_${interaction.guild.id}`); 41 | const channel = await interaction.guild.channels.create({ 42 | name: `${isim}`, 43 | type: Discord.ChannelType.GuildVoice, 44 | parent: ozelOdaCategory.category, 45 | permissionOverwrites: [], 46 | }); 47 | 48 | db.set(`ozelodasistemi_${interaction.guild.id}`, isim) 49 | db.set(`ozelOdaSystemDate_${interaction.guild.id}`, { date: Date.now() }) 50 | interaction.reply("<:tik:1039607067729727519> | Sesli Kanal Başarıyla Oluşturuldu.") 51 | } 52 | 53 | }; -------------------------------------------------------------------------------- /commands/giriş-çıkış-mesaj.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | const Discord = require('discord.js') 3 | const db = require("croxydb") 4 | module.exports = { 5 | name:"giriş-çıkış-mesaj", 6 | description: '💙 Giriş Çıkış Mesajını Ayarlarsın!', 7 | type:1, 8 | options: [], 9 | run: async(client, interaction) => { 10 | 11 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageChannels)) return interaction.reply({content: "<:carpi:1040649840394260510> | Kanalları Yönet Yetkin Yok!", ephemeral: true}) 12 | const row1 = new Discord.ActionRowBuilder() 13 | 14 | .addComponents( 15 | new Discord.ButtonBuilder() 16 | .setLabel("Giriş Çıkış Mesajını Ayarla!") 17 | .setStyle(Discord.ButtonStyle.Secondary) 18 | .setCustomId("giriscikismesaj_"+interaction.user.id) 19 | ) 20 | .addComponents( 21 | new Discord.ButtonBuilder() 22 | .setLabel("Giriş Çıkış Mesajını Sıfırla!") 23 | .setStyle(Discord.ButtonStyle.Secondary) 24 | .setCustomId("giriscikismesajsifirla_"+interaction.user.id) 25 | ) 26 | const embed = new EmbedBuilder() 27 | .setAuthor({ name: "Silex", iconURL: client.user.displayAvatarURL({ dynamic: true })}) 28 | .setDescription(`Merhaba <@${interaction.user.id}>! Giriş çıkış mesajını ayarlamak veya sıfırlamak için aşağıdaki butonları kullanabilirsin!`) 29 | .addFields([ 30 | { 31 | name: "**{guild.memberCount}**", 32 | value: "`Sunucunun toplam üye sayısını gösterir.`", 33 | inline: false 34 | }, 35 | { 36 | name: "**{guild.name}**", 37 | value: "`Sunucunun tam ismini gösterir.`", 38 | inline: false 39 | }, 40 | { 41 | name: "**{member}**", 42 | value: "`Kullanıcının ismini gösterir.`", 43 | inline: false 44 | }, 45 | { 46 | name: "**{owner.name}**", 47 | value: "`Sunucu kime ait ise o kişinin ismini gösterir.`", 48 | inline: false 49 | }, 50 | ]); 51 | interaction.reply({ embeds: [embed], components: [row1] }) 52 | } 53 | 54 | }; 55 | -------------------------------------------------------------------------------- /commands/captcha-görüntüle.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "captcha-görüntüle", 6 | description: "💙 Captcha istatistiklerini görüntülersin!", 7 | type: 1, 8 | options: [], 9 | // 10 | run: async (client, interaction) => { 11 | 12 | const { user, customId, guild } = interaction; 13 | const yetki = new Discord.EmbedBuilder() 14 | .setColor("Red") 15 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 16 | 17 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 18 | 19 | if(!`rcaptchaOnaylılar_${interaction.guild.id}`) 20 | { 21 | db.set(`rcaptchaOnaylılar_${interaction.guild.id}`, []) 22 | } 23 | 24 | 25 | if(!db.fetch(`rcaptcha_${interaction.guild.id}`)) 26 | { 27 | return interaction.reply({ embeds: [ 28 | new Discord.EmbedBuilder() 29 | .setColor("#36393F") 30 | .setAuthor({ name: interaction.user.tag, iconURL: interaction.user.displayAvatarURL({ dynamic: true })}) 31 | .setDescription(':x: **|** rCaptcha doğrulama sistemi `pasif` iken bu işlem yapılamaz.') 32 | ], fetchReply: true }); 33 | } 34 | 35 | const array = db.fetch(`rcaptchaOnaylılar_${interaction.guild.id}`).length || 0; 36 | return interaction.reply({ embeds: [ 37 | new Discord.EmbedBuilder() 38 | .setColor("#36393F") 39 | .setAuthor({ name: interaction.user.tag, iconURL: interaction.user.displayAvatarURL({ dynamic: true })}) 40 | .setDescription('✅ **|** rCaptcha doğrulama sistemini kullandığın için teşekkürler.') 41 | .addFields( 42 | { name: 'Doğrulanmamış üyeler:', value: '```css\n'+(interaction.guild.memberCount - array)+'\n```', inline: true }, 43 | { name: 'Doğrulanmış üyeler:', value: '```css\n'+array+'\n```', inline: true }, 44 | ) 45 | ], fetchReply: true }); 46 | 47 | } 48 | 49 | }; -------------------------------------------------------------------------------- /commands/capslock-koruma.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "capslock-engel", 5 | description: "💙 CapsLock Engel Sistemini Açıp Kapatırsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | } 24 | ], 25 | 26 | run: async(client, interaction) => { 27 | const { user, guild, options } = interaction; 28 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 29 | const capslockSystemTrue = options.getString("seçenek"); 30 | const capslockSystem = db.fetch(`capslockengel_${interaction.guild.id}`) 31 | 32 | switch(capslockSystemTrue) { 33 | case "ac": { 34 | const capslockSystem = db.fetch(`capslockengel_${interaction.guild.id}`) 35 | const capslockSystemDate = db.fetch(`capslockSystemDate_${interaction.guild.id}`) 36 | 37 | if (capslockSystem && capslockSystemDate) { 38 | const date = new EmbedBuilder() 39 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 40 | 41 | return interaction.reply({ embeds: [date] }) 42 | } 43 | 44 | db.set(`capslockengel_${interaction.guild.id}`, true) 45 | db.set(`capslockSystemDate_${interaction.guild.id}`, { date: Date.now() }) 46 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 47 | } 48 | 49 | case "kapat": { 50 | if(!capslockSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 51 | 52 | db.delete(`capslockengel_${interaction.guild.id}`) 53 | db.delete(`capslockSystemDate_${interaction.guild.id}`) 54 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 55 | } 56 | } 57 | 58 | } 59 | 60 | }; 61 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder } = require("discord.js") 3 | const fs = require("fs"); 4 | const db = require('croxydb') 5 | const config = require("./config.json"); 6 | 7 | const Rest = require("@discordjs/rest"); 8 | const DiscordApi = require("discord-api-types/v10"); 9 | 10 | const client = new Discord.Client({ 11 | intents: 3276543, 12 | partials: Object.values(Discord.Partials), 13 | allowedMentions: { 14 | parse: ["users", "roles", "everyone"] 15 | }, 16 | retryLimit: 3 17 | }); 18 | 19 | global.client = client; 20 | client.commands = (global.commands = []); 21 | 22 | /* SLASH COMMANDS */ 23 | 24 | console.log(`[-] ${fs.readdirSync("./commands").length} komut algılandı.`) 25 | 26 | for(let commandName of fs.readdirSync("./commands")) { 27 | if(!commandName.endsWith(".js")) return; 28 | 29 | const command = require(`./commands/${commandName}`); 30 | client.commands.push({ 31 | name: command.name.toLowerCase(), 32 | description: command.description.toLowerCase(), 33 | options: command.options, 34 | dm_permission: false, 35 | type: 1 36 | }); 37 | 38 | console.log(`[+] ${commandName} komutu başarıyla yüklendi.`) 39 | } 40 | 41 | /* EVENTS */ 42 | 43 | console.log(`[-] ${fs.readdirSync("./events").length} olay algılandı.`) 44 | 45 | for(let eventName of fs.readdirSync("./events")) { 46 | if(!eventName.endsWith(".js")) return; 47 | 48 | const event = require(`./events/${eventName}`); 49 | const evenet_name = eventName.split(".")[0]; 50 | 51 | client.on(event.name, (...args) => { 52 | event.run(client, ...args) 53 | }); 54 | 55 | console.log(`[+] ${eventName} olayı başarıyla yüklendi.`) 56 | } 57 | 58 | /* LOADING SLASH COMMANDS */ 59 | 60 | // 61 | 62 | client.once("ready", async() => { 63 | const rest = new Rest.REST({ version: "10" }).setToken(config.token); 64 | try { 65 | await rest.put(DiscordApi.Routes.applicationCommands(client.user.id), { 66 | body: client.commands, // 67 | }); 68 | } catch (error) { 69 | throw error; 70 | } 71 | }); 72 | 73 | client.login(config.token).then(() => { 74 | console.log(`[-] Discord API'ye istek gönderiliyor.`); 75 | eval("console.clear()") 76 | }).catch(() => { 77 | console.log(`[x] Discord API'ye istek gönderimi başarısız.`); 78 | }); -------------------------------------------------------------------------------- /commands/hesap-koruma.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "hesap-koruma", 5 | description: "💙 Hesap Koruma Sistemini Açıp Kapatırsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | }, 24 | ], 25 | 26 | run: async(client, interaction) => { 27 | const { user, guild, options } = interaction; 28 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 29 | const hesapkorumaSystemTrue = options.getString("seçenek"); 30 | const hesapkorumaSystem = db.fetch(`hesapkoruma_${interaction.guild.id}`) 31 | 32 | switch(hesapkorumaSystemTrue) { 33 | case "ac": { 34 | const hesapkorumaSystem = db.fetch(`hesapkoruma_${interaction.guild.id}`) 35 | const hesapkorumaSystemDate = db.fetch(`hesapkorumaDate_${interaction.guild.id}`) 36 | 37 | if (hesapkorumaSystem && hesapkorumaSystemDate) { 38 | const date = new EmbedBuilder() 39 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 40 | 41 | return interaction.reply({ embeds: [date] }) 42 | } 43 | 44 | db.set(`hesapkoruma_${interaction.guild.id}`, true) 45 | db.set(`hesapkorumaDate_${interaction.guild.id}`, { date: Date.now() }) 46 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 47 | } 48 | 49 | case "kapat": { 50 | if(!hesapkorumaSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 51 | 52 | db.delete(`hesapkoruma_${interaction.guild.id}`) 53 | db.delete(`hesapkorumaDate_${interaction.guild.id}`) 54 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 55 | } 56 | } 57 | 58 | } 59 | 60 | }; 61 | -------------------------------------------------------------------------------- /commands/küfür-engel.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "küfür-engel", 5 | description: "💙 Küfür Engel Sistemini Açıp Kapatırsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | } 24 | ], 25 | 26 | run: async(client, interaction) => { 27 | const { user, guild, options } = interaction; 28 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 29 | 30 | const kufurEngelSystemTrue = options.getString("seçenek"); 31 | const kufurEngelSystem = db.fetch(`kufurengel_${interaction.guild.id}`) 32 | 33 | 34 | switch(kufurEngelSystemTrue) { 35 | case "ac": { 36 | const kufurEngelSystem = db.fetch(`kufurengel_${interaction.guild.id}`) 37 | const kufurengelDate = db.fetch(`kufurengelDate_${interaction.guild.id}`) 38 | 39 | if (kufurEngelSystem && kufurengelDate) { 40 | const date = new EmbedBuilder() 41 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 42 | 43 | return interaction.reply({ embeds: [date] }) 44 | } 45 | 46 | db.set(`kufurengel_${interaction.guild.id}`, true) 47 | db.set(`kufurengelDate_${interaction.guild.id}`, { date: Date.now() }) 48 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 49 | } 50 | 51 | case "kapat": { 52 | if(!kufurEngelSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 53 | 54 | db.delete(`kufurengel_${interaction.guild.id}`) 55 | db.delete(`kufurengelDate_${interaction.guild.id}`) 56 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 57 | } 58 | } 59 | 60 | } 61 | 62 | }; 63 | -------------------------------------------------------------------------------- /commands/reklam-engel.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | module.exports = { 4 | name: "reklam-engel", 5 | description: "💙 Reklam Engel Sistemini Açıp Kapatırsın!", 6 | type: 1, 7 | options: [ 8 | { 9 | type: 3, 10 | name: "seçenek", 11 | description: "Sistemi kapatacak mısın yoksa açacak mısın?", 12 | required: true, 13 | choices: [ 14 | { 15 | name: "Aç", 16 | value: "ac" 17 | }, 18 | { 19 | name: "Kapat", 20 | value: "kapat" 21 | } 22 | ] 23 | } 24 | ], 25 | 26 | run: async(client, interaction) => { 27 | const { user, guild, options } = interaction; 28 | if(!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true}) 29 | 30 | const reklamEngelSystemTrue = options.getString("seçenek"); 31 | const reklamEngelSystem = db.fetch(`reklamengel_${interaction.guild.id}`) 32 | 33 | switch(reklamEngelSystemTrue) { 34 | case "ac": { 35 | const reklamEngelSystem = db.fetch(`reklamengel_${interaction.guild.id}`) 36 | const reklamEngelSystemDate = db.fetch(`reklamengelDate_${interaction.guild.id}`) 37 | 38 | if (reklamEngelSystem && reklamEngelSystemDate) { 39 | const date = new EmbedBuilder() 40 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 41 | 42 | return interaction.reply({ embeds: [date] }) 43 | } 44 | 45 | db.set(`reklamengel_${interaction.guild.id}`, true) 46 | db.set(`reklamengelDate_${interaction.guild.id}`, { date: Date.now() }) 47 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem açıldı!" }); 48 | } 49 | 50 | case "kapat": { 51 | if(!reklamEngelSystem) return interaction.reply({ content: "<:carpi:1040649840394260510> | Bu sistem zaten kapalı?" }); 52 | 53 | db.delete(`reklamengel_${interaction.guild.id}`) 54 | db.delete(`reklamengelDate_${interaction.guild.id}`) 55 | return interaction.reply({ content: "<:tik:1039607067729727519> | Başarılı bir şekilde sistem kapatıldı!" }); 56 | } 57 | } 58 | 59 | } 60 | 61 | }; 62 | -------------------------------------------------------------------------------- /commands/captcha-sistemi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "captcha-sistemi", 6 | description: "💙 Captcha sistemini ayarlarsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name: "captcha-kanalı", 11 | description: "Captcha kanalını ayarlarsın!", 12 | type: 7, 13 | required: true, 14 | channel_types: [0] 15 | }, 16 | { 17 | name: "rol", 18 | description: "Captcha rolünü ayarlarsın!", 19 | type: 8, 20 | required: true, 21 | }, 22 | ], 23 | // 24 | run: async (client, interaction) => { 25 | 26 | const { user, customId, guild } = interaction; 27 | const yetki = new Discord.EmbedBuilder() 28 | .setColor("Red") 29 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 30 | 31 | const kanal = interaction.options.getChannel('captcha-kanalı') 32 | const rol = interaction.options.getRole('rol') 33 | 34 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 35 | 36 | const rcaptchaSystem = db.fetch(`rcaptcha_${interaction.guild.id}`) 37 | const rcaptchaDate = db.fetch(`rcaptchaDate_${interaction.guild.id}`) 38 | 39 | if (rcaptchaSystem && rcaptchaDate) { 40 | const date = new EmbedBuilder() 41 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 42 | 43 | return interaction.reply({ embeds: [date] }) 44 | } 45 | 46 | const basarili = new EmbedBuilder() 47 | .setColor("Green") 48 | .setDescription(`<:tik:1039607067729727519> | __**Captcha Sistemi**__ başarıyla ayarlandı!\n\n<:kanal:1040649841996464139> Captcha Kanalı: ${kanal}\n<:bot:1039607042291269703> Captcha Rolü: ${rol}`) 49 | db.set(`rcaptcha_${interaction.guild.id}`, { kanal: kanal.id, rol: rol.id }) 50 | db.set(`rcaptchaDate_${interaction.guild.id}`, { date: Date.now() }) 51 | 52 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 53 | 54 | } 55 | 56 | }; -------------------------------------------------------------------------------- /commands/timeout-sistemi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "timeout-sistemi", 6 | description: "💙 Timeout sistemini ayarlarsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name: "log-kanalı", 11 | description: "Timeout atıldığında mesaj atılacacak kanalı ayarlarsın!", 12 | type: 7, 13 | required: true, 14 | channel_types: [0] 15 | }, 16 | { 17 | name: "yetkili-rol", 18 | description: "Timeout atabilecek yetkili rolünü ayarlarsın!", 19 | type: 8, 20 | required: true, 21 | }, 22 | ], 23 | // 24 | run: async (client, interaction) => { 25 | 26 | const yetki = new Discord.EmbedBuilder() 27 | .setColor("Red") 28 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 29 | 30 | const kanal = interaction.options.getChannel('log-kanalı') 31 | const rol = interaction.options.getRole('yetkili-rol') 32 | 33 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 34 | 35 | 36 | const timeoutSistemi = db.fetch(`timeoutSistemi_${interaction.guild.id}`) 37 | const timeoutSistemiDate = db.fetch(`timeoutSistemiDate_${interaction.guild.id}`) 38 | 39 | if (timeoutSistemi && timeoutSistemiDate) { 40 | const date = new EmbedBuilder() 41 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 42 | 43 | return interaction.reply({ embeds: [date] }) 44 | } 45 | 46 | const basarili = new EmbedBuilder() 47 | .setColor("Green") 48 | .setDescription(`<:tik:1039607067729727519> | __**Timeout Sistemi**__ başarıyla ayarlandı! __/timeout__ komutu ile sistemi kullanabilirsin.\n\n<:kanal:1040649841996464139> Log Kanalı: ${kanal}\n<:bot:1039607042291269703> Yetkili Rolü: ${rol}`) 49 | 50 | db.set(`timeoutSistemi_${interaction.guild.id}`, { log: kanal.id, yetkili: rol.id }) 51 | db.set(`timeoutSistemiDate_${interaction.guild.id}`, { date: Date.now() }) 52 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 53 | 54 | } 55 | 56 | }; -------------------------------------------------------------------------------- /commands/mute.js: -------------------------------------------------------------------------------- 1 | const { PermissionsBitField, EmbedBuilder } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const { createButton, deleteMessageButton } = require("../function/functions"); 4 | const db = require("croxydb") 5 | module.exports = { 6 | name: "mute", 7 | description: '💙 Kullanıcıya Mute atarsın.', 8 | type: 1, 9 | options: [ 10 | { 11 | name: "kullanıcı", 12 | description: "Mutelemek istediğiniz kişiyi etiketleyin!", 13 | type: 6, 14 | required: true 15 | }, 16 | { 17 | name: "sebep", 18 | description: "Mute sebebini gir!", 19 | type: 3, 20 | required: true 21 | }, 22 | ], 23 | run: async (client, interaction) => { 24 | 25 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.ManageRoles)) return interaction.reply({ content: "<:carpi:1040649840394260510> | Rolleri Yönet Yetkin Yok!", ephemeral: true }) 26 | const kullanıcı = interaction.options.getMember('kullanıcı') 27 | const sebep = interaction.options.getString('sebep') 28 | let mutekontrol = db.fetch(`rol_${interaction.guild.id}`) 29 | let kontrolmuteytkrol = db.fetch(`yetkili_${interaction.guild.id}`) 30 | if (!mutekontrol) return interaction.reply(`Mute Rolü ayarlanmamış!`) 31 | if (!kontrolmuteytkrol) return interaction.reply(`Mute Yetkilisi rolü ayarlanmamış!`) 32 | 33 | if (!interaction.member.roles.cache.has(db.fetch(`yetkili_${interaction.guild.id}`))) return interaction.reply(`<:carpi:1040649840394260510> | Bu komutu sadece ayarlanan **Mute Yetkilisi** rolü olan kişiler kullanabilir.`) 34 | 35 | const row = new Discord.ActionRowBuilder() 36 | .addComponents( 37 | new Discord.ButtonBuilder() 38 | .setCustomId('muteonay_'+interaction.user.id) 39 | .setLabel('Onayla') 40 | .setEmoji("1039607067729727519") 41 | .setStyle('Success'), 42 | new Discord.ButtonBuilder() 43 | .setCustomId('mutered_'+interaction.user.id) 44 | .setLabel('İptal') 45 | .setEmoji("1040649840394260510") 46 | .setStyle('Danger'), 47 | 48 | ); 49 | 50 | const embed = new EmbedBuilder() 51 | .setDescription(` 52 | ${kullanıcı}, isimli kişiye mute atmak istediğine emin misin? Mute sebebi: **${sebep ? sebep : "YOK"}** 53 | `) 54 | db.set(`muteKullanici_${interaction.user.id}`, kullanıcı.id) 55 | 56 | interaction.reply({ embeds: [embed], components: [row] }) 57 | 58 | } 59 | 60 | }; -------------------------------------------------------------------------------- /commands/kayıt-sistemi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "kayıt-sistemi", 6 | description: "💙 Kayıt sistemini ayarlarsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name: "kayıt-kanalı", 11 | description: "Kayıt kanalını ayarlarsın!", 12 | type: 7, 13 | required: true, 14 | channel_types: [0] 15 | }, 16 | { 17 | name: "kayıtlı-rol", 18 | description: "Kayıtlı rolünü ayarlarsın!", 19 | type: 8, 20 | required: true, 21 | }, 22 | { 23 | name: "kayıtsız-rol", 24 | description: "Kayıtsız rolünü ayarlarsın!", 25 | type: 8, 26 | required: true, 27 | }, 28 | ], 29 | // 30 | run: async (client, interaction) => { 31 | 32 | const { user, customId, guild } = interaction; 33 | const yetki = new Discord.EmbedBuilder() 34 | .setColor("Red") 35 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 36 | 37 | const kayıtkanal = interaction.options.getChannel('kayıt-kanalı') 38 | const kayıtlırol = interaction.options.getRole('kayıtlı-rol') 39 | const kayıtsızrol = interaction.options.getRole('kayıtsız-rol') 40 | 41 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 42 | 43 | const kayitSistemi = db.fetch(`kayıtsistemi_${interaction.guild.id}`) 44 | const kayıtSistemiDate = db.fetch(`kayıtsistemiDate_${interaction.guild.id}`) 45 | 46 | if (kayitSistemi && kayıtSistemiDate) { 47 | const date = new EmbedBuilder() 48 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 49 | 50 | return interaction.reply({ embeds: [date] }) 51 | } 52 | 53 | const basarili = new EmbedBuilder() 54 | .setColor("Green") 55 | .setDescription(`<:tik:1039607067729727519> | __**Kayıt Sistemi**__ başarıyla ayarlandı!\n\n<:kanal:1040649841996464139> Kayıt Kanalı: ${kayıtkanal}\n<:bot:1039607042291269703> Kayıtlı Rolü: ${kayıtlırol}\n<:bot:1039607042291269703> Kayıtsız Rolü: ${kayıtsızrol}`) 56 | db.set(`kayıtsistemi_${interaction.guild.id}`, { kayıtkanal: kayıtkanal.id, kayıtlırol: kayıtlırol.id, kayıtsızrol: kayıtsızrol.id }) 57 | db.set(`kayıtsistemiDate_${interaction.guild.id}`, { date: Date.now() } ) 58 | 59 | 60 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 61 | 62 | } 63 | 64 | }; -------------------------------------------------------------------------------- /commands/istatistik.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const Discord = require('discord.js') 3 | const moment = require("moment"); 4 | const db = require("croxydb") 5 | require("moment-duration-format"); 6 | const os = require("os"); 7 | module.exports = { 8 | name: "istatistik", 9 | description: "💙 Botun istatistiğini görürsün!", 10 | type: 1, 11 | options: [], 12 | 13 | run: async(client, interaction) => { 14 | const Uptime = moment 15 | .duration(client.uptime) 16 | .format(" D [gün], H [saat], m [dakika], s [saniye]"); 17 | const row = new Discord.ActionRowBuilder() 18 | .addComponents( 19 | new Discord.ButtonBuilder() 20 | .setLabel("Yenile") 21 | .setStyle(Discord.ButtonStyle.Secondary) 22 | .setEmoji('1039607071093567658') 23 | .setCustomId("yenile_"+interaction.user.id)) 24 | .addComponents( 25 | new Discord.ButtonBuilder() 26 | .setEmoji("1039607063443161158") 27 | .setLabel(" ") 28 | .setStyle(Discord.ButtonStyle.Secondary) 29 | .setCustomId(".clearMessageButton_"+interaction.user.id) 30 | ) 31 | let zaman = db.get(`botAcilis_`) 32 | let date = `` 33 | 34 | let servers = client.guilds.cache.size 35 | var yes1 = servers > 100 36 | var yes15 = servers > 150 37 | var yes2 = servers > 200 38 | var yes25 = servers > 250 39 | var yes3 = servers > 300 40 | var yes35 = servers > 350 41 | var yes4 = servers > 400 42 | var yes45 = servers > 450 43 | var yes5 = servers > 500 44 | 45 | var basDolu = "<:basdolubar:1095981131385544704>" 46 | var basBos = "<:basbosbar:1095981689144090654>" 47 | var ortaDolu = "<:ortadolubar:1095981133738561586>" 48 | var ortaBos = "<:ortabosbar:1095981373422051348>" 49 | var sonDolu = "<:sondolubar:1054411035374788708>" 50 | var sonBos = "<:sonbosbar:1095981520998649867>" 51 | 52 | let members = client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString() 53 | const embed = new EmbedBuilder() 54 | .setThumbnail(interaction.client.user.displayAvatarURL({ dynamic: true })) 55 | .addFields( 56 | { name: '<:dev:1039607045613166652> Bot Sahibi', value: `**aras#0001**`, inline: true }, 57 | { name: "👥 Kullanıcılar", value: `${members}`, inline: true }, 58 | { name: "🧩 Sunucular", value: `${servers}`, inline: true }, 59 | { name: "📼 Bellek Kullanımı", value: `${(process.memoryUsage().heapUsed / 1024 / 512).toFixed(2)}MB`, inline: true }, 60 | { name: "⏳ Açılma Süresi", value: `${date}`, inline: true }, 61 | { name: "⏺️ Ping", value: `${client.ws.ping}`, inline: true }, 62 | { name: `📋 Sunucu Hedef Barı [${servers}/500]`, value: `${yes1 ? `${basDolu}` : `${basBos}`}${yes15 ? `${ortaDolu}` : `${ortaBos}`}${yes2 ? `${ortaDolu}` : `${ortaBos}`}${yes25 ? `${ortaDolu}` : `${ortaBos}`}${yes3 ? `${ortaDolu}` : `${ortaBos}`}${yes35 ? `${ortaDolu}` : `${ortaBos}`}${yes4 ? `${ortaDolu}` : `${ortaBos}`}${yes45 ? `${ortaDolu}` : `${ortaBos}`}${yes5 ? `${sonDolu}` : `${sonBos}`}`, inline: true }, 63 | ) 64 | interaction.reply({embeds: [embed], components: [row]}) 65 | 66 | } 67 | 68 | }; 69 | -------------------------------------------------------------------------------- /commands/yardım.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const { createButton, deleteMessageButton } = require("../function/functions"); 4 | module.exports = { 5 | name: "yardım", 6 | description: "💙 Botun yardım menüsüne bakarsın!", 7 | type: 1, 8 | options: [], 9 | 10 | run: async(client, interaction) => { 11 | 12 | const embed = new EmbedBuilder() 13 | .setAuthor({ name: "Silex Yardım Menüsü", iconURL: client.user.displayAvatarURL({ dynamic: true })}) 14 | .setTitle("・Hangi komutlarım hakkında bilgi almak istiyorsan o butona bas!") 15 | .setDescription("\n\n**<:links:1039607057923461181> Linkler**\n> <:bot:1039607042291269703>・**Botun davet linki: [Tıkla](https://discord.com/api/oauth2/authorize?client_id=1038372156578480199&permissions=8&scope=bot%20applications.commands)**\n> <:duyuru:1039607050734403657>・**Botun destek sunucusu: [Tıkla](https://discord.gg/SY7aMsVpUJ)**\n> <:newmember:1044325552007422052>・**Botun gizlilik politikası: [Tıkla](https://github.com/araschain/Silex-Bot-Privacy-Policy)**") 16 | .setColor('Blue') 17 | const row1 = new Discord.ActionRowBuilder() 18 | 19 | .addComponents( 20 | new Discord.ButtonBuilder() 21 | .setEmoji("1039607060775571476") 22 | .setLabel("Moderasyon") 23 | .setStyle(Discord.ButtonStyle.Secondary) 24 | .setCustomId("moderasyon_"+interaction.user.id) 25 | ) 26 | 27 | .addComponents( 28 | new Discord.ButtonBuilder() 29 | .setEmoji("1039607052340834354") 30 | .setLabel("Kayıt") 31 | .setStyle(Discord.ButtonStyle.Secondary) 32 | .setCustomId("kayıt_"+interaction.user.id) 33 | ) 34 | 35 | .addComponents( 36 | new Discord.ButtonBuilder() 37 | .setEmoji("1039607059357913098") 38 | .setLabel("Kullanıcı") 39 | .setStyle(Discord.ButtonStyle.Secondary) 40 | .setCustomId("kullanıcı_"+interaction.user.id) 41 | ) 42 | .addComponents( 43 | new Discord.ButtonBuilder() 44 | .setEmoji("1039607040898781325") 45 | .setLabel("Sistemler") 46 | .setStyle(Discord.ButtonStyle.Secondary) 47 | .setCustomId("sistemler_"+interaction.user.id) 48 | ) 49 | 50 | const row2 = new Discord.ActionRowBuilder() 51 | .addComponents( 52 | new Discord.ButtonBuilder() 53 | .setLabel("Koruma") 54 | .setStyle(Discord.ButtonStyle.Secondary) 55 | .setEmoji("1044325545925672976") 56 | .setCustomId("korumasystem_"+interaction.user.id), 57 | ) 58 | .addComponents( 59 | new Discord.ButtonBuilder() 60 | .setLabel("ㅤㅤㅤ") 61 | .setStyle(Discord.ButtonStyle.Secondary) 62 | .setDisabled(true) 63 | .setCustomId("süsbuton2") 64 | ) 65 | .addComponents( 66 | new Discord.ButtonBuilder() 67 | .setLabel("Ana Sayfa") 68 | .setStyle(Discord.ButtonStyle.Secondary) 69 | .setEmoji('1044325564636471397') 70 | .setDisabled(true) 71 | .setCustomId("anasayfa_"+interaction.user.id) 72 | ) 73 | .addComponents( 74 | new Discord.ButtonBuilder() 75 | .setLabel("ㅤㅤㅤ") 76 | .setStyle(Discord.ButtonStyle.Secondary) 77 | .setDisabled(true) 78 | .setCustomId("süsbuton3") 79 | ) 80 | .addComponents( 81 | new Discord.ButtonBuilder() 82 | .setEmoji("1039607063443161158") 83 | .setLabel(" ") 84 | .setStyle(Discord.ButtonStyle.Secondary) 85 | .setCustomId(".clearMessageButton_"+interaction.user.id) 86 | ) 87 | 88 | interaction.reply({embeds: [embed], components: [row1, row2]}).then(msg => { 89 | msg.createMessageComponentCollector(user => user.clicker.user.id == interaction.user.id).on('collect', async (button) => { 90 | 91 | }) 92 | }) 93 | } 94 | 95 | }; -------------------------------------------------------------------------------- /commands/sunucubilgi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const Discord = require("discord.js") 3 | const moment = require('moment') 4 | module.exports = { 5 | name: "sunucu-bilgi", 6 | description: "💙 Sunucu bilgileri!", 7 | type: 1, 8 | options: [], 9 | 10 | run: async(client, interaction) => { 11 | 12 | const onlinekişi = interaction.guild.members.cache.filter(o => o.presence && o.presence.status === 'online').size 13 | const boştakişi = interaction.guild.members.cache.filter(o => o.presence && o.presence.status === 'idle').size 14 | const retmekişi = interaction.guild.members.cache.filter(o => o.presence && o.presence.status === 'dnd').size 15 | const offlinekişi = interaction.guild.members.cache.filter(o => !o.presence).size 16 | 17 | const kategori = interaction.guild.channels.cache.filter(c => c.type === 4).size 18 | const ses = interaction.guild.channels.cache.filter(c => c.type === 2).size 19 | const yazı = interaction.guild.channels.cache.filter(c => c.type === 0).size 20 | const altbaşlk = interaction.guild.channels.cache.filter(c => c.type === 11).size 21 | 22 | const sahip = await interaction.guild.fetchOwner() 23 | const bölge = interaction.guild.preferredLocale 24 | if(bölge === 'tr') { ülke = 'Türkiye' } else if(bölge === 'en-US') { ülke = 'Amerika' } else ülke = interaction.guild.preferredLocale 25 | const doğrulamailk = interaction.guild.verificationLevel 26 | if(doğrulamailk === 0) doğrulama = 'Yok' 27 | if(doğrulamailk === 1) doğrulama = 'Düşükk' 28 | if(doğrulamailk === 2) doğrulama = 'Orta' 29 | if(doğrulamailk === 3) doğrulama = 'Yüksek' 30 | if(doğrulamailk === 4) doğrulama = 'Çok Yüksek' 31 | 32 | const emojis = interaction.guild.emojis.cache.map(e => e.toString()) 33 | let array = []; 34 | for (let i = 0; i < 32; i++) { 35 | array.push(emojis[i]) 36 | } 37 | if(interaction.guild.emojis.cache.size === 0) { emoji = 'Emoji Yok' } else { emoji = array.join(" ") } 38 | 39 | const roles = interaction.guild.roles.cache.map(e => e.toString()) 40 | let array2 = []; 41 | for (let i = 0; i < 8; i++) { 42 | if(roles[i] !== '@everyone') { 43 | array2.push(roles[i] + ' ') 44 | } 45 | } 46 | if(interaction.guild.roles.cache.size < 5) { rol = 'Yönetilebilir Rol Yok' } else { rol = array2.join(" ") } 47 | 48 | const embed = new Discord.EmbedBuilder() 49 | .setColor("Purple") 50 | .setThumbnail(interaction.guild.iconURL({ dynamic: true }) ? interaction.guild.iconURL({ dynamic: true }) : 'https://cdn.discordapp.com/attachments/985147469363036232/1001388484868714527/6134072535d460dc1097a60a729b43c2.png') 51 | .addFields( 52 | { name: `Sunucu Adı`, value: `\`${interaction.guild.name}\``, inline: true }, 53 | { name: `Sunucu ID`, value: `\`${interaction.guild.id}\``, inline: true }, 54 | { name: `Sunucu Sahibi`, value: `\`${sahip.user.tag}\``, inline: true }, 55 | { name: `Sunucu Bölgesi`, value: `\`${ülke}\``, inline: true }, 56 | { name: `Oluşturulma Tarihi`, value: `\`${moment(interaction.guild.createdAt).format('D MMMM YYYY')}\``, inline: true }, 57 | { name: `Takviye Seviyesi`, value: ` \`${interaction.guild.premiumTier}. Seviye - ${interaction.guild.premiumSubscriptionCount} Takviye\``, inline: true }, 58 | { name: `Kişi-Bot Sayısı (\`${interaction.guild.memberCount}-${interaction.guild.members.cache.filter(x => x.user.bot == true).size}\`)`, value: `\`${onlinekişi} Çevirimiçi\n${retmekişi} Rahatsız Etmeyin\n${boştakişi} Boşta\n${offlinekişi} Çevrimdışı\``, inline: true }, 59 | { name: `Doğrulama Seviyesi`, value: `\`${doğrulama}\``, inline: true }, 60 | { name: `Kanal Sayısı (\`${interaction.guild.channels.cache.size}\`)`, value: `\`${kategori} Kategori Kanalları\n${ses} Ses Kanalları\n${yazı} Yazı Kanalları\n${altbaşlk} Altbaşlık Kanalları\``, inline: true }, 61 | { name: `Emojiler (\`${interaction.guild.emojis.cache.filter(a => a.animated === true).size}-${interaction.guild.emojis.cache.filter(a => a.animated === false).size}\`)`, value: emoji, inline: true }, 62 | { name: `Roller (\`${interaction.guild.roles.cache.size}\`)`, value: rol, inline: true } 63 | 64 | ) 65 | interaction.reply({ embeds: [embed] }) 66 | } 67 | 68 | }; -------------------------------------------------------------------------------- /commands/ayarlar.js: -------------------------------------------------------------------------------- 1 | const { AttachmentBuilder, EmbedBuilder, time } = require("discord.js"); 2 | 3 | module.exports = { 4 | name: "ayarlar", 5 | description: "💙 Sunucu ayarlarına bakarsın!", 6 | type: 1, 7 | options: [], 8 | 9 | 10 | run: async(client, interaction, db, Rank, AddRank, RemoveRank) => { 11 | 12 | const butonrolSystem = db.fetch(`buton_rol${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 13 | const botlistSystem = db.fetch(`botekle_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 14 | const capslockEngelSystem = db.fetch(`capslockengel_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 15 | const gorselEngelSystem = db.fetch(`görselengel_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 16 | const giriscikisSystem = db.fetch(`hgbb_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 17 | const kayitSystem = db.fetch(`kayıt_kanal_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 18 | const kufurEngelSystem = db.fetch(`kufurengel_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 19 | const modLogSystem = db.fetch(`modlogK_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 20 | const muteSystem = db.fetch(`yetkili_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 21 | const otorolSystem = db.fetch(`otorol_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 22 | const otoTagSystem = db.fetch(`ototag_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 23 | const ozelodaSystem = db.fetch(`ozelodasistemi_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 24 | const reklamEngelSystem = db.fetch(`reklamengel_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 25 | const ticketSystem = db.fetch(`ticketkanal_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 26 | const timeoutSystem = db.fetch(`timeoutSistemi_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 27 | const yasaklıKelimeSystem = db.fetch(`yasaklı_kelime_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 28 | const levelSystem = db.fetch(`acikmiLevel_${interaction.guild.id}`) ? "<:tik:1039607067729727519> | Açık" : "<:carpi:1040649840394260510> | Kapalı"; 29 | 30 | const embed = new EmbedBuilder() 31 | .setTitle("<:ayarlar:1039607040898781325> | Silex - Ayarlar Menüsü!") 32 | .addFields( 33 | { name: "**Botlist Sistemi:**", value: `${botlistSystem}`, inline: true }, 34 | { name: "**Buton Rol Sistemi**", value: `${butonrolSystem}`, inline: true }, 35 | { name: "**Capslock Sistemi**", value: `${capslockEngelSystem}`, inline: true }, 36 | { name: "**Görsel Engel Sistemi**", value: `${gorselEngelSystem}`, inline: true }, 37 | { name: "**Giriş Çıkış Sistemi**", value: `${giriscikisSystem}`, inline: true }, 38 | { name: "**Kayıt Sistemi**", value: `${kayitSystem}`, inline: true }, 39 | { name: "**Küfür Engel Sistemi**", value: `${kufurEngelSystem}`, inline: true }, 40 | { name: "**Mod Log Sistemi**", value: `${modLogSystem}`, inline: true }, 41 | { name: "**Mute Sistemi**", value: `${muteSystem}`, inline: true }, 42 | { name: "**Oto Rol Sistemi**", value: `${otorolSystem}`, inline: true }, 43 | { name: "**Oto Tag Sistemi**", value: `${otoTagSystem}`, inline: true }, 44 | { name: "**Özel Oda Sistemi**", value: `${ozelodaSystem}`, inline: true }, 45 | { name: "**Reklam Engel Sistemi**", value: `${reklamEngelSystem}`, inline: true }, 46 | { name: "**Ticket Sistemi**", value: `${ticketSystem}`, inline: true }, 47 | { name: "**Timeout Sistemi**", value: `${timeoutSystem}`, inline: true }, 48 | { name: "**Yasaklı Kelime Sistemi**", value: `${yasaklıKelimeSystem}`, inline: true }, 49 | { name: "**Level Sistemi**", value: `${levelSystem}`, inline: true } 50 | ) 51 | .setColor('Blue') 52 | interaction.reply({ embeds: [embed]}) 53 | 54 | 55 | } 56 | }; 57 | 58 | // -------------------------------------------------------------------------------- /commands/destek-sistemi.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | const Discord = require("discord.js") 4 | module.exports = { 5 | name: "destek-sistemi", 6 | description: "💙 Destek sistemini ayarlarsın!", 7 | type: 1, 8 | options: [ 9 | { 10 | name: "kanal", 11 | description: "Destek mesajının atılacağı kanalı ayarlarsın!", 12 | type: 7, 13 | required: true, 14 | channel_types: [0] 15 | }, 16 | { 17 | name: "log-kanalı", 18 | description: "Destek kapatıldığında mesaj atılacacak kanalı ayarlarsın!", 19 | type: 7, 20 | required: true, 21 | channel_types: [0] 22 | }, 23 | { 24 | name: "yetkili-rol", 25 | description: "Destek yetkilisini ayarlarsın!", 26 | type: 8, 27 | required: true, 28 | }, 29 | ], 30 | // 31 | run: async (client, interaction) => { 32 | 33 | const { user, customId, guild } = interaction; 34 | const yetki = new Discord.EmbedBuilder() 35 | .setColor("Red") 36 | .setDescription("<:carpi:1040649840394260510> | Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 37 | 38 | const ticketkanal = interaction.options.getChannel('kanal') 39 | const logkanal = interaction.options.getChannel('log-kanalı') 40 | const rol = interaction.options.getRole('yetkili-rol') 41 | 42 | if (!interaction.member.permissions.has(PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 43 | 44 | const ticketSystem = db.fetch(`ticketSystem_${interaction.guild.id}`) 45 | const ticketSystemDate = db.fetch(`ticketSystemDate_${interaction.guild.id}`) 46 | 47 | if (ticketSystem && ticketSystemDate) { 48 | const date = new EmbedBuilder() 49 | .setDescription(`<:carpi:1040649840394260510> | Bu sistem önce açılmış!`) 50 | 51 | return interaction.reply({ embeds: [date] }) 52 | } 53 | 54 | const category = await guild.channels.create({ 55 | name: 'Silex Ticket', 56 | type: Discord.ChannelType.GuildCategory, 57 | permissionOverwrites: [ 58 | { 59 | id: interaction.guild.id, 60 | deny: [Discord.PermissionsBitField.Flags.ViewChannel], 61 | }, 62 | ], 63 | }); 64 | 65 | const basarili = new EmbedBuilder() 66 | .setColor("Green") 67 | .setDescription(`<:tik:1039607067729727519> | __**Destek Sistemi**__ başarıyla ayarlandı!\n\n<:kanal:1040649841996464139> Destek Kanalı: ${ticketkanal}\n<:kanal:1040649841996464139> Log Kanalı: ${logkanal}\n<:bot:1039607042291269703> Yetkili Rolü: ${rol}`) 68 | db.set(`ticketKanal_${interaction.guild.id}`, logkanal.id) 69 | db.set(`ticketSystem_${interaction.guild.id}`, { yetkili: rol.id, ticketchannel: ticketkanal.id }) 70 | db.set(`ticketCategory_${interaction.guild.id}`, { category: category.id, log: logkanal.id }); 71 | db.set(`ticketSystemDate_${interaction.guild.id}`, { date: Date.now() }) 72 | 73 | const menu = new Discord.EmbedBuilder() 74 | .setColor("000000") 75 | .setTitle("<:soru:1039607065045385256> | Destek talebi nasıl açabilirim?") 76 | .setDescription("> Aşağıdaki **Destek Talebi Oluştur** butonuna basarak destek talebi oluşturabilirsin!") 77 | .setThumbnail(interaction.guild.iconURL({ dynamic: true })) 78 | .setFooter({ text: "Silex" }) 79 | 80 | const row11 = new Discord.ActionRowBuilder() 81 | 82 | .addComponents( 83 | new Discord.ButtonBuilder() 84 | .setEmoji("1044325577064190033") 85 | .setLabel("Destek Talebi Oluştur") 86 | .setStyle(Discord.ButtonStyle.Secondary) 87 | .setCustomId("ticketolustur_everyone"), 88 | new Discord.ButtonBuilder() 89 | .setEmoji("1039607065045385256") 90 | .setLabel("Nasıl oluşturabilirim?") 91 | .setStyle(Discord.ButtonStyle.Secondary) 92 | .setCustomId("ticketnasilacilir_everyone") 93 | ) 94 | 95 | ticketkanal.send({ embeds: [menu], components: [row11] }) 96 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 97 | 98 | } 99 | 100 | }; -------------------------------------------------------------------------------- /commands/untimeout.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const db = require("croxydb") 3 | 4 | module.exports = { 5 | name: "untimeout", 6 | description: "💙 Belirtilen kullanıcısının susturmasını kaldırırsın!", 7 | options: [ 8 | { 9 | type: 6, 10 | name: "kullanıcı", 11 | description: "Hangi üye'nin susturmasını kaldırmak istiyorsun?", 12 | required: true 13 | }, 14 | ], 15 | type: 1, 16 | 17 | run: async (client, interaction) => { 18 | 19 | let data = db.get(`timeoutSistemi_${interaction.guild.id}`) 20 | if (!data) return interaction.reply({ content: "<:carpi:1040649840394260510> | Dostum **__Timeout Sistemi__** ayarlanmamış.", ephemeral: true }) 21 | 22 | 23 | let yetkili = data.yetkili 24 | let kanal = data.log 25 | let channel = client.channels.cache.get(kanal) 26 | if (!channel) return interaction.reply({ content: `<:carpi:1040649840394260510> | Dostum **__Timeout Sistemi__** log kanalı bulunamadı.`, ephemeral: true }) 27 | 28 | 29 | const uyeYetki = new EmbedBuilder() 30 | .setColor("Red") 31 | .setDescription(`<:carpi:1040649840394260510> | Bu komutu kullanabilmek için <@&${yetkili}> rolüne sahip olmalısın!`) 32 | 33 | const botYetki = new EmbedBuilder() 34 | .setColor("Red") 35 | .setDescription("<:carpi:1040649840394260510> | Bunu yapabilmek için yeterli yetkiye sahip değilim.") 36 | 37 | const uyeBulunamadi = new EmbedBuilder() 38 | .setColor("Red") 39 | .setDescription("<:carpi:1040649840394260510> | Belirttiğin üyeyi bulamadım.") 40 | 41 | const pozisyon = new EmbedBuilder() 42 | .setColor("Red") 43 | .setDescription("<:carpi:1040649840394260510> | Kullanıcının rolü benim rolümden yüksek.") 44 | 45 | const pozisyon2 = new EmbedBuilder() 46 | .setColor("Red") 47 | .setDescription("<:carpi:1040649840394260510> | Kullanıcının rolü senin rolünden yüksek.") 48 | 49 | const sunucuSahibi = new EmbedBuilder() 50 | .setColor("Red") 51 | .setDescription("<:carpi:1040649840394260510> | Sunucu sahibini susturamazsın, nasıl kaldıracaksın?") 52 | 53 | const kendiniSusturma = new EmbedBuilder() 54 | .setColor("Red") 55 | .setDescription("<:carpi:1040649840394260510> | Kendi timeoutunu kaldıramazsın, zaten yok.") 56 | 57 | const botuSusturma = new EmbedBuilder() 58 | .setColor("Red") 59 | .setDescription("<:carpi:1040649840394260510> | Benim susturmam yok ki? Susturamazsında zaten :call_me:") 60 | 61 | const hata = new EmbedBuilder() 62 | .setColor("Red") 63 | .setDescription("<:carpi:1040649840394260510> | Komutu kullanırken bir hata oluştu.") 64 | 65 | const kullanıcı = interaction.options.getMember("kullanıcı") 66 | 67 | if (!interaction.member.roles.cache.has(yetkili)) return interaction.reply({ embeds: [uyeYetki], ephemeral: true }) 68 | let me = interaction.guild.members.cache.get(client.user.id) 69 | if (!me.permissions.has(PermissionsBitField.Flags.ModerateMembers)) return interaction.reply({ embeds: [botYetki], ephemeral: true }) 70 | 71 | if (!kullanıcı) return interaction.reply({ embeds: [uyeBulunamadi], ephemeral: true }) 72 | if (interaction.guild.ownerId === kullanıcı.id) return interaction.reply({ embeds: [sunucuSahibi], ephemeral: true }) 73 | if (interaction.author === kullanıcı.id) return interaction.reply({ embeds: [kendiniSusturma], ephemeral: true }) 74 | if (client.user.id === kullanıcı.id) return interaction.reply({ embeds: [botuSusturma], ephemeral: true }) 75 | 76 | if (interaction.guild.ownerId !== interaction.author) { 77 | if (kullanıcı.roles.highest.position >= interaction.member.roles.highest.position) return interaction.reply({ embeds: [pozisyon2], ephemeral: true }) 78 | } 79 | 80 | if (kullanıcı.roles.highest.position >= me.roles.highest.position) return interaction.reply({ embeds: [pozisyon], ephemeral: true }) 81 | 82 | await kullanıcı.timeout(1000).catch((e) => { 83 | return interaction.reply({ embeds: [hata], ephemeral: true }); 84 | }) 85 | // 86 | const logMessage = new EmbedBuilder() 87 | .setColor("Green") 88 | .setTitle("<:tik:1039607067729727519> | Bir Üye'nin Susturması Kaldırıldı!") 89 | .setDescription(`<@${interaction.user.id}> adlı yetkili <@${kullanıcı.id}> adlı kişinin susturmasını kaldırdı!`) 90 | .setTimestamp() 91 | .setThumbnail(kullanıcı.avatarURL({ dynamic: true })) 92 | 93 | const basarili = new EmbedBuilder() 94 | .setColor("Green") 95 | .setDescription(`<:tik:1039607067729727519> | ${kullanıcı} adlı üyenin susturmasını kaldırdım.`) 96 | 97 | channel.send({ embeds: [logMessage] }).catch((e) => { }) 98 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 99 | 100 | } 101 | 102 | }; 103 | -------------------------------------------------------------------------------- /commands/botlist.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js") 2 | const db = require("croxydb"); 3 | const { messageLink } = require("discord.js"); 4 | 5 | module.exports = { 6 | name: "botlist-ayarla", 7 | description: "💙 Botlist sistemini ayarlarsınız!", 8 | type: 1, 9 | options: [ 10 | { 11 | name: "botlist-log", 12 | description: "Botlist log kanalını ayarlarsınız!", 13 | type: 7, 14 | required: true, 15 | channel_types: [0] 16 | }, 17 | 18 | { 19 | name: "bot-rolü", 20 | description: "Botlara verilecek rolü ayarlarsınız!", 21 | type: 8, 22 | required: true 23 | }, 24 | 25 | { 26 | name: "developer-rolü", 27 | description: "Botunu ekleyen kişilere verilecek rolü ayarlarsınız!", 28 | type: 8, 29 | required: true 30 | }, 31 | 32 | { 33 | name: "yetkili-rolü", 34 | description: "Sunucunuza bot ekleyecek yetkili rolünü ayarlarsınız!", 35 | type: 8, 36 | required: true, 37 | }, 38 | 39 | { 40 | name: "onay-kanalı", 41 | description: "Botlist log kanalını ayarlarsınız!", 42 | type: 7, 43 | required: true, 44 | channel_types: [0] 45 | }, 46 | 47 | { 48 | name: "botekle-kanalı", 49 | description: "Botların eklenebileceği kanalı ayarlarsınız!", 50 | type: 7, 51 | required: true, 52 | channel_types: [0] 53 | }, 54 | 55 | { 56 | name: "ayrıldı-log", 57 | description: "Sunucu sahipleri çıktığında atılacak mesajın log kanalını ayarlarsınız!", 58 | type: 7, 59 | required: true, 60 | channel_types: [0] 61 | } 62 | 63 | ], 64 | run: async (client, interaction) => { 65 | 66 | const yetki = new Discord.EmbedBuilder() 67 | .setColor("Red") 68 | .setTitle("Yetersiz Yetki!") 69 | .setDescription("<:carpi:1040649840394260510> | > Bu komutu kullanabilmek için `Yönetici` yetkisine sahip olmalısın!") 70 | .setFooter({ text: "Silex" }) 71 | 72 | if (!interaction.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) return interaction.reply({ embeds: [yetki], ephemeral: true }) 73 | 74 | const log = interaction.options.getChannel('botlist-log') 75 | const botRol = interaction.options.getRole('bot-rolü') 76 | const devRol = interaction.options.getRole('developer-rolü') 77 | const adminRol = interaction.options.getRole('yetkili-rolü') 78 | const onay = interaction.options.getChannel('onay-kanalı') 79 | const botekle = interaction.options.getChannel('botekle-kanalı') 80 | const ayrildiLog = interaction.options.getChannel('ayrıldı-log') 81 | 82 | const row1 = new Discord.ActionRowBuilder() 83 | 84 | .addComponents( 85 | new Discord.ButtonBuilder() 86 | .setEmoji("1039607040898781325") 87 | .setLabel("Ayarlar") 88 | .setStyle(Discord.ButtonStyle.Secondary) 89 | .setCustomId("ayarlar_"+interaction.user.id) 90 | ) 91 | 92 | .addComponents( 93 | new Discord.ButtonBuilder() 94 | .setEmoji("1039607063443161158") 95 | .setLabel("Sistemi Sıfırla") 96 | .setStyle(Discord.ButtonStyle.Danger) 97 | .setCustomId("kapat_"+interaction.user.id) 98 | ) 99 | 100 | const basarili = new Discord.EmbedBuilder() 101 | .setColor("Green") 102 | .setTitle("<:tik:1039607067729727519> | Başarıyla Ayarlandı!") 103 | .setDescription("<:tik:1039607067729727519> | Botlist sistemi başarıyla ayarlandı!") 104 | .setFooter({ text: "Silex" }) 105 | 106 | 107 | const menu = new Discord.EmbedBuilder() 108 | .setColor("000000") 109 | .setTitle("<:soru:1039607065045385256> | Botumu Nasıl Eklerim?") 110 | .setDescription("> Aşağıdaki **Bot Ekle** butonuna basarak botunu ekleyebilirsin!") 111 | .setFooter({ text: "Silex" }) 112 | 113 | const row11 = new Discord.ActionRowBuilder() 114 | 115 | .addComponents( 116 | new Discord.ButtonBuilder() 117 | .setEmoji("1039607042291269703") 118 | .setLabel("Bot Ekle") 119 | .setStyle(Discord.ButtonStyle.Secondary) 120 | .setCustomId("botekle_everyone") 121 | ) 122 | 123 | botekle.send({ embeds: [menu], components: [row11] }) 124 | interaction.reply({ embeds: [basarili], components: [row1] }) 125 | 126 | db.set(`log_${interaction.guild.id}`, log.id) 127 | db.set(`botRol_${interaction.guild.id}`, botRol.id) 128 | db.set(`devRol_${interaction.guild.id}`, devRol.id) 129 | db.set(`adminRol_${interaction.guild.id}`, adminRol.id) 130 | db.set(`onay_${interaction.guild.id}`, onay.id) 131 | db.set(`botekle_${interaction.guild.id}`, botekle.id) 132 | db.set(`ayrildiLog_${interaction.guild.id}`, ayrildiLog.id) 133 | db.set(`botSira_${interaction.guild.id}`, 1) 134 | } 135 | } -------------------------------------------------------------------------------- /events/guildMemberRemove.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder, AttachmentBuilder } = require("discord.js"); 3 | const db = require("croxydb"); 4 | const moment = require("moment"); 5 | 6 | module.exports = { 7 | name: Discord.Events.GuildMemberRemove, 8 | 9 | run: async(client, member) => { 10 | const giriscikissystem = db.fetch(`canvaskanal_${member.guild.id}`) 11 | 12 | if(giriscikissystem) { 13 | const giriscikiskanal = member.guild.channels.cache.find(c => c.id === giriscikissystem.channel); 14 | 15 | const Canvas = require("canvas") 16 | 17 | const canvas = Canvas.createCanvas(648, 387); 18 | const ctx = canvas.getContext("2d"); 19 | 20 | const background = await Canvas.loadImage( 21 | "https://cdn.discordapp.com/attachments/1059089831604531243/1067877929016635412/giden.png" 22 | ); 23 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 24 | 25 | ctx.strokeStyle = "#3c3c3c"; 26 | ctx.strokeRect(0, 0, canvas.width, canvas.height); 27 | 28 | ctx.fillStyle = `#D3D3D3`; 29 | ctx.font = `37px "Warsaw"`; 30 | ctx.textAlign = "center"; 31 | ctx.fillText(`${member.user.tag}`, 320, 300); 32 | 33 | if(member.displayAvatarURL().endsWith(".webp") ) { 34 | var avatar1 = member.displayAvatarURL() 35 | 36 | img = await Canvas.loadImage(avatar1.replace("webp", "jpg")); 37 | } else { 38 | img = await Canvas.loadImage(member.displayAvatarURL({ format: "jpg", size: 1024 })); 39 | } 40 | 41 | let boyut = 85, x = 325.5, y = 161; 42 | ctx.beginPath(); 43 | ctx.arc(x, y, boyut, 0, 2 * Math.PI, false); 44 | ctx.clip(); 45 | ctx.drawImage(img, (x - boyut), (y - boyut), (boyut * 2), (boyut * 2)); 46 | 47 | const canvasgiris = new AttachmentBuilder(canvas.toBuffer(), { name: 'cikis.png' }); 48 | 49 | giriscikiskanal.send({content: `${member} sunucumuzdan çıktı! Sunucumuz **${member.guild.memberCount}** kişi kaldı.`, files: [canvasgiris]}); 50 | if (member.user.bot) { 51 | return giriscikiskanal.send(`Bu bir bot, ${member.user.tag}`); 52 | } 53 | } 54 | 55 | const hgbb = db.fetch(`hgbb_${member.guild.id}`) 56 | const sayacmessage = db.fetch(`sayacmessage_${member.guild.id}`) 57 | if(hgbb) { 58 | const kanal = member.guild.channels.cache.find(c => c.id === hgbb.channel); 59 | if(sayacmessage) { 60 | const cikismesaj = sayacmessage.leaveMsg 61 | .replaceAll("{guild.memberCount}", `${member.guild.memberCount}`) 62 | .replaceAll("{guild.name}", `${member.guild.name}`) 63 | .replaceAll("{owner.name}", `<@${member.guild.ownerId}>`) 64 | .replaceAll("{member}", `<@${member.user.id}>`) 65 | 66 | const cikismesajs = new Discord.EmbedBuilder() 67 | .setDescription(`${cikismesaj}`) 68 | try { 69 | kanal.send({ embeds: [cikismesajs] }); 70 | } catch(err) { } 71 | } else { 72 | const normalmesaj = new Discord.EmbedBuilder() 73 | .setDescription(`📤 | ${member} sunucudan ayrıldı! Sunucumuz **${member.guild.memberCount}** kişi kaldı!`) 74 | try { 75 | kanal.send({ embeds: [normalmesaj] }); 76 | } catch(err) { } 77 | } 78 | } 79 | 80 | if(db.fetch(`rcaptcha_${member.guild.id}`)) { 81 | if(db.fetch(`beklenıyor_${member.guild.id}${member.user.id}`)) return db.delete(`beklenıyor_${member.guild.id}${member.user.id}`) 82 | if(!db.fetch(`rcaptchaOnaylılar_${member.guild.id}`)) return; 83 | 84 | db.unpush(`rcaptchaOnaylılar_${member.guild.id}`, member.user.id) 85 | } 86 | 87 | let ayrildiLog = db.get(`ayrildiLog_${member.guild.id}`) 88 | 89 | var data = db.fetch(`ekledi_${member.id}`) 90 | if (!data) return; 91 | 92 | let botsdata = data 93 | const unban = new Discord.ActionRowBuilder() 94 | .addComponents( 95 | new Discord.ButtonBuilder() 96 | .setEmoji("🔓") 97 | .setLabel("Banı Kaldır") 98 | .setStyle(Discord.ButtonStyle.Danger) 99 | .setCustomId("unban_everyone") 100 | ) 101 | const banembed = new EmbedBuilder() 102 | .setColor("Red") 103 | .setTitle("<:tik:1039607067729727519> | Banlandı!") 104 | .setDescription("<@" + member.id + ">, sunucudan ayrıldığı için **botunu** sunucudan banladım!") 105 | 106 | member.guild.members.ban(botsdata).catch(() => { }) 107 | try { 108 | member.guild.channels.cache.get(ayrildiLog).send({ embeds: [banembed], components: [unban] }).then(mesaj => { 109 | db.delete(`ekleniyor_${member.user.id}`) 110 | db.set(`user_${mesaj.id}`, member.id) 111 | }) 112 | } catch(err) { } 113 | 114 | // 115 | } 116 | } -------------------------------------------------------------------------------- /func/AddRank.js: -------------------------------------------------------------------------------- 1 | const { createCanvas, loadImage } = require('canvas'); 2 | const { AttachmentBuilder } = require('discord.js'); 3 | 4 | module.exports = async(interaction, memberr, xp, lvl, reqXp) => { 5 | 6 | const background = 'https://cdn.discordapp.com/attachments/1036262356143046687/1051437842322173982/131279-anime-night-city-lights-city-bed-catzz.png'; //url background 7 | const defaultColor = '#36ffff'; 8 | const width = 1000; 9 | const height = 300; 10 | const margin = 32; 11 | const padding = 35; 12 | const avRadius = 90; 13 | const barRadius = 35; 14 | const gainedXp = xp; 15 | const requiredXp = reqXp; 16 | 17 | const level = lvl; 18 | 19 | const canvas = createCanvas(width, height); 20 | const ctx = canvas.getContext('2d'); 21 | 22 | let user = memberr 23 | 24 | if (background) { 25 | const img = await loadImage(background); 26 | 27 | const imgHeight = img.height * (width / img.width); 28 | 29 | ctx.drawImage(img, 0, (canvas.height / 2) - (imgHeight / 2), width, imgHeight); 30 | } else { 31 | ctx.fillStyle = '#23272a'; 32 | ctx.fillRect(0, 0, width, height); 33 | }; 34 | 35 | const defaultBgColor = '#090a0b'; 36 | 37 | const bgColor = background ? 38 | 'rgba(0, 0, 0, 0.6)' : 39 | defaultBgColor; 40 | 41 | var avatar; 42 | 43 | ctx.fillStyle = bgColor; 44 | ctx.fillRect(margin, margin, width - (margin * 2), height - (margin * 2)); 45 | 46 | if(memberr.displayAvatarURL().endsWith(".webp") ) { 47 | var avatar1 = user.displayAvatarURL() 48 | 49 | avatar = await loadImage(avatar1.replace("webp", "jpg")); 50 | } else { 51 | avatar = await loadImage(memberr.displayAvatarURL({ format: "jpg", size: 1024 })); 52 | } 53 | ctx.lineWidth = 8; 54 | 55 | const avX = (height / 2); 56 | 57 | fillRectWithImage(avatar, avX, height / 2, avRadius); 58 | 59 | const member = interaction.member 60 | 61 | 62 | 63 | let color = "#fff"; 64 | 65 | ctx.strokeStyle = color; 66 | ctx.beginPath(); 67 | ctx.arc(avX, height / 2, avRadius + (ctx.lineWidth / 2) - 1, 0, 2 * Math.PI); 68 | ctx.stroke(); 69 | ctx.closePath(); 70 | 71 | ctx.font = '48px Arial'; 72 | 73 | const name = user.username 74 | 75 | const nameX = (margin * 2) + padding + (avRadius * 2); 76 | const nameW = ctx.measureText(name).width; 77 | 78 | const barWidth = ((width - (margin * 2) - nameX) - padding) + 5; 79 | const progress = (gainedXp / requiredXp) * 100 * (barWidth / 100); 80 | 81 | ctx.lineWidth = barRadius; 82 | ctx.lineCap = 'round'; 83 | 84 | ctx.strokeStyle = '#484b4e'; 85 | 86 | const barX = nameX + 8; 87 | const barY = ((height - (margin + padding)) - (barRadius / 2)); 88 | 89 | const drawBar = (end) => { 90 | ctx.beginPath(); 91 | ctx.moveTo(barX, barY); 92 | ctx.lineTo(barX + end, barY); 93 | ctx.stroke(); 94 | }; 95 | 96 | drawBar(barWidth); 97 | 98 | ctx.strokeStyle = color; 99 | 100 | drawBar(progress); 101 | 102 | const nameY = barY - (barRadius / 2) - 15; 103 | 104 | ctx.fillStyle = 'white'; 105 | ctx.fillText(name, nameX, nameY); 106 | 107 | const smallerTextColor = '#676a6e'; 108 | 109 | ctx.font = '28px Arial'; 110 | ctx.fillStyle = smallerTextColor; 111 | ctx.fillText('#' + user.discriminator, (nameX + nameW) + 5, nameY); 112 | 113 | ctx.textAlign = 'end'; 114 | ctx.fillStyle = color; 115 | ctx.font = '65px Arial'; 116 | 117 | const measure = (text) => (ctx.measureText(text).width) + 10; 118 | 119 | let startX = barX + barWidth + 10; 120 | let startY = margin + 45 + padding; 121 | 122 | let measured = 0; 123 | 124 | const addText = (text, font, hex = color) => { 125 | ctx.fillStyle = hex; 126 | ctx.font = font; 127 | 128 | ctx.fillText(text, startX - measured, startY); 129 | 130 | measured += measure(text); 131 | }; 132 | 133 | const bigTextFont = '65px Arial'; 134 | const smallTextFont = '25px Arial'; 135 | const smallTextColor = '#eee'; 136 | 137 | addText(level, bigTextFont); 138 | addText('Seviye', smallTextFont, smallTextColor); 139 | 140 | measured = 0; 141 | 142 | startX -= 5; 143 | startY = nameY; 144 | 145 | const xpFont = '28px Arial'; 146 | 147 | addText(`/ ${requiredXp} XP`, xpFont, smallerTextColor); 148 | addText(gainedXp, xpFont, smallTextColor); 149 | 150 | function fillRectWithImage(img, x, y, r) { 151 | const canvas2 = createCanvas(r * 2, r * 2); 152 | const ctx2 = canvas2.getContext('2d'); 153 | 154 | ctx2.drawImage(img, 0, 0, r * 2, r * 2); 155 | ctx2.globalCompositeOperation = 'destination-in'; 156 | 157 | ctx2.arc(r, r, r, 0, 2 * Math.PI); 158 | ctx2.fill(); 159 | 160 | ctx.drawImage(canvas2, x - r, y - r); 161 | } 162 | 163 | const status = { 164 | online() { }, 165 | offline(x, y) { 166 | ctx.fillStyle = defaultBgColor; 167 | ctx.beginPath(); 168 | ctx.arc(x, y, statusRadius - 16, 0, 2 * Math.PI); 169 | ctx.fill(); 170 | }, 171 | dnd(x, y) { 172 | const size = 11; 173 | 174 | ctx.strokeStyle = defaultBgColor; 175 | ctx.lineWidth = 12; 176 | 177 | ctx.beginPath(); 178 | ctx.moveTo(x - size, y); 179 | ctx.lineTo(x + size, y); 180 | ctx.stroke(); 181 | }, 182 | idle(x, y) { 183 | ctx.fillStyle = defaultBgColor; 184 | ctx.beginPath(); 185 | ctx.arc(x - 10, y - 10, statusRadius - 15.5, 0, 2 * Math.PI); 186 | ctx.fill(); 187 | } 188 | }; 189 | 190 | const statusMargin = 65; 191 | const statusRadius = 30; 192 | 193 | const rank = new AttachmentBuilder(canvas.toBuffer(), {name: 'rank.png'}); 194 | 195 | return interaction.reply({ content: "✅ **|** İşlem başarılı, kullanıcının seviyesi arttırıldı.", files: [rank] }) 196 | } -------------------------------------------------------------------------------- /func/RemoveRank.js: -------------------------------------------------------------------------------- 1 | const { createCanvas, loadImage } = require('canvas'); 2 | const { AttachmentBuilder } = require('discord.js'); 3 | 4 | module.exports = async(interaction, memberr, xp, lvl, reqXp) => { 5 | 6 | const background = 'https://cdn.discordapp.com/attachments/1036262356143046687/1051437842322173982/131279-anime-night-city-lights-city-bed-catzz.png'; //url background 7 | const defaultColor = '#36ffff'; 8 | const width = 1000; 9 | const height = 300; 10 | const margin = 32; 11 | const padding = 35; 12 | const avRadius = 90; 13 | const barRadius = 35; 14 | const gainedXp = xp; 15 | const requiredXp = reqXp; 16 | 17 | const level = lvl; 18 | 19 | const canvas = createCanvas(width, height); 20 | const ctx = canvas.getContext('2d'); 21 | 22 | let user = memberr 23 | 24 | if (background) { 25 | const img = await loadImage(background); 26 | 27 | const imgHeight = img.height * (width / img.width); 28 | 29 | ctx.drawImage(img, 0, (canvas.height / 2) - (imgHeight / 2), width, imgHeight); 30 | } else { 31 | ctx.fillStyle = '#23272a'; 32 | ctx.fillRect(0, 0, width, height); 33 | }; 34 | 35 | const defaultBgColor = '#090a0b'; 36 | 37 | const bgColor = background ? 38 | 'rgba(0, 0, 0, 0.6)' : 39 | defaultBgColor; 40 | 41 | var avatar; 42 | 43 | ctx.fillStyle = bgColor; 44 | ctx.fillRect(margin, margin, width - (margin * 2), height - (margin * 2)); 45 | 46 | if(memberr.displayAvatarURL().endsWith(".webp") ) { 47 | var avatar1 = user.displayAvatarURL() 48 | 49 | avatar = await loadImage(avatar1.replace("webp", "jpg")); 50 | } else { 51 | avatar = await loadImage(memberr.displayAvatarURL({ format: "jpg", size: 1024 })); 52 | } 53 | 54 | ctx.lineWidth = 8; 55 | 56 | const avX = (height / 2); 57 | 58 | fillRectWithImage(avatar, avX, height / 2, avRadius); 59 | 60 | const member = interaction.member 61 | 62 | 63 | 64 | let color = "#fff"; 65 | 66 | ctx.strokeStyle = color; 67 | ctx.beginPath(); 68 | ctx.arc(avX, height / 2, avRadius + (ctx.lineWidth / 2) - 1, 0, 2 * Math.PI); 69 | ctx.stroke(); 70 | ctx.closePath(); 71 | 72 | ctx.font = '48px Arial'; 73 | 74 | const name = user.username 75 | 76 | const nameX = (margin * 2) + padding + (avRadius * 2); 77 | const nameW = ctx.measureText(name).width; 78 | 79 | const barWidth = ((width - (margin * 2) - nameX) - padding) + 5; 80 | const progress = (gainedXp / requiredXp) * 100 * (barWidth / 100); 81 | 82 | ctx.lineWidth = barRadius; 83 | ctx.lineCap = 'round'; 84 | 85 | ctx.strokeStyle = '#484b4e'; 86 | 87 | const barX = nameX + 8; 88 | const barY = ((height - (margin + padding)) - (barRadius / 2)); 89 | 90 | const drawBar = (end) => { 91 | ctx.beginPath(); 92 | ctx.moveTo(barX, barY); 93 | ctx.lineTo(barX + end, barY); 94 | ctx.stroke(); 95 | }; 96 | 97 | drawBar(barWidth); 98 | 99 | ctx.strokeStyle = color; 100 | 101 | drawBar(progress); 102 | 103 | const nameY = barY - (barRadius / 2) - 15; 104 | 105 | ctx.fillStyle = 'white'; 106 | ctx.fillText(name, nameX, nameY); 107 | 108 | const smallerTextColor = '#676a6e'; 109 | 110 | ctx.font = '28px Arial'; 111 | ctx.fillStyle = smallerTextColor; 112 | ctx.fillText('#' + user.discriminator, (nameX + nameW) + 5, nameY); 113 | 114 | ctx.textAlign = 'end'; 115 | ctx.fillStyle = color; 116 | ctx.font = '65px Arial'; 117 | 118 | const measure = (text) => (ctx.measureText(text).width) + 10; 119 | 120 | let startX = barX + barWidth + 10; 121 | let startY = margin + 45 + padding; 122 | 123 | let measured = 0; 124 | 125 | const addText = (text, font, hex = color) => { 126 | ctx.fillStyle = hex; 127 | ctx.font = font; 128 | 129 | ctx.fillText(text, startX - measured, startY); 130 | 131 | measured += measure(text); 132 | }; 133 | 134 | const bigTextFont = '65px Arial'; 135 | const smallTextFont = '25px Arial'; 136 | const smallTextColor = '#eee'; 137 | 138 | addText(level, bigTextFont); 139 | addText('Seviye', smallTextFont, smallTextColor); 140 | 141 | measured = 0; 142 | 143 | startX -= 5; 144 | startY = nameY; 145 | 146 | const xpFont = '28px Arial'; 147 | 148 | addText(`/ ${requiredXp} XP`, xpFont, smallerTextColor); 149 | addText(gainedXp, xpFont, smallTextColor); 150 | 151 | function fillRectWithImage(img, x, y, r) { 152 | const canvas2 = createCanvas(r * 2, r * 2); 153 | const ctx2 = canvas2.getContext('2d'); 154 | 155 | ctx2.drawImage(img, 0, 0, r * 2, r * 2); 156 | ctx2.globalCompositeOperation = 'destination-in'; 157 | 158 | ctx2.arc(r, r, r, 0, 2 * Math.PI); 159 | ctx2.fill(); 160 | 161 | ctx.drawImage(canvas2, x - r, y - r); 162 | } 163 | 164 | const status = { 165 | online() { }, 166 | offline(x, y) { 167 | ctx.fillStyle = defaultBgColor; 168 | ctx.beginPath(); 169 | ctx.arc(x, y, statusRadius - 16, 0, 2 * Math.PI); 170 | ctx.fill(); 171 | }, 172 | dnd(x, y) { 173 | const size = 11; 174 | 175 | ctx.strokeStyle = defaultBgColor; 176 | ctx.lineWidth = 12; 177 | 178 | ctx.beginPath(); 179 | ctx.moveTo(x - size, y); 180 | ctx.lineTo(x + size, y); 181 | ctx.stroke(); 182 | }, 183 | idle(x, y) { 184 | ctx.fillStyle = defaultBgColor; 185 | ctx.beginPath(); 186 | ctx.arc(x - 10, y - 10, statusRadius - 15.5, 0, 2 * Math.PI); 187 | ctx.fill(); 188 | } 189 | }; 190 | 191 | const statusMargin = 65; 192 | const statusRadius = 30; 193 | 194 | const rank = new AttachmentBuilder(canvas.toBuffer(), {name: 'rank.png'}); 195 | 196 | return interaction.reply({ content: "✅ **|** İşlem başarılı, kullanıcının seviyesi azaltıldı.", files: [rank] }) 197 | } -------------------------------------------------------------------------------- /func/Rank.js: -------------------------------------------------------------------------------- 1 | const { createCanvas, loadImage } = require('canvas'); 2 | const { AttachmentBuilder } = require('discord.js'); 3 | const db = require('croxydb') 4 | 5 | module.exports = async(interaction, xp, lvl, reqXp) => { 6 | let arkaplan = db.fetch(`arkaplan_${interaction.guild.id}`) 7 | const background = arkaplan || 'https://cdn.discordapp.com/attachments/1036262356143046687/1051437842322173982/131279-anime-night-city-lights-city-bed-catzz.png'; //url background 8 | const defaultColor = '#36ffff'; 9 | const width = 1000; 10 | const height = 300; 11 | const margin = 32; 12 | const padding = 35; 13 | const avRadius = 90; 14 | const barRadius = 35; 15 | const gainedXp = xp; 16 | const requiredXp = reqXp; 17 | 18 | const level = lvl; 19 | 20 | const canvas = createCanvas(width, height); 21 | const ctx = canvas.getContext('2d'); 22 | 23 | let user = interaction.user 24 | 25 | if (background) { 26 | const img = await loadImage(background); 27 | 28 | const imgHeight = img.height * (width / img.width); 29 | 30 | ctx.drawImage(img, 0, (canvas.height / 2) - (imgHeight / 2), width, imgHeight); 31 | } else { 32 | ctx.fillStyle = '#23272a'; 33 | ctx.fillRect(0, 0, width, height); 34 | }; 35 | 36 | const defaultBgColor = '#090a0b'; 37 | 38 | const bgColor = background ? 39 | 'rgba(0, 0, 0, 0.6)' : 40 | defaultBgColor; 41 | 42 | var avatar; 43 | 44 | ctx.fillStyle = bgColor; 45 | ctx.fillRect(margin, margin, width - (margin * 2), height - (margin * 2)); 46 | 47 | if(user.displayAvatarURL().endsWith(".webp") ) { 48 | var avatar1 = user.displayAvatarURL() 49 | 50 | avatar = await loadImage(avatar1.replace("webp", "jpg")); 51 | } else { 52 | avatar = await loadImage(user.displayAvatarURL({ format: "jpg", size: 1024 })); 53 | } 54 | 55 | ctx.lineWidth = 8; 56 | 57 | const avX = (height / 2); 58 | 59 | fillRectWithImage(avatar, avX, height / 2, avRadius); 60 | 61 | const member = interaction.member 62 | 63 | let color = "#fff"; 64 | 65 | ctx.strokeStyle = color; 66 | ctx.beginPath(); 67 | ctx.arc(avX, height / 2, avRadius + (ctx.lineWidth / 2) - 1, 0, 2 * Math.PI); 68 | ctx.stroke(); 69 | ctx.closePath(); 70 | 71 | ctx.font = '48px Arial'; 72 | 73 | const name = user.username 74 | 75 | const nameX = (margin * 2) + padding + (avRadius * 2); 76 | const nameW = ctx.measureText(name).width; 77 | 78 | const barWidth = ((width - (margin * 2) - nameX) - padding) + 5; 79 | const progress = (gainedXp / requiredXp) * 100 * (barWidth / 100); 80 | 81 | ctx.lineWidth = barRadius; 82 | ctx.lineCap = 'round'; 83 | 84 | ctx.strokeStyle = '#484b4e'; 85 | 86 | const barX = nameX + 8; 87 | const barY = ((height - (margin + padding)) - (barRadius / 2)); 88 | 89 | const drawBar = (end) => { 90 | ctx.beginPath(); 91 | ctx.moveTo(barX, barY); 92 | ctx.lineTo(barX + end, barY); 93 | ctx.stroke(); 94 | }; 95 | 96 | drawBar(barWidth); 97 | 98 | ctx.strokeStyle = color; 99 | 100 | drawBar(progress); 101 | 102 | const nameY = barY - (barRadius / 2) - 15; 103 | 104 | ctx.fillStyle = 'white'; 105 | ctx.fillText(name, nameX, nameY); 106 | 107 | const smallerTextColor = '#676a6e'; 108 | 109 | ctx.font = '28px Arial'; 110 | ctx.fillStyle = smallerTextColor; 111 | ctx.fillText('#' + user.discriminator, (nameX + nameW) + 5, nameY); 112 | 113 | ctx.textAlign = 'end'; 114 | ctx.fillStyle = color; 115 | ctx.font = '65px Arial'; 116 | 117 | const measure = (text) => (ctx.measureText(text).width) + 10; 118 | 119 | let startX = barX + barWidth + 10; 120 | let startY = margin + 45 + padding; 121 | 122 | let measured = 0; 123 | 124 | const addText = (text, font, hex = color) => { 125 | ctx.fillStyle = hex; 126 | ctx.font = font; 127 | 128 | ctx.fillText(text, startX - measured, startY); 129 | 130 | measured += measure(text); 131 | }; 132 | 133 | const bigTextFont = '65px Arial'; 134 | const smallTextFont = '25px Arial'; 135 | const smallTextColor = '#eee'; 136 | 137 | addText(level, bigTextFont); 138 | addText('Seviye', smallTextFont, smallTextColor); 139 | 140 | measured = 0; 141 | 142 | startX -= 5; 143 | startY = nameY; 144 | 145 | const xpFont = '28px Arial'; 146 | 147 | addText(`/ ${requiredXp} XP`, xpFont, smallerTextColor); 148 | addText(gainedXp, xpFont, smallTextColor); 149 | 150 | function fillRectWithImage(img, x, y, r) { 151 | const canvas2 = createCanvas(r * 2, r * 2); 152 | const ctx2 = canvas2.getContext('2d'); 153 | 154 | ctx2.drawImage(img, 0, 0, r * 2, r * 2); 155 | ctx2.globalCompositeOperation = 'destination-in'; 156 | 157 | ctx2.arc(r, r, r, 0, 2 * Math.PI); 158 | ctx2.fill(); 159 | 160 | ctx.drawImage(canvas2, x - r, y - r); 161 | } 162 | 163 | const status = { 164 | online() { }, 165 | offline(x, y) { 166 | ctx.fillStyle = defaultBgColor; 167 | ctx.beginPath(); 168 | ctx.arc(x, y, statusRadius - 16, 0, 2 * Math.PI); 169 | ctx.fill(); 170 | }, 171 | dnd(x, y) { 172 | const size = 11; 173 | 174 | ctx.strokeStyle = defaultBgColor; 175 | ctx.lineWidth = 12; 176 | 177 | ctx.beginPath(); 178 | ctx.moveTo(x - size, y); 179 | ctx.lineTo(x + size, y); 180 | ctx.stroke(); 181 | }, 182 | idle(x, y) { 183 | ctx.fillStyle = defaultBgColor; 184 | ctx.beginPath(); 185 | ctx.arc(x - 10, y - 10, statusRadius - 15.5, 0, 2 * Math.PI); 186 | ctx.fill(); 187 | } 188 | }; 189 | 190 | const statusMargin = 65; 191 | const statusRadius = 30; 192 | 193 | const rank = new AttachmentBuilder(canvas.toBuffer(), {name: 'rank.png'}); 194 | 195 | return interaction.reply({ files: [rank] }) 196 | } -------------------------------------------------------------------------------- /commands/timeout.js: -------------------------------------------------------------------------------- 1 | const { Client, EmbedBuilder, PermissionsBitField } = require("discord.js"); 2 | const ms = require("ms") 3 | const db = require("croxydb") 4 | 5 | module.exports = { 6 | name: "timeout", 7 | description: "💙 Kullanıcıyı belirttiğin süre boyunca susturursun.", 8 | options: [ 9 | { 10 | type: 6, 11 | name: "kullanıcı", 12 | description: "Kimi susturmamı istersin?", 13 | required: true 14 | }, 15 | { 16 | type: 3, 17 | name: "süre", 18 | description: "Ne kadar süre susturmamı istersin? 1m, 1h, 1d gibi bir süre belirt.", 19 | required: true 20 | }, 21 | { 22 | type: 3, 23 | name: "sebep", 24 | description: "Üyeye neden timeout atıyorsun?", 25 | required: true 26 | } 27 | ], 28 | type: 1, 29 | 30 | run: async (client, interaction) => { 31 | 32 | let data = db.get(`timeoutSistemi_${interaction.guild.id}`) 33 | if (!data) return interaction.reply({ content: "<:carpi:1040649840394260510> | Dostum **__Timeout Sistemi__** ayarlanmamış.", ephemeral: true }) 34 | 35 | 36 | let yetkili = data.yetkili 37 | let kanal = data.log 38 | let channel = client.channels.cache.get(kanal) 39 | if (!channel) return interaction.reply({ content: `<:carpi:1040649840394260510> | Dostum **__Timeout Sistemi__** log kanalı bulunamadı.`, ephemeral: true }) 40 | 41 | const uyeYetki = new EmbedBuilder() 42 | .setColor("Red") 43 | .setDescription(`<:carpi:1040649840394260510> | Bu komutu kullanabilmek için <@&${yetkili}> rolüne sahip olmalısın!`) 44 | 45 | const botYetki = new EmbedBuilder() 46 | .setColor("Red") 47 | .setDescription("<:carpi:1040649840394260510> | Bunu yapabilmek için yeterli yetkiye sahip değilim.") 48 | 49 | const uyeBulunamadi = new EmbedBuilder() 50 | .setColor("Red") 51 | .setDescription("<:carpi:1040649840394260510> | Belirttiğin üyeyi bulamadım.") 52 | 53 | const pozisyon = new EmbedBuilder() 54 | .setColor("Red") 55 | .setDescription("<:carpi:1040649840394260510> | Kullanıcının rolü benim rolümden yüksek.") 56 | 57 | const pozisyon2 = new EmbedBuilder() 58 | .setColor("Red") 59 | .setDescription("<:carpi:1040649840394260510> | Kullanıcının rolü senin rolünden yüksek.") 60 | 61 | const sunucuSahibi = new EmbedBuilder() 62 | .setColor("Red") 63 | .setDescription("<:carpi:1040649840394260510> | Sunucu sahibini susturamazsın dostum.") 64 | 65 | const kendiniSusturma = new EmbedBuilder() 66 | .setColor("Red") 67 | .setDescription("<:carpi:1040649840394260510> | Kendine neden timeout atmak istersin ki?") 68 | 69 | const botuSusturma = new EmbedBuilder() 70 | .setColor("Red") 71 | .setDescription("<:carpi:1040649840394260510> | Ben bir botum, beni susturup ne yapacaksın?") 72 | 73 | const gecerliSure = new EmbedBuilder() 74 | .setColor("Red") 75 | .setDescription("<:carpi:1040649840394260510> | Susturabilmem için geçerli bir süre girmelisin.") 76 | 77 | const hata = new EmbedBuilder() 78 | .setColor("Red") 79 | .setDescription("<:carpi:1040649840394260510> | Komutu kullanırken bir hata oluştu.") 80 | 81 | const kullanıcı = interaction.options.getMember("kullanıcı") 82 | const süre = interaction.options.getString("süre") 83 | const sebep = interaction.options.getString("sebep") 84 | 85 | if (!interaction.member.roles.cache.has(yetkili)) return interaction.reply({ embeds: [uyeYetki], ephemeral: true }) 86 | let me = interaction.guild.members.cache.get(client.user.id) 87 | if (!me.permissions.has(PermissionsBitField.Flags.ModerateMembers)) return interaction.reply({ embeds: [botYetki], ephemeral: true }) 88 | 89 | if (!kullanıcı) return interaction.reply({ embeds: [uyeBulunamadi], ephemeral: true }) 90 | if (interaction.guild.ownerId === kullanıcı.id) return interaction.reply({ embeds: [sunucuSahibi], ephemeral: true }) 91 | if (interaction.author === kullanıcı.id) return interaction.reply({ embeds: [kendiniSusturma], ephemeral: true }) 92 | if (client.user.id === kullanıcı.id) return interaction.reply({ embeds: [botuSusturma], ephemeral: true }) 93 | 94 | if (interaction.guild.ownerId !== interaction.author) { 95 | if (kullanıcı.roles.highest.position >= interaction.member.roles.highest.position) return interaction.reply({ embeds: [pozisyon2], ephemeral: true }) 96 | } 97 | 98 | if (kullanıcı.roles.highest.position >= me.roles.highest.position) return interaction.reply({ embeds: [pozisyon], ephemeral: true }) 99 | 100 | const timeout = ms(süre) 101 | if (!timeout) return interaction.reply({ embeds: [gecerliSure], ephemeral: true }) 102 | 103 | await kullanıcı.timeout(timeout).catch((e) => { 104 | return interaction.reply({ embeds: [hata], ephemeral: true }) 105 | }) 106 | // 107 | const logMessage = new EmbedBuilder() 108 | .setColor("Yellow") 109 | .setTitle("<:tik:1039607067729727519> | Bir Üye Susturuldu!") 110 | .setDescription(`<@${interaction.user.id}> adlı yetkili <@${kullanıcı.id}> adlı kişiyi **${süre}** boyunca \`${sebep}\` sebebiyle susturdu!`) 111 | .setTimestamp() 112 | .setThumbnail(kullanıcı.avatarURL({ dynamic: true })) 113 | 114 | const basarili = new EmbedBuilder() 115 | .setColor("Green") 116 | .setDescription(`<:tik:1039607067729727519> | ${kullanıcı} adlı kullanıcıya **${süre}** süre boyunca timeout atıldı!`) 117 | 118 | channel.send({ embeds: [logMessage] }).catch((e) => { }) 119 | return interaction.reply({ embeds: [basarili], ephemeral: true }).catch((e) => { }) 120 | 121 | } 122 | }; 123 | -------------------------------------------------------------------------------- /events/messageCreate.js: -------------------------------------------------------------------------------- 1 | const db = require("croxydb"); 2 | const { PermissionFlagsBits, EmbedBuilder, Events, PermissionsBitField } = require("discord.js"); 3 | const Discord = require("discord.js") 4 | 5 | module.exports = { 6 | name: Events.MessageCreate, 7 | 8 | run: async(client, message, msg) => { 9 | if(message.author.bot) return; 10 | if(!message.guild) return; 11 | 12 | const xp = db.fetch(`xpPos_${message.author.id}${message.guild.id}`); 13 | const levellog = db.fetch(`level_log_${message.guild.id}`); 14 | const level = db.fetch(`levelPos_${message.author.id}${message.guild.id}`) 15 | 16 | const acikmi = db.fetch(`acikmiLevel_${message.guild.id}`) ? true : false; 17 | if(acikmi) { 18 | 19 | if(xp >= 100) { 20 | db.subtract(`xpPos_${message.author.id}${message.guild.id}`, xp); 21 | db.add(`levelPos_${message.author.id}${message.guild.id}`, 1) 22 | 23 | try { // 24 | const embed = new EmbedBuilder() 25 | .setDescription(`GG!, artık yeni seviyene ulaştın, tebrikler! Yeni seviyen: **${level+1}**`) 26 | .setThumbnail(message.author.displayAvatarURL({ dynamic: true, size: 2048 })); 27 | client.channels.cache.get(levellog).send({ content: `${message.author}`, embeds: [embed] }) 28 | } catch(err) { 29 | console.log(err) 30 | } 31 | 32 | } else { 33 | db.add(`xpPos_${message.author.id}${message.guild.id}`, 0.5); 34 | } 35 | } 36 | 37 | 38 | if (await db.get(`afk_${message.author.id}`)) { 39 | 40 | const afkDate = db.fetch(`afkDate_${message.author.id}`) 41 | const sebep = db.fetch(`afk_${message.author.id}`) 42 | 43 | if (afkDate && sebep) { 44 | const date = new EmbedBuilder() 45 | .setDescription(`${message.author} Hoş geldin! **${sebep}** sebebiyle afk'ydın`) 46 | db.delete(`afk_${message.author.id}`); 47 | db.delete(`afkDate_${message.author.id}`) 48 | 49 | return message.reply({ embeds: [date] }) 50 | } 51 | 52 | } 53 | 54 | var kullanıcı = message.mentions.users.first(); 55 | if (kullanıcı) { 56 | const afkDate = db.fetch(`afkDate_${kullanıcı.id}`) 57 | 58 | const sebep = await db.get(`afk_${kullanıcı.id}`); 59 | 60 | if (sebep) { 61 | const sebeps = new EmbedBuilder() 62 | .setDescription(`<:soru:1039607065045385256> | Etiketlediğin kullanıcı **${sebep}** sebebiyle afk modunda!`) 63 | message.reply({ embeds: [sebeps] }); 64 | } 65 | } 66 | 67 | let kufur = db.fetch(`kufurengel_${message.guild.id}`) 68 | 69 | if(kufur) { 70 | const kufurler = [ 71 | 72 | "amk", 73 | "piç", 74 | "yarrak", 75 | "oç", 76 | "göt", 77 | "amq", 78 | "yavşak", 79 | "amcık", 80 | "amcı", 81 | "orospu", 82 | "sikim", 83 | "sikeyim", 84 | "aq", 85 | "mk" 86 | 87 | ] 88 | 89 | if(kufurler.some(alo => message.content.toLowerCase().includes(alo))) { 90 | if(message.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) return; 91 | if(message.author?.bot) return; 92 | 93 | message.delete() 94 | message.channel.send(`<:carpi:1040649840394260510> | Hey <@${message.author.id}>, Bu Sunucuda Küfür Engel Sistemi Aktif! `) 95 | } 96 | } 97 | 98 | let reklamlar = db.fetch(`reklamengel_${message.guild.id}`) 99 | 100 | if(reklamlar) { 101 | 102 | const linkler = [ 103 | 104 | ".com.tr", 105 | ".net", 106 | ".org", 107 | ".tk", 108 | ".cf", 109 | ".gf", 110 | "https://", 111 | ".gq", 112 | "http://", 113 | ".com", 114 | ".gg", 115 | ".porn", 116 | ".edu" 117 | 118 | ] 119 | 120 | if(linkler.some(alo => message.content.toLowerCase().includes(alo))) { 121 | if(message.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) return; 122 | if(message.author?.bot) return; 123 | message.delete() 124 | message.channel.send(`<:carpi:1040649840394260510> | Hey <@${message.author.id}>, Bu Sunucuda Reklam Engel Sistemi Aktif! `) 125 | } 126 | } 127 | 128 | let kanal = db.get(`görselengel.${message.guild.id}`); 129 | if(message.channel.id == kanal){ 130 | if(!message.attachments.first()){ 131 | 132 | if(message.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) return; 133 | if(message.author?.bot) return; 134 | message.delete() 135 | const embed = new EmbedBuilder() 136 | .setColor("Random") 137 | .setDescription(`${message.author}, Bu Kanalda Sadece GIF & Resim Atabilirsiniz.`) 138 | .setFooter({text: message.author.tag+" UYARI!"}) 139 | .setTimestamp() 140 | message.channel.send({embeds: [embed]}) 141 | 142 | }; 143 | 144 | }; 145 | 146 | const data = db.fetch(`yasaklı_kelime_${message.guild.id}`) 147 | if(data) { 148 | if(message.member.permissions.has(Discord.PermissionsBitField.Flags.Administrator)) return; 149 | if(message.author?.bot) return; 150 | if(data.includes(message.content)) { 151 | message.delete() 152 | const embed = new EmbedBuilder() 153 | .setTitle(`<:uyari:1040649846400499712> **UYARI!**`) 154 | .setDescription(`✋ | ${message.author}, Bu sunucuda bu kelime yasak!`) 155 | .setFooter({ text: message.author.username, iconURL: message.author.displayAvatarURL({ dynamic: true }) }) 156 | .setTimestamp() 157 | message.channel.send({ embeds: [embed] }) 158 | } 159 | } 160 | 161 | let saas = db.fetch(`saas_${message.guild.id}`) 162 | 163 | if(saas) { 164 | 165 | let selaamlar = message.content.toLowerCase()   166 | if(selaamlar === 'sa' || selaamlar === 'slm' || selaamlar === 'sea' || selaamlar === ' selamünaleyküm' || selaamlar === 'Selamün Aleyküm' || selaamlar === 'selam'){ 167 | 168 | message.channel.send(`<@${message.author.id}> Aleykümselam, Hoşgeldin ☺️`) 169 | } 170 | } 171 | if (message.content.length > 4) { 172 | if (db.fetch(`capslockengel_${message.guild.id}`)) { 173 | let caps = message.content.toUpperCase() 174 | if (message.content == caps) { 175 | if (!message.member.permissions.has(PermissionsBitField.Flags.Administrator)) { 176 | if (!message.mentions.users.first()) { 177 | message.delete() 178 | const embed = new EmbedBuilder() 179 | .setTitle(`<:uyari:1040649846400499712> **UYARI!**`) 180 | .setDescription(`✋ | ${message.author}, Bu sunucuda büyük harf kullanımı engelleniyor!`) 181 | .setFooter({text: message.author.username, iconURL: message.author.displayAvatarURL({ dynamic: true })}) 182 | .setTimestamp() 183 | message.channel.send({embeds: [embed]}) 184 | } 185 | } 186 | } 187 | } 188 | } 189 | 190 | } 191 | } -------------------------------------------------------------------------------- /events/guildMemberAdd.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const { EmbedBuilder, AttachmentBuilder } = require("discord.js"); 3 | const db = require("croxydb"); 4 | const moment = require("moment"); 5 | const rp = require("../helpers/rcapchta"); 6 | 7 | module.exports = { 8 | name: Discord.Events.GuildMemberAdd, 9 | 10 | run: async(client, member) => { 11 | 12 | const giriscikissystem = db.fetch(`canvaskanal_${member.guild.id}`) 13 | 14 | if(giriscikissystem) { 15 | const giriscikiskanal = member.guild.channels.cache.find(c => c.id === giriscikissystem.channel); 16 | 17 | const Canvas = require("canvas") 18 | 19 | const canvas = Canvas.createCanvas(648, 387); 20 | const ctx = canvas.getContext("2d"); 21 | 22 | const background = await Canvas.loadImage( 23 | "https://cdn.discordapp.com/attachments/1059089831604531243/1067877929251508376/gelen.png" 24 | ); 25 | ctx.drawImage(background, 0, 0, canvas.width, canvas.height); 26 | 27 | ctx.strokeStyle = "#3c3c3c"; 28 | ctx.strokeRect(0, 0, canvas.width, canvas.height); 29 | 30 | ctx.fillStyle = `#D3D3D3`; 31 | ctx.font = `37px "Warsaw"`; 32 | ctx.textAlign = "center"; 33 | ctx.fillText(`${member.user.tag}`, 320, 300); 34 | 35 | if(member.displayAvatarURL().endsWith(".webp") ) { 36 | var avatar1 = member.displayAvatarURL() 37 | 38 | img = await Canvas.loadImage(avatar1.replace("webp", "jpg")); 39 | } else { 40 | img = await Canvas.loadImage(member.displayAvatarURL({ format: "jpg", size: 1024 })); 41 | } 42 | 43 | let boyut = 85, x = 325.5, y = 161; 44 | ctx.beginPath(); 45 | ctx.arc(x, y, boyut, 0, 2 * Math.PI, false); 46 | ctx.clip(); 47 | ctx.drawImage(img, (x - boyut), (y - boyut), (boyut * 2), (boyut * 2)); 48 | 49 | const canvasgiris = new AttachmentBuilder(canvas.toBuffer(), { name: 'giris.png' }); 50 | try { 51 | giriscikiskanal.send({content: `${member} sunucumuza hoşgeldin! Sunucumuz **${member.guild.memberCount}** kişi oldu.`, files: [canvasgiris]}); 52 | } catch(err) { } 53 | if (member.user.bot) { 54 | try { 55 | giriscikiskanal.send(`Bu bir bot, ${member.user.tag}`); 56 | } catch(err) { } 57 | } 58 | } 59 | 60 | const hgbb = db.fetch(`hgbb_${member.guild.id}`) 61 | const sayacmessage = db.fetch(`sayacmessage_${member.guild.id}`) 62 | if(hgbb) { 63 | const kanal = member.guild.channels.cache.find(c => c.id === hgbb.channel); 64 | if(sayacmessage) { 65 | const girismesaj = sayacmessage.joinMsg 66 | .replaceAll("{guild.memberCount}", `${member.guild.memberCount}`) 67 | .replaceAll("{guild.name}", `${member.guild.name}`) 68 | .replaceAll("{owner.name}", `<@${member.guild.ownerId}>`) 69 | .replaceAll("{member}", `<@${member.user.id}>`) 70 | 71 | const girismesajs = new Discord.EmbedBuilder() 72 | .setDescription(`${girismesaj}`) 73 | try { 74 | kanal.send({ embeds: [girismesajs] }); 75 | } catch(err) { } 76 | } else { 77 | const normalmesaj = new Discord.EmbedBuilder() 78 | .setDescription(`:inbox_tray: | ${member} sunucuya katıldı! Sunucumuz **${member.guild.memberCount}** kişi oldu.`) 79 | try { 80 | kanal.send({ embeds: [normalmesaj] }); 81 | } catch(err) { } 82 | } 83 | } 84 | 85 | const data = db.fetch(`ekleniyor_${member.user.id}${member.guild.id}`) 86 | 87 | if(member.user.bot) { 88 | if(data) { 89 | let useravatar = await client.users.fetch(data.bot); 90 | let avatar = useravatar.avatar 91 | let link = "https://cdn.discordapp.com/avatars/" + data.bot + "/" + avatar + ".png?size=1024" 92 | const embed = new EmbedBuilder() 93 | .setTitle("<:tik:1039607067729727519> | Bot Onaylandı!") 94 | .setDescription("<@" + data.bot + "> adlı botun başvurusu kabul edildi!") 95 | .setThumbnail(link) 96 | .setColor("Green") 97 | 98 | const user = await member.guild.members.cache.get(data.user); 99 | 100 | const botrole = db.fetch(`botRol_${member.guild.id}`) 101 | const userrole = db.fetch(`devRol_${member.guild.id}`) 102 | 103 | member.roles.add(botrole) 104 | user.roles.add(userrole) 105 | 106 | const log = db.fetch(`log_${member.guild.id}`) 107 | const channel = await member.guild.channels.cache.get(log); 108 | try { 109 | channel.send({ content: `${user}`, embeds: [embed] }) 110 | } catch(err) { } 111 | db.delete(`botSira_${member.guild.id}`, 1) 112 | } 113 | } 114 | 115 | const tag = db.get(`ototag_${member.guild.id}`) 116 | if(tag) { 117 | member.setNickname(`${tag} | ${member.displayName}`) 118 | } 119 | 120 | const acc = member.user.bot ? db.fetch(`botrol_${member.guild.id}`) : db.fetch(`otorol_${member.guild.id}`); 121 | if(acc) { 122 | member.roles.add(acc).catch(() => {}) 123 | } 124 | 125 | 126 | // captcha sistemi 127 | if (db.fetch(`rcaptcha_${member.guild.id}`)) { 128 | const channel = member.guild.channels.cache.get(db.fetch(`rcaptcha_${member.guild.id}`).kanal); 129 | if (!channel) 130 | return; 131 | 132 | 133 | function randPassword(letters, numbers, either) { 134 | var chars = [ 135 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", 136 | "0123456789", 137 | "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" // either 138 | ]; 139 | 140 | return [letters, numbers, either].map(function (len, i) { 141 | return Array(len).fill(chars[i]).map(function (x) { 142 | return x[Math.floor(Math.random() * x.length)]; 143 | }).join(''); 144 | }).concat().join('').split('').sort(function () { 145 | return 0.5 - Math.random(); 146 | }).join(''); 147 | } 148 | const random = randPassword(3, 2, 1); 149 | 150 | const attachment = new Discord.AttachmentBuilder(rp(random), { name: `rcaptcha-${member.user.id}.png` }); 151 | 152 | const row = new Discord.ActionRowBuilder() 153 | .addComponents( 154 | new Discord.ButtonBuilder() 155 | .setCustomId(`benıdogrula_everyone_${member.guild.id}${member.user.id}`) 156 | .setLabel("Beni Doğrula") 157 | .setEmoji("1026818020120723476") 158 | .setStyle(Discord.ButtonStyle.Secondary), 159 | new Discord.ButtonBuilder() 160 | .setCustomId(`randomGöster_everyone_${member.guild.id}${member.user.id}`) 161 | .setLabel("Kodu Görüntüle") 162 | .setStyle(Discord.ButtonStyle.Secondary) 163 | ); 164 | 165 | db.set(`beklenıyor_${member.guild.id}${member.user.id}`, random); 166 | try { 167 | channel.send({ 168 | content: `<@${member.user.id}>`, embeds: [ 169 | new Discord.EmbedBuilder() 170 | .setColor("#36393F") 171 | .setAuthor({ name: client.user.tag, iconURL: client.user.displayAvatarURL({ dynamic: true }) }) 172 | .setDescription('• Merhaba Silex kullanıcısı, seni sunucumuza güvenle alabilmek için altta bulunan yazıyı butona tıklayarak yazman gerekiyor.') 173 | .setImage("attachment://rcaptcha-" + member.user.id + ".png") 174 | .setTimestamp() 175 | .setFooter({ text: member.user.username + " tarafından kullanıldı.", iconURL: member.user.displayAvatarURL({ dynamic: true }) }) 176 | ], files: [attachment], components: [row], fetchReply: true 177 | }); 178 | } catch(err) { } 179 | // 180 | } 181 | 182 | const uye = db.fetch(`kayıtlıuye_${member.id}`); 183 | 184 | if (uye) { 185 | const kayitsistemi = db.fetch(`kayıtsistemi_${member.guild.id}`) 186 | const registerChannel = await member.guild.channels.cache.find(ch => ch.id === kayitsistemi.kayıtkanal); 187 | const kayıtlırol = await member.guild.roles.cache.find(rl => rl.id === kayitsistemi.kayıtlırol); 188 | const kayıtsızrol = await member.guild.roles.cache.find(rl => rl.id === kayitsistemi.kayıtsızrol); 189 | member.setNickname(`${uye.isim} | ${uye.yas}`); 190 | await member.roles.add(kayıtlırol); 191 | await member.roles.remove(kayıtsızrol); 192 | try { 193 | registerChannel.send({ 194 | embeds: [ 195 | { 196 | description: `${member} sunucuya tekrar katıldı ve otomatik olarak kaydı yapıldı!` 197 | } 198 | ], 199 | }); 200 | } catch(err) { } 201 | } 202 | 203 | const kayitsistemi = db.fetch(`kayıtsistemi_${member.guild.id}`) 204 | 205 | if(kayitsistemi) { 206 | 207 | const registerChannel = await member.guild.channels.cache.find(ch => ch.id === kayitsistemi.kayıtkanal); 208 | const kayıtlırol = await member.guild.roles.cache.find(rl => rl.id === kayitsistemi.kayıtlırol); 209 | const kayıtsızrol = await member.guild.roles.cache.find(rl => rl.id === kayitsistemi.kayıtsızrol); 210 | 211 | member.guild.members.cache.get(member.id).roles.add(kayıtsızrol) 212 | 213 | const row = new Discord.ActionRowBuilder() 214 | .addComponents( 215 | new Discord.ButtonBuilder() 216 | .setCustomId("kayitol_"+member.user.id) 217 | .setLabel('Kayıt Ol') 218 | .setEmoji('1044325577064190033') 219 | .setStyle(Discord.ButtonStyle.Secondary), 220 | ); 221 | try { 222 | registerChannel.send({ content: `${member}`, embeds: [ 223 | { 224 | description: `<:giris:1041737371131056218> | Seni aramızda görmekten mutluluk duyuyoruz!\n\n<:bot:1039607042291269703> | Sunucumuza katılan **${member.guild.memberCount}.** üyesin.\n\n<:guardian:1044325535800635422> | Hesabın açılmıştır.\n\n<:uyari:1040649846400499712> | Sunucumuzun kurallarını okumayı unutma iyi eğlenceler.` 225 | } 226 | ], components: [row] }) 227 | } catch(err) { } 228 | 229 | }// 230 | 231 | const hesapKoruması = db.fetch(`hesapkoruma_${member.guild.id}`) 232 | const logChannel = await member.guild.channels.cache.find(ch => ch.id === hesapKoruması.channel); 233 | if(hesapKoruması) { 234 | 235 | const now = new Date().getTime() - client.users.cache.get(member.id).createdAt.getTime() < 1296000000 236 | 237 | if(now) { 238 | 239 | 240 | member.kick(); 241 | try { 242 | logChannel.send({ 243 | embeds: [ 244 | new EmbedBuilder() 245 | .setDescription(`⚠️ | **${member.user.tag}**, Hesabı yeni olduğu için sunucudan atıldı.`).setColor(`#FEE75C`).setFooter({ text: `${member.user.tag}`, iconURL: member.user.displayAvatarURL({ dynamic: true }) 246 | }) 247 | ] 248 | }) 249 | } catch(err) { } 250 | 251 | 252 | } 253 | 254 | } 255 | 256 | } 257 | } --------------------------------------------------------------------------------