├── başlat.bat ├── src ├── events │ ├── error.js │ ├── warn.js │ ├── disconnect.js │ ├── reconnecting.js │ ├── ratelimit.js │ ├── voiceStateUpdate.js │ ├── ready.js │ └── comandHandler.js ├── helpers │ └── function.js └── commands │ ├── button │ ├── partner-button.js │ ├── iliski-button.js │ ├── etkinlik-button.js │ └── etkinlik-button2.js │ ├── select-menu │ ├── takım-menü.js │ ├── iliski-menü.js │ ├── oyun-menü.js │ ├── renk-menü.js │ ├── burç-menü.js │ └── menü.js │ └── Owner │ └── yardım.js ├── README.md ├── package.json ├── config.json └── index.js /başlat.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color 0f 3 | cls 4 | :a 5 | node index.js 6 | goto a -------------------------------------------------------------------------------- /src/events/error.js: -------------------------------------------------------------------------------- 1 | module.exports = async function(e) { 2 | console.log(e) 3 | } 4 | 5 | module.exports.conf = { 6 | name: "error" 7 | } 8 | -------------------------------------------------------------------------------- /src/events/warn.js: -------------------------------------------------------------------------------- 1 | module.exports = async function(info) { 2 | console.log(info) 3 | } 4 | 5 | module.exports.conf = { 6 | name: "warn" 7 | } 8 | -------------------------------------------------------------------------------- /src/events/disconnect.js: -------------------------------------------------------------------------------- 1 | module.exports = async function() { 2 | console.log("Botun bağlantısı kesildi!"); 3 | } 4 | 5 | module.exports.conf = { 6 | name: "disconnect" 7 | } 8 | -------------------------------------------------------------------------------- /src/events/reconnecting.js: -------------------------------------------------------------------------------- 1 | module.exports = async function() { 2 | console.log("Bot Tekrar Bağlanıyor!") 3 | } 4 | 5 | module.exports.conf = { 6 | name: "reconnecting" 7 | } 8 | -------------------------------------------------------------------------------- /src/events/ratelimit.js: -------------------------------------------------------------------------------- 1 | module.exports = async function(RateLimitData) { 2 | console.log("[Wasley] Rate Limit Warn!", RateLimitData) 3 | } 4 | 5 | module.exports.conf = { 6 | name: "rateLimit" 7 | } 8 | -------------------------------------------------------------------------------- /src/events/voiceStateUpdate.js: -------------------------------------------------------------------------------- 1 | const client = global.client; 2 | 3 | module.exports = async function(___, newState) { 4 | //---SELFDEAF 5 | if (newState.member.user.bot && newState.channelID && newState.member.user.id == client.user.id && !newState.selfDeaf) return newState.setSelfDeaf(true); 6 | 7 | //---SELFMUTE 8 | if (newState.member.user.bot && newState.channelID && newState.member.user.id == client.user.id && !newState.selfMute) return newState.setSelfMute(true); 9 | } 10 | 11 | module.exports.conf = { 12 | name: "voiceStateUpdate" 13 | } 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # V13-Select Menülü ve Butonlu Seçim Altyapısı 2 | Herkesin aradığı Butonla Rol Alma Ve Menülü Rol Seçme Altyapısı İyi günlerde kullanın 3 | 4 | sizin sunucunuzda olmayan bir rol vb ley varsa o kısımları boş bırakın sorun yaratmayacaktır :D 5 | 6 | Desteğe ihtiyacınız olur ise 7 | 8 | 🥇 destek sunucumuz : https://discord.gg/HehFQ7Qcub 9 | 10 | **ETKİNLİK VE ÇEKİLİŞ KATILIMICISI SEÇİM** 11 | 12 | ![dgdfgd](https://user-images.githubusercontent.com/104096743/175775375-e0db38a2-4390-474f-ad96-72ee50babb18.PNG) 13 | 14 | **BUTTONLU ROL SEÇME** 15 | 16 | ![çljnhbgv](https://user-images.githubusercontent.com/104096743/175775380-eaef4e10-a834-452e-a86a-d7af2e4751dd.PNG) 17 | 18 | **ROL SEÇİM MENÜSÜ** 19 | 20 | ![şlökmjnhbgvfcvgbhnjmk](https://user-images.githubusercontent.com/104096743/175775383-93219081-ee53-4766-a736-02b6778ed501.PNG) 21 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Wasley select menü ve buton botu", 3 | "version": "0.0.1", 4 | "description": "Wasley tarafından Geliştirilen butonla rol secme Ve Menülü Rol Seçme Botu.", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node index.js" 8 | }, 9 | "author": "Wasley", 10 | "license": "MIT", 11 | "dependencies": { 12 | "@discordjs/voice": "^0.7.5", 13 | "bitfield": "^4.0.0", 14 | "discord-buttons": "^4.0.0", 15 | "discord-logs": "^2.0.1", 16 | "discord.js": "^13.6.0", 17 | "dotenv": "^14.2.0", 18 | "fs": "^0.0.2", 19 | "moment": "^2.29.1", 20 | "moment-duration-format": "^2.3.2", 21 | "ms": "^2.1.3", 22 | "parse-ms": "^3.0.0", 23 | "quick.db": "^7.1.3" 24 | }, 25 | "engines": { 26 | "node": "16.x" 27 | }, 28 | "keywords": [ 29 | "wasley" 30 | ] 31 | } 32 | -------------------------------------------------------------------------------- /src/events/ready.js: -------------------------------------------------------------------------------- 1 | const config = require("../../config.json"); 2 | const { joinVoiceChannel } = require("@discordjs/voice"); 3 | const db = require("quick.db"); 4 | const client = global.client; 5 | 6 | module.exports = () => { 7 | client.user.setActivity(config.bot.BotStatus, { type:1 , url: "https://www.youtube.com/watch?v=qmpzPtaa3vc"}); 8 | 9 | const VoiceChannel = client.channels.cache.get(config.channels.voicechannel); 10 | joinVoiceChannel({ 11 | channelId: VoiceChannel.id, 12 | guildId: VoiceChannel.guild.id, 13 | adapterCreator: VoiceChannel.guild.voiceAdapterCreator, 14 | selfDeaf: true, 15 | selfMute: true 16 | }); 17 | setInterval(function () { 18 | db.all().filter(data => data.ID.endsWith("girişçıkış")).forEach(data => { 19 | db.delete(data.ID) 20 | }) 21 | }, 1000 * 60 * 60 * 5) 22 | 23 | } 24 | 25 | module.exports.conf = { 26 | name: "ready" 27 | } 28 | -------------------------------------------------------------------------------- /src/helpers/function.js: -------------------------------------------------------------------------------- 1 | const { TextChannel, MessageEmbed } = require("discord.js"); 2 | const config = require("../../config.json"); 3 | const moment = require("moment"); 4 | moment.locale("tr"); 5 | 6 | module.exports = async client => { 7 | client.fetchUser = async (userID) => { 8 | try { 9 | return await client.users.fetch(userID); 10 | } catch (err) { 11 | return undefined; 12 | } 13 | }; 14 | 15 | TextChannel.prototype.error = async function (message, text) { 16 | const embed = new MessageEmbed() 17 | .setColor(message.member.displayHexColor) 18 | .setAuthor({name: message.member.displayName}) 19 | .setFooter({text: (config.bot.BotFooter)}) 20 | this.send({ embeds: [embed.setDescription(text)] }).then(x => { if (x.deletable) setTimeout(() => { x.delete(); }, 10000) }); 21 | }; 22 | 23 | client.tick = async function (message) { 24 | if (config.emojis.yes) { 25 | message.react(config.emojis.no); 26 | } 27 | }; 28 | 29 | client.ytick = async function (message) { 30 | if (config.emojis.no) { 31 | message.react(config.emojis.yes); 32 | } 33 | }; 34 | } -------------------------------------------------------------------------------- /src/commands/button/partner-button.js: -------------------------------------------------------------------------------- 1 | const config = require("../../../config.json") 2 | const db = require('quick.db'); 3 | const Discord = require("discord.js"); 4 | const moment = require("moment"); 5 | const limit = new Map(); 6 | moment.locale("tr"); 7 | module.exports = { 8 | name: "partner-button", 9 | aliases: ["partner"], 10 | 11 | execute: async (client, message, args, embed, author, channel, guild) => { 12 | if (!message.member.permissions.has("ADMINISTRATOR")) return message.reply({ embeds: [embed.setDescription(`Bu komutu kullanabilmek için öncelikle gerekli yetkin olmalı!`)] }).catch((err) => console.log(err), client.tick(message)).then((e) => setTimeout(() => { e.delete(); }, 10000)); 13 | 14 | message.delete() 15 | let button1 = new Discord.MessageButton() 16 | .setStyle('SUCCESS') 17 | .setEmoji('➰') 18 | .setLabel('Partner Rol') 19 | .setCustomId('partner') 20 | 21 | 22 | let row = new Discord.MessageActionRow() 23 | .addComponents(button1,) 24 | 25 | 26 | 27 | message.channel.send({ content:`Butona Basarak <@&${config.buttons.partner}> Rolünü Alablirsin 28 | 29 | `, components: [row] }) ; 30 | 31 | 32 | 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/commands/select-menu/takım-menü.js: -------------------------------------------------------------------------------- 1 | 2 | const { Client, Intents,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 3 | const config = require("../../../config.json") 4 | const db = require('quick.db'); 5 | const Discord = require("discord.js"); 6 | const moment = require("moment"); 7 | const limit = new Map(); 8 | moment.locale("tr"); 9 | module.exports = { 10 | name: "takım-seçim", 11 | aliases: ["takım-menü"], 12 | 13 | execute: async (client, message, args, embed, author, channel, guild) => { 14 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 15 | 16 | message.delete() 17 | 18 | client.api.channels(message.channel.id).messages.post({ 19 | data: { 20 | "content": `**Takım Rol :**`, 21 | "components": [{ 22 | "type": 1, "components": [{ 23 | "type": 3, "custom_id": "takim", "options": [ 24 | { "label": "Galatasaray", "value": "gs", "emoji": { "name": "❤️" }, }, 25 | { "label": "Fenerbahçe", "value": "fb", "emoji": { "name": "💛" }, }, 26 | { "label": "Beşiktaş", "value": "bjk", "emoji": { "name": "🖤" }, }, 27 | { "label": "TrabzonSpor", "value": "ts", "emoji": { "name": "💙" }, }, 28 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 29 | ], "placeholder": "Takım Rol Al", "min_values": 1, "max_values": 1 30 | }], 31 | } 32 | ] 33 | } 34 | }) 35 | }} 36 | -------------------------------------------------------------------------------- /src/commands/select-menu/iliski-menü.js: -------------------------------------------------------------------------------- 1 | 2 | const { Client, Intents,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 3 | const config = require("../../../config.json") 4 | const db = require('quick.db'); 5 | const Discord = require("discord.js"); 6 | const moment = require("moment"); 7 | const limit = new Map(); 8 | moment.locale("tr"); 9 | module.exports = { 10 | name: "iliski-seçim", 11 | aliases: ["ilişki-menü","iliski-menü"], 12 | 13 | execute: async (client, message, args, embed, author, channel, guild) => { 14 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 15 | 16 | message.delete() 17 | client.api.channels(message.channel.id).messages.post({ 18 | data: { 19 | "content": `**İlişki Rol :**`, 20 | "components": [{ 21 | "type": 1, "components": [{ 22 | "type": 3, "custom_id": "iliski", "options": [ 23 | { "label": "Sevgilim Var", "value": "sevgilimvar", "emoji": { "name": "❤️" }, }, 24 | { "label": "Sevgilim Yok", "value": "sevgilimyok", "emoji": { "name": "💔" }, }, 25 | { "label": "Sevgili Yapmıyorum", "value": "sevgiliyapmıyorum", "emoji": { "name": "🤍" }, }, 26 | { "label": "Lgbt", "value": "lgbt", "emoji": { "name": "🏳️‍🌈" }, }, 27 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 28 | ], "placeholder": "İlişki Rol Al", "min_values": 1, "max_values": 1 29 | }], 30 | } 31 | ] 32 | } 33 | }) 34 | }} 35 | -------------------------------------------------------------------------------- /src/commands/button/iliski-button.js: -------------------------------------------------------------------------------- 1 | const config = require("../../../config.json") 2 | const db = require('quick.db'); 3 | const Discord = require("discord.js"); 4 | const moment = require("moment"); 5 | const limit = new Map(); 6 | moment.locale("tr"); 7 | module.exports = { 8 | name: "iliski-button", 9 | aliases: ["ilişki-button"], 10 | 11 | execute: async (client, message, args, embed, author, channel, guild) => { 12 | if (!message.member.permissions.has("ADMINISTRATOR")) return message.reply({ embeds: [embed.setDescription(`Bu komutu kullanabilmek için öncelikle gerekli yetkin olmalı!`)] }).catch((err) => console.log(err), client.tick(message)).then((e) => setTimeout(() => { e.delete(); }, 10000)); 13 | 14 | message.delete() 15 | let button1 = new Discord.MessageButton() 16 | .setStyle('SUCCESS') 17 | .setEmoji('❤️') 18 | .setLabel('Sevgilim Var') 19 | .setCustomId('lovers') 20 | 21 | let button2 = new Discord.MessageButton() 22 | .setStyle('SUCCESS') 23 | .setEmoji('💔') 24 | .setLabel('Sevgilim Yok') 25 | .setCustomId('alone') 26 | 27 | let button3 = new Discord.MessageButton() 28 | .setStyle('SUCCESS') 29 | .setEmoji('🤍') 30 | .setLabel('Sevgili Yapmıyorum') 31 | .setCustomId('sevgiliyapmıyorum') 32 | 33 | let button4 = new Discord.MessageButton() 34 | .setStyle('SUCCESS') 35 | .setEmoji('🏳️‍🌈') 36 | .setLabel('Lgbt') 37 | .setCustomId('lgbt') 38 | 39 | 40 | let row = new Discord.MessageActionRow() 41 | .addComponents(button1,button2,button3,button4) 42 | 43 | 44 | 45 | message.channel.send({ content:`Aşağıdaki Butonlara Basarak \`İlişki\` Durumunuzu Seçebilirsiniz 46 | 47 | `, components: [row] }) ; 48 | 49 | 50 | 51 | 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/commands/button/etkinlik-button.js: -------------------------------------------------------------------------------- 1 | const config = require("../../../config.json") 2 | const db = require('quick.db'); 3 | const Discord = require("discord.js"); 4 | const moment = require("moment"); 5 | const limit = new Map(); 6 | moment.locale("tr"); 7 | module.exports = { 8 | name: "etkinlik-button", 9 | aliases: ["etkinlik"], 10 | 11 | execute: async (client, message, args, embed, author, channel, guild) => { 12 | if (!message.member.permissions.has("ADMINISTRATOR")) return message.reply({ embeds: [embed.setDescription(`Bu komutu kullanabilmek için öncelikle gerekli yetkin olmalı!`)] }).catch((err) => console.log(err), client.tick(message)).then((e) => setTimeout(() => { e.delete(); }, 10000)); 13 | 14 | message.delete() 15 | let button1 = new Discord.MessageButton() 16 | .setStyle('SUCCESS') 17 | .setEmoji('🎁') 18 | .setLabel('Etkinlik Katılımcısı') 19 | .setCustomId('etkinlik') 20 | 21 | let button2 = new Discord.MessageButton() 22 | .setStyle('SUCCESS') 23 | .setEmoji('🎉') 24 | .setLabel('Çekiliş Katılımcısı') 25 | .setCustomId('cekilis') 26 | 27 | 28 | 29 | 30 | let row = new Discord.MessageActionRow() 31 | .addComponents(button1, button2,) 32 | 33 | 34 | 35 | message.channel.send({ content:` 36 | Merhaba **${message.guild.name}** üyeleri, 37 | 38 | Aşağıda bulunan butonlardan Çekiliş Katılımcısı alarak çekilişlere katılıp **Netflix, Spotify, Nitro** ve benzeri ödüllerin sahibi olabilirsiniz. 39 | 40 | Aşağıda bulunan butonlardan Etkinlik Katılımcısı alarak **konserlerimizden, oyunlarımızdan, ve etkinliklerimizden** faydalanabilirsiniz. 41 | 42 | ***NOT***: Kayıtlı olarak hepiniz bu kanalı görebilmektesiniz. Bu sunucumuzda everyone here atılmayacağından dolayı kesinlikle rollerinizi almayı unutmayın! 43 | 44 | `, components: [row] }) ; 45 | 46 | 47 | 48 | 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /src/commands/select-menu/oyun-menü.js: -------------------------------------------------------------------------------- 1 | 2 | const { Client, Intents,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 3 | const config = require("../../../config.json") 4 | const db = require('quick.db'); 5 | const Discord = require("discord.js"); 6 | const moment = require("moment"); 7 | const limit = new Map(); 8 | moment.locale("tr"); 9 | module.exports = { 10 | name: "oyun-seçim", 11 | aliases: ["oyuun","oyun-menü"], 12 | 13 | execute: async (client, message, args, embed, author, channel, guild) => { 14 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 15 | 16 | message.delete() 17 | 18 | client.api.channels(message.channel.id).messages.post({ 19 | data: { 20 | "content": `**Oyun Rol :**`, 21 | "components": [{ 22 | "type": 1, "components": [{ 23 | "type": 3, "custom_id": "oyun", "options": [ 24 | { "label": "Minecraft", "value": "mc", "emoji": { "name": "🎯" }, }, 25 | { "label": "Mobile Legends", "value": "mlbb", "emoji": { "name": "🎯" }, }, 26 | { "label": "League Of Legends", "value": "lol", "emoji": { "name": "🎯" }, }, 27 | { "label": "Gta 5", "value": "gta5", "emoji": { "name": "🎯" }, }, 28 | { "label": "Valorant", "value": "valo", "emoji": { "name": "🎯" }, }, 29 | { "label": "Among Us", "value": "amongus", "emoji": { "name": "🎯" }, }, 30 | { "label": "Conter Strike Go", "value": "csgo", "emoji": { "name": "🎯" }, }, 31 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 32 | ], "placeholder": "Oyun Rol Al", "min_values": 1, "max_values": 1 33 | }], 34 | } 35 | ] 36 | } 37 | }) 38 | }} 39 | 40 | -------------------------------------------------------------------------------- /src/events/comandHandler.js: -------------------------------------------------------------------------------- 1 | const client = global.client; 2 | const { MessageEmbed } = require("discord.js"); 3 | const config = require("../../config.json"); 4 | const db = require("quick.db"); 5 | const ms = require('ms'); 6 | 7 | module.exports = async (message) => { 8 | if (!message.guild || message.author.bot) return 9 | const ownerr = client.users.cache.get("598974473374400512"); 10 | if (config.bot.prefix && !message.content.startsWith(config.bot.prefix)) return; 11 | const args = message.content.slice(1).trim().split(/ +/g); 12 | const command = args.shift().toLowerCase(); 13 | const cmd = client.commands.get(command) || [...client.commands.values()].find((e) => e.aliases && e.aliases.includes(command)); 14 | const author = message.author 15 | const channel = message.channel 16 | const guild = message.guild 17 | const embed = new MessageEmbed() 18 | .setColor(message.member.displayHexColor) 19 | .setAuthor({name: message.member.displayName}) 20 | .setFooter({text: (config.bot.BotFooter)}) 21 | if (cmd) { 22 | if (cmd.owner && config.bot.owner !== author.id) return; 23 | if (cmd.guildowner && config.bot.owner !== author.id && guild.owner.id !== author.id) return; 24 | if (client.cooldown.has(author.id) === config.bot.cooldown) { 25 | client.commandblocked.push(author.id) 26 | message.reply({ embeds: [embed.setDescription(`${author} komutları kötüye kullandığın için engellendin.`)] }); 27 | } 28 | if (client.commandblocked.includes(message.author)) return; 29 | cmd.execute(client, message, args, embed, author, channel, guild); 30 | if (config.bot.owner !== author && guild.owner !== author) { 31 | if (!client.cooldown.has(author)) client.cooldown.set(author, 1); 32 | else client.cooldown.set(author.id, client.cooldown.get(author.id) + 1); 33 | } 34 | setTimeout(() => { 35 | if (client.cooldown.has(author.id)) { 36 | client.cooldown.delete(author.id) 37 | } 38 | }, 1000 * 60 * 5); 39 | } 40 | } 41 | 42 | module.exports.conf = { 43 | name: "messageCreate" 44 | } 45 | -------------------------------------------------------------------------------- /src/commands/select-menu/renk-menü.js: -------------------------------------------------------------------------------- 1 | const { Client, Intents,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 2 | const config = require("../../../config.json") 3 | const db = require('quick.db'); 4 | const Discord = require("discord.js"); 5 | const moment = require("moment"); 6 | const limit = new Map(); 7 | moment.locale("tr"); 8 | module.exports = { 9 | name: "renk-seçim", 10 | aliases: ["renk-menü"], 11 | 12 | execute: async (client, message, args, embed, author, channel, guild) => { 13 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 14 | 15 | message.delete() 16 | 17 | client.api.channels(message.channel.id).messages.post({ 18 | data: { 19 | "content": `**Renk Rol :**`, 20 | "components": [{ 21 | "type": 1, "components": [{ 22 | "type": 3, "custom_id": "renk", "options": [ 23 | { "label": "Mavi", "value": "mavi", "emoji": { "name": "🔵" }, }, 24 | { "label": "Kırmızı", "value": "kırmızı", "emoji": { "name": "🔴" }, }, 25 | { "label": "Sarı", "value": "sarı", "emoji": { "name": "🟡" }, }, 26 | { "label": "Siyah", "value": "siyah", "emoji": { "name": "🖤" }, }, 27 | { "label": "Beyaz", "value": "beyaz", "emoji": { "name": "🤍" }, }, 28 | { "label": "Yeşil", "value": "yeşil", "emoji": { "name": "🟢" }, }, 29 | { "label": "Mor", "value": "mor", "emoji": { "name": "🟣" }, }, 30 | { "label": "Kahverengi", "value": "kahverengi", "emoji": { "name": "🟤" }, }, 31 | { "label": "Turuncu", "value": "turuncu", "emoji": { "name": "🟠" }, }, 32 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 33 | ], "placeholder": "Renk Rol Al", "min_values": 1, "max_values": 1 34 | }], 35 | } 36 | ] 37 | } 38 | }) 39 | }} 40 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "bot": { 3 | "owner": "598974473374400512", 4 | "token": "TOKEN", 5 | "prefix": "!", 6 | "BotStatus": "Wasley ❤️ Hesperos", 7 | "BotFooter": "Wasley ❤️ Hesperos", 8 | "cooldown": 8 9 | }, 10 | "channels": { 11 | "voicechannel": "988000498172968970" 12 | }, 13 | "Guild": { 14 | "GuildID": "1015392710489817149", 15 | "OwnerRole": "1020961181504114798", 16 | "tagrol": "1020961181504114798", 17 | "boosterrol": "1020961181504114798" 18 | }, 19 | "emojis": { 20 | "tada": "🎉", 21 | "yes": "✅", 22 | "no": "❌" 23 | }, 24 | "roles": { 25 | 26 | "couple": "988000419601064026", 27 | "alone": "988000420574163004", 28 | "lgbt": "988000424453885983", 29 | "sevgiliyapmıyorum":"988000422436417547", 30 | 31 | "minecraft": "988000447161856020", 32 | "mlbb": "988000452413112401", 33 | "lol": "988000450655690812", 34 | "gta5": "988000449804263464", 35 | "valorant": "988000448940232764", 36 | "amongus": "988000446327169034", 37 | "csgo": "988000444594929684", 38 | 39 | "koç": "988000427482185769", 40 | "boğa": "988000428258099221", 41 | "ikizler": "988000429508001816", 42 | "yengeç":"988000430455930931", 43 | "aslan": "988000432234332190", 44 | "başak": "988000434058850344", 45 | "terazi": "988000434994176040", 46 | "akrep": "988000435816259615", 47 | "yay": "988000437925982228", 48 | "oğlak": "988000439670816768", 49 | "kova": "988000440778121296", 50 | "balık": "988000441705062421", 51 | 52 | "gs": "988000456754233364", 53 | "fb": "988000455705636864", 54 | "ts": "988000458390003732", 55 | "bjk":"988000457593065492", 56 | 57 | "mavi": "988000320338661376", 58 | "kırmızı": "988000318547705876", 59 | "sarı": "988432916063330325", 60 | "siyah":"988000314525376532", 61 | "beyaz": "988432911013380117", 62 | "yeşil": "988000317473972315", 63 | "mor": "988000313325785118", 64 | "kahverengi": "988000312516288632", 65 | "turuncu": "988000316773511198", 66 | 67 | "günlüksoru":"997200512636178492", 68 | "chatetiket":"997200525000966174", 69 | "sunucuduyuru":"997218044801728612", 70 | 71 | "çekiliş": "988000389888630824", 72 | "etkinlik": "988000391784460288", 73 | "partner":"988000387661434913" 74 | 75 | } 76 | } 77 | 78 | -------------------------------------------------------------------------------- /src/commands/select-menu/burç-menü.js: -------------------------------------------------------------------------------- 1 | 2 | const { Client, Intents,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 3 | const config = require("../../../config.json") 4 | const db = require('quick.db'); 5 | const Discord = require("discord.js"); 6 | const moment = require("moment"); 7 | const limit = new Map(); 8 | moment.locale("tr"); 9 | module.exports = { 10 | name: "buçr-seçim", 11 | aliases: ["burç-menü","burç-menü"], 12 | 13 | execute: async (client, message, args, embed, author, channel, guild) => { 14 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 15 | 16 | client.api.channels(message.channel.id).messages.post({ 17 | data: { 18 | "content": `**Burç Rol :**`, 19 | "components": [{ 20 | "type": 1, "components": [{ 21 | "type": 3, "custom_id": "burc", "options": [ 22 | { "label": "Koç", "value": "koç", "emoji": { "name": "♈" }, }, 23 | { "label": "Boğa", "value": "boğa", "emoji": { "name": "♉" }, }, 24 | { "label": "İkizler", "value": "ikizler", "emoji": { "name": "♊" }, }, 25 | { "label": "Yengeç", "value": "yengeç", "emoji": { "name": "♋" }, }, 26 | { "label": "Aslan", "value": "aslan", "emoji": { "name": "♌" }, }, 27 | { "label": "Başak", "value": "başak", "emoji": { "name": "♍" }, }, 28 | { "label": "Terazi", "value": "terazi", "emoji": { "name": "♎" }, }, 29 | { "label": "Akrep", "value": "akrep", "emoji": { "name": "♏" }, }, 30 | { "label": "Yay", "value": "yay", "emoji": { "name": "♐" }, }, 31 | { "label": "Oğlak", "value": "oğlak", "emoji": { "name": "♑" }, }, 32 | { "label": "Kova", "value": "kova", "emoji": { "name": "♒" }, }, 33 | { "label": "Balık", "value": "balık", "emoji": { "name": "♓" }, }, 34 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 35 | ], "placeholder": "Burç Rol Al", "min_values": 1, "max_values": 1 36 | }], 37 | } 38 | ] 39 | } 40 | }) 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/commands/button/etkinlik-button2.js: -------------------------------------------------------------------------------- 1 | const config = require("../../../config.json") 2 | const db = require('quick.db'); 3 | const Discord = require("discord.js"); 4 | const moment = require("moment"); 5 | const limit = new Map(); 6 | moment.locale("tr"); 7 | module.exports = { 8 | name: "etkinlik-button2", 9 | aliases: ["etkinlik2"], 10 | 11 | execute: async (client, message, args, embed, author, channel, guild) => { 12 | if (!message.member.permissions.has("ADMINISTRATOR")) return message.reply({ embeds: [embed.setDescription(`Bu komutu kullanabilmek için öncelikle gerekli yetkin olmalı!`)] }).catch((err) => console.log(err), client.tick(message)).then((e) => setTimeout(() => { e.delete(); }, 10000)); 13 | 14 | message.delete() 15 | let button1 = new Discord.MessageButton() 16 | .setStyle('SUCCESS') 17 | .setEmoji('🎁') 18 | .setLabel('Etkinlik Katılımcısı') 19 | .setCustomId('etkinlik') 20 | 21 | let button2 = new Discord.MessageButton() 22 | .setStyle('SUCCESS') 23 | .setEmoji('🎉') 24 | .setLabel('Çekiliş Katılımcısı') 25 | .setCustomId('cekilis') 26 | 27 | let button3 = new Discord.MessageButton() 28 | .setStyle('SUCCESS') 29 | .setEmoji('📣') 30 | .setLabel('Sunucu duyuru etiket') 31 | .setCustomId('swduyuru') 32 | 33 | let button4 = new Discord.MessageButton() 34 | .setStyle('SUCCESS') 35 | .setEmoji('🔖') 36 | .setLabel('günlük soru etiket') 37 | .setCustomId('günlüksoru') 38 | 39 | let button5 = new Discord.MessageButton() 40 | .setStyle('SUCCESS') 41 | .setEmoji('🧿') 42 | .setLabel('chat etiket') 43 | .setCustomId('chatetiket') 44 | 45 | 46 | 47 | 48 | 49 | let row = new Discord.MessageActionRow() 50 | .addComponents(button1, button2,button3) 51 | 52 | let row2 = new Discord.MessageActionRow() 53 | .addComponents(button4,button5) 54 | 55 | 56 | 57 | message.channel.send({ content:` 58 | Merhaba **${message.guild.name}** üyeleri, 59 | 60 | Aşağıda bulunan butonlardan Çekiliş Katılımcısı alarak çekilişlere katılıp **Netflix, Spotify, Nitro** ve benzeri ödüllerin sahibi olabilirsiniz. 61 | 62 | Aşağıda bulunan butonlardan Etkinlik Katılımcısı alarak **konserlerimizden, oyunlarımızdan, ve etkinliklerimizden** faydalanabilirsiniz. 63 | 64 | ***NOT***: Kayıtlı olarak hepiniz bu kanalı görebilmektesiniz. Bu sunucumuzda everyone here atılmayacağından dolayı kesinlikle rollerinizi almayı unutmayın! 65 | 66 | `, components: [row,row2] }) ; 67 | 68 | 69 | 70 | 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /src/commands/Owner/yardım.js: -------------------------------------------------------------------------------- 1 | const { MessageActionRow, MessageButton, MessageEmbed , MessageSelectMenu } = require('discord.js'); 2 | const config = require("../../../config.json"); 3 | 4 | module.exports = { 5 | name: "yardım", 6 | aliases: ["help"], 7 | execute: async (client, message, args, embed, author, channel, guild) => { 8 | 9 | if (!message.member.permissions.has("ADMINISTRATOR")) return message.reply({ embeds: [embed.setDescription(`Bu komutu kullanabilmek için öncelikle gerekli yetkin olmalı!`)] }).catch((err) => console.log(err), client.tick(message)).then((e) => setTimeout(() => { e.delete(); }, 10000)); 10 | 11 | 12 | const menu = new MessageActionRow() 13 | .addComponents( 14 | new MessageSelectMenu() 15 | .setCustomId('menu1') 16 | .setPlaceholder('Yardım Menüsü.') 17 | .addOptions([ 18 | { 19 | label: 'Menü Komutları', 20 | description: 'Kullanıcı Komutlarını Görmek İçin Tıklayınız.', 21 | value: 'menü', 22 | }, 23 | { 24 | label: 'Button Komutları', 25 | description: 'kayıt komutlarını görmek için tıklayınız.', 26 | value: 'button', 27 | }, 28 | { 29 | label: 'Bot Hakkında Bilgi', 30 | description: 'Bilgilendirme.', 31 | value: 'bilgi', 32 | }, 33 | ]), 34 | ); 35 | 36 | const m = await message.channel.send({ content: ` Aşağıdaki Menüden Botun Tüm Komutlarına Bakabilirsiniz.`,components: [menu] }); 37 | 38 | const collector = m.createMessageComponentCollector({ filter: w=>w.user.id===message.author.id }) 39 | 40 | 41 | client.on("interactionCreate", async(interaction) => { 42 | 43 | if(interaction.values && interaction.values[0] == 'menü'){ 44 | await interaction.reply({ content: ` 45 | 46 | \`${config.bot.prefix}burç-menü\` : Burç Rol seçim menüsü oluşturur 47 | \`${config.bot.prefix}iliski-menü\` : İlişki Rol seçim menüsü oluşturur 48 | \`${config.bot.prefix}oyun-menü\` : Oyun Rol seçim menüsü oluşturur 49 | \`${config.bot.prefix}renk-menü\` : Renk Rol seçim menüsü oluşturur 50 | \`${config.bot.prefix}takım-menü\` : Takım Rol seçim menüsü oluşturur 51 | ` 52 | , ephemeral: true}) 53 | } 54 | 55 | if(interaction.values && interaction.values[0] == 'button'){ 56 | await interaction.reply({ content: ` 57 | 58 | \`${config.bot.prefix}etkinlik-button\` : etkinlik ve çekiliş etiket rolleri verir 59 | \`${config.bot.prefix}etkinlik-button2\` : etkinlik ve çekiliş seçim sisteminin gelişmiş hali 60 | \`${config.bot.prefix}iliski-button\` : menülü sistem aksine ilişki rol alma kısmının butonlu hali 61 | \`${config.bot.prefix}partner-button\` : Partner kanallarını görmeniz için rol verme butonu oluşturur 62 | ` 63 | , ephemeral: true}) 64 | } 65 | 66 | if(interaction.values && interaction.values[0] == 'bilgi'){ 67 | await interaction.reply({ content: ` 68 | 69 | \`Bot hesperos sunucusu için yapılmıştır ve sizin kullanımınızada sunmak istedim ❤️😋\` 70 | 71 | Bot basit kodlar ile yapılmış biraz göz gezdirseniz sizinde kolayca js bilmeden komut yazabileceğiniz bir şekildedir 72 | 73 | Bot etkileşim başarısız oldu diye bir hata verirse merak etmeyin arıza deil rolleri veriyor ama mesaj atmıyor size 74 | 75 | Botunuzda hata olur ise botu yapan kişi \`Wasley\` e dm yolu ile iletişim kurabilirsiniz yada discord sunucumuza gelip yardım isteyebilirsiniz 76 | 77 | public sunucumuz : discord.gg/hesperos 78 | 79 | destek sunucumuz : https://discord.gg/RPxRfU2ZpM 80 | 81 | ` 82 | , ephemeral: true}) 83 | } 84 | 85 | 86 | 87 | 88 | }) 89 | 90 | 91 | 92 | 93 | 94 | } 95 | } -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | const { Client, Collection, Intents } = require("discord.js"); 2 | const client = global.client = new Client({ 3 | intents: [ 4 | Intents.FLAGS.GUILDS, 5 | Intents.FLAGS.GUILD_MEMBERS, 6 | Intents.FLAGS.GUILD_MESSAGES, 7 | Intents.FLAGS.GUILD_VOICE_STATES, 8 | Intents.FLAGS.GUILD_PRESENCES, 9 | ] 10 | }); 11 | const dotenv = require("dotenv"); 12 | dotenv.config(); 13 | const { readdir } = require("fs"); 14 | require("moment-duration-format"); 15 | const config = require("./config"); 16 | const commands = client.commands = new Collection(); 17 | const aliases = client.aliases = new Collection(); 18 | client.cooldown = new Map(); 19 | client.commandblocked = []; 20 | 21 | require("./src/helpers/function")(client); 22 | 23 | readdir("./src/commands/", (err, files) => { 24 | if (err) console.error(err) 25 | files.forEach(f => { 26 | readdir("./src/commands/" + f, (err2, files2) => { 27 | if (err2) console.log(err2) 28 | files2.forEach(file => { 29 | let prop = require(`./src/commands/${f}/` + file); 30 | console.log(`${prop.name} yüklendi!`); 31 | commands.set(prop.name, prop); 32 | prop.aliases.forEach(alias => { 33 | aliases.set(alias, prop.name); 34 | }); 35 | }); 36 | }); 37 | }); 38 | }); 39 | 40 | readdir("./src/events", (err, files) => { 41 | if (err) return console.error(err); 42 | files.filter((file) => file.endsWith(".js")).forEach((file) => { 43 | let prop = require(`./src/events/${file}`); 44 | if (!prop.conf) return; 45 | client.on(prop.conf.name, prop); 46 | console.log(`${prop.conf.name} yüklendi!`); 47 | }); 48 | }); 49 | 50 | client.login(config.bot.token) 51 | .then(() => console.log(`Bot ${client.user.username} olarak giriş yaptı!`)) 52 | .catch((err) => console.log(`Bot Giriş yapamadı sebep: ${err}`)); 53 | 54 | client.on("interactionCreate", async(interaction) => { 55 | const member = await client.guilds.cache.get(config.Guild.GuildID).members.fetch(interaction.member.user.id) 56 | if (!member) return; 57 | 58 | if (interaction.customId === "burc") { 59 | let burçMap = new Map([ 60 | ["koç", config.roles.koç], 61 | ["boğa", config.roles.boğa], 62 | ["ikizler", config.roles.ikizler], 63 | ["yengeç", config.roles.yengeç], 64 | ["aslan", config.roles.aslan], 65 | ["başak", config.roles.başak], 66 | ["terazi", config.roles.terazi], 67 | ["akrep", config.roles.akrep], 68 | ["yay", config.roles.yay], 69 | ["oğlak", config.roles.oğlak], 70 | ["kova", config.roles.kova], 71 | ["balık", config.roles.balık], 72 | ]) 73 | let roles = [config.roles.koç, config.roles.boğa, config.roles.ikizler, config.roles.yengeç, config.roles.aslan, config.roles.başak, config.roles.terazi, config.roles.akrep, config.roles.yay, config.roles.oğlak, config.roles.kova, config.roles.balık] 74 | let role = burçMap.get(interaction.values[0]) 75 | if (interaction.values[0] === "rolsil") { 76 | await member.roles.remove(roles) 77 | } else if (role) { 78 | if (roles.some(m => member.roles.cache.has(m))) { 79 | await member.roles.remove(roles) 80 | } 81 | await member.roles.add(role) 82 | } 83 | interaction.reply({ content: "Başarıyla \`Burç\` Rolleriniz düzenlendi.", ephemeral: true }) 84 | } 85 | 86 | if (interaction.customId === "iliski") { 87 | let iliskiMap = new Map([ 88 | ["sevgilimvar", config.roles.couple], 89 | ["lgbt", config.roles.lgbt], 90 | ["sevgilimyok", config.roles.alone], 91 | ["sevgiliyapmıyorum", config.roles.sevgiliyapmıyorum], 92 | ]) 93 | let roles = [config.roles.couple, config.roles.alone, config.roles.lgbt, config.roles.sevgiliyapmıyorum] 94 | let role = iliskiMap.get(interaction.values[0]) 95 | if (interaction.values[0] === "rolsil") { 96 | await member.roles.remove(roles) 97 | } else if (role) { 98 | if (roles.some(m => member.roles.cache.has(m))) { 99 | await member.roles.remove(roles) 100 | } 101 | await member.roles.add(role) 102 | } 103 | interaction.reply({ content: "Başarıyla \`İlişki\` Rolleriniz düzenlendi.", ephemeral: true }) 104 | } 105 | 106 | if (interaction.customId === "renk") { 107 | let color = new Map([ 108 | ["mavi", config.roles.mavi], 109 | ["kirmizi", config.roles.kırmızı], 110 | ["sarı", config.roles.sarı], 111 | ["siyah", config.roles.siyah], 112 | ["beyaz", config.roles.beyaz], 113 | ["yesil", config.roles.yeşil], 114 | ["mor", config.roles.mor], 115 | ["kahverengi", config.roles.kahverengi], 116 | ["turuncu", config.roles.turuncu], 117 | 118 | ]) 119 | let role = color.get(interaction.values[0]) 120 | let renkroller = [config.roles.mavi, config.roles.kırmızı, config.roles.sarı, config.roles.siyah, config.roles.beyaz, config.roles.yeşil, config.roles.mor, config.roles.kahverengi, config.roles.turuncu] 121 | if (!member.roles.cache.has(config.Guild.tagrol) && !member.roles.cache.has(config.Guild.boosterrol) && !member.permissions.has("ADMINISTRATOR")) { 122 | interaction.reply({ content: "Rollerin güncellenirken bir sorun meydana geldi **(İsminde Sunucu Tag'ı Yoktur veya Boost basmamışsın)**" , ephemeral: true }) 123 | } else { 124 | if (interaction.values[0] === "rolsil") { 125 | await member.roles.remove(renkroller) 126 | } else if (role) { 127 | if (renkroller.some(m => member.roles.cache.has(m))) { 128 | await member.roles.remove(renkroller) 129 | } 130 | await member.roles.add(role) 131 | } 132 | interaction.reply({ content: "Başarıyla \`Renk\` Rolleriniz düzenlendi.", ephemeral: true }) 133 | } 134 | } 135 | 136 | if (interaction.customId === "takim") { 137 | let iliskiMap = new Map([ 138 | ["gs", config.roles.gs], 139 | ["fb", config.roles.fb], 140 | ["ts", config.roles.ts], 141 | ["bjk", config.roles.bjk], 142 | ]) 143 | let roles = [config.roles.gs, config.roles.ts, config.roles.fb, config.roles.bjk] 144 | let role = iliskiMap.get(interaction.values[0]) 145 | if (interaction.values[0] === "rolsil") { 146 | await member.roles.remove(roles) 147 | } else if (role) { 148 | if (roles.some(m => member.roles.cache.has(m))) { 149 | await member.roles.remove(roles) 150 | } 151 | await member.roles.add(role) 152 | } 153 | interaction.reply({ content: "Başarıyla \`Takım\` Rolleriniz düzenlendi.", ephemeral: true }) 154 | } 155 | 156 | if (interaction.customId === "oyun") { 157 | let GameMap = new Map([ 158 | ["mc", config.roles.minecraft], 159 | ["mlbb", config.roles.mlbb], 160 | ["lol", config.roles.lol], 161 | ["gta5", config.roles.gta5], 162 | ["valo", config.roles.valorant], 163 | ["amongus", config.roles.amongus], 164 | ["csgo", config.roles.csgo], 165 | ]) 166 | let roles = [config.roles.minecraft, config.roles.mlbb, config.roles.lol, config.roles.gta5, config.roles.valorant, config.roles.amongus ,config.roles.csgo] 167 | var role = [] 168 | for (let index = 0; index < interaction.values.length; index++) { 169 | let ids = interaction.values[index] 170 | let den = GameMap.get(ids) 171 | role.push(den) 172 | } 173 | if (!interaction.values.length) { 174 | await member.roles.remove(roles) 175 | } else { 176 | await member.roles.remove(roles) 177 | await member.roles.add(role) 178 | } 179 | interaction.reply({ content: "Başarıyla \`Oyun\` Rolleriniz düzenlendi.", ephemeral: true }) 180 | } 181 | 182 | }) 183 | 184 | client.on("interactionCreate",async (interaction, message) => { 185 | if(interaction.isButton()) { 186 | 187 | if(interaction.customId === "etkinlik") { 188 | let member = interaction.member 189 | if(member.roles.cache.has(config.roles.etkinlik)) { 190 | await member.roles.remove(config.roles.etkinlik); 191 | await interaction.reply({ content: `<@&${config.roles.etkinlik}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 192 | } else { 193 | await member.roles.add(config.roles.etkinlik); 194 | await interaction.reply({ content: `<@&${config.roles.etkinlik}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 195 | }; 196 | }; 197 | 198 | 199 | if(interaction.customId === "cekilis") { 200 | let member = interaction.member 201 | if(member.roles.cache.has(config.roles.çekiliş)) { 202 | await member.roles.remove(config.roles.çekiliş); 203 | await interaction.reply({ content: `<@&${config.roles.çekiliş}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 204 | } else { 205 | await member.roles.add(config.roles.çekiliş); 206 | await interaction.reply({ content: `<@&${config.roles.çekiliş}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 207 | }; 208 | }; 209 | 210 | if(interaction.customId === "partner") { 211 | let member = interaction.member 212 | if(member.roles.cache.has(config.roles.partner)) { 213 | await member.roles.remove(config.roles.partner); 214 | await interaction.reply({ content: `<@&${config.roles.partner}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 215 | } else { 216 | await member.roles.add(config.roles.partner); 217 | await interaction.reply({ content: `<@&${config.roles.partner}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 218 | }; 219 | }; 220 | if(interaction.customId === "chatetiket") { 221 | let member = interaction.member 222 | if(member.roles.cache.has(config.roles.chatetiket)) { 223 | await member.roles.remove(config.roles.chatetiket); 224 | await interaction.reply({ content: `<@&${config.roles.chatetiket}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 225 | } else { 226 | await member.roles.add(config.roles.chatetiket); 227 | await interaction.reply({ content: `<@&${config.roles.chatetiket}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 228 | }; 229 | }; 230 | if(interaction.customId === "günlüksoru") { 231 | let member = interaction.member 232 | if(member.roles.cache.has(config.roles.günlüksoru)) { 233 | await member.roles.remove(config.roles.günlüksoru); 234 | await interaction.reply({ content: `<@&${config.roles.günlüksoru}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 235 | } else { 236 | await member.roles.add(config.roles.günlüksoru); 237 | await interaction.reply({ content: `<@&${config.roles.günlüksoru}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 238 | }; 239 | }; 240 | if(interaction.customId === "swduyuru") { 241 | let member = interaction.member 242 | if(member.roles.cache.has(config.roles.sunucuduyuru)) { 243 | await member.roles.remove(config.roles.sunucuduyuru); 244 | await interaction.reply({ content: `<@&${config.roles.sunucuduyuru}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 245 | } else { 246 | await member.roles.add(config.roles.sunucuduyuru); 247 | await interaction.reply({ content: `<@&${config.roles.sunucuduyuru}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 248 | }; 249 | }; 250 | if(interaction.customId === "lovers") { 251 | let member = interaction.member 252 | if(member.roles.cache.has(config.roles.couple)) { 253 | await member.roles.remove(config.roles.couple); 254 | await interaction.reply({ content: `<@&${config.roles.couple}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 255 | } else { 256 | await member.roles.add(config.roles.couple); 257 | 258 | await member.roles.remove(config.roles.lgbt); 259 | await member.roles.remove(config.roles.alone); 260 | await member.roles.remove(config.roles.sevgiliyapmıyorum); 261 | await interaction.reply({ content: `<@&${config.roles.couple}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 262 | }; 263 | }; 264 | 265 | if(interaction.customId === "alone") { 266 | let member = interaction.member 267 | if(member.roles.cache.has(config.roles.alone)) { 268 | await member.roles.remove(config.roles.alone); 269 | await interaction.reply({ content: `<@&${config.roles.alone}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 270 | } else { 271 | await member.roles.add(config.roles.alone); 272 | 273 | await member.roles.remove(config.roles.lgbt); 274 | await member.roles.remove(config.roles.couple); 275 | await member.roles.remove(config.roles.sevgiliyapmıyorum); 276 | await interaction.reply({ content: `<@&${config.roles.alone}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 277 | }; 278 | }; 279 | if(interaction.customId === "sevgiliyapmıyorum") { 280 | let member = interaction.member 281 | if(member.roles.cache.has(config.roles.sevgiliyapmıyorum)) { 282 | await member.roles.remove(config.roles.sevgiliyapmıyorum); 283 | await interaction.reply({ content: `<@&${config.roles.sevgiliyapmıyorum}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 284 | } else { 285 | await member.roles.add(config.roles.sevgiliyapmıyorum); 286 | 287 | await member.roles.remove(config.roles.lgbt); 288 | await member.roles.remove(config.roles.alone); 289 | await member.roles.remove(config.roles.couple); 290 | await interaction.reply({ content: `<@&${config.roles.sevgiliyapmıyorum}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 291 | }; 292 | }; 293 | 294 | if(interaction.customId === "lgbt") { 295 | let member = interaction.member 296 | if(member.roles.cache.has(config.roles.lgbt)) { 297 | await member.roles.remove(config.roles.lgbt); 298 | await interaction.reply({ content: `<@&${config.roles.lgbt}> rolünü üzerinizden başarıyla aldım!`, ephemeral: true }); 299 | } else { 300 | await member.roles.add(config.roles.lgbt); 301 | 302 | await member.roles.remove(config.roles.alone); 303 | await member.roles.remove(config.roles.couple); 304 | await member.roles.remove(config.roles.sevgiliyapmıyorum); 305 | await interaction.reply({ content: `<@&${config.roles.lgbt}> rolünü üzerinize başarıyla ekledim!`, ephemeral: true }); 306 | }; 307 | }; 308 | 309 | }}) 310 | -------------------------------------------------------------------------------- /src/commands/select-menu/menü.js: -------------------------------------------------------------------------------- 1 | const { Client, Intents,MessageEmbed, Message, MessageButton ,Collection, interaction, MessageActionRow, MessageSelectMenu } = require('discord.js'); 2 | const config = require("../../../config.json") 3 | const db = require('quick.db'); 4 | const Discord = require("discord.js"); 5 | const moment = require("moment"); 6 | const limit = new Map(); 7 | moment.locale("tr"); 8 | module.exports = { 9 | name: "menü-seçim", 10 | aliases: ["menü"], 11 | 12 | execute: async (client, message, args, embed, author, channel, guild) => { 13 | if(message.author.id !== config.bot.owner) return message.channel.send({ embeds: [embed.setDescription(`${message.member}, Bu komutu kullanmak için gerekli yetkiye sahip değilsin!`)] }).then((e) => setTimeout(() => { e.delete(); }, 10000)); 14 | 15 | message.delete() 16 | 17 | let menüembed = new MessageEmbed() 18 | .setColor("BLACK") 19 | .setAuthor({ name: client.guilds.cache.get(config.Guild.GuildID).name, iconURL: client.guilds.cache.get(config.Guild.GuildID).iconURL({dynamic:true})}) 20 | .setDescription(`Aşağıdaki Butonları Kullanarak Kurmak İstediğiniz Menüleri Seçiniz`) 21 | 22 | const row = new MessageActionRow() 23 | .addComponents( 24 | 25 | new MessageButton() 26 | .setCustomId("burçkur") 27 | .setLabel("Burç") 28 | .setStyle("SECONDARY"), 29 | 30 | new MessageButton() 31 | .setCustomId("iliskikur") 32 | .setLabel("İlişki") 33 | .setStyle("SECONDARY"), 34 | 35 | new MessageButton() 36 | .setCustomId("oyunkur") 37 | .setLabel("Oyun") 38 | .setStyle("SECONDARY"), 39 | 40 | new MessageButton() 41 | .setCustomId("renkkur") 42 | .setLabel("Renk") 43 | .setStyle("SECONDARY"), 44 | 45 | new MessageButton() 46 | .setCustomId("takimkur") 47 | .setLabel("Takım") 48 | .setStyle("SECONDARY"), 49 | 50 | ); 51 | const row2 = new MessageActionRow() 52 | .addComponents( 53 | 54 | new MessageButton() 55 | .setCustomId("hepsikur") 56 | .setLabel("Hepsini Kur") 57 | .setStyle("SECONDARY"), 58 | 59 | new MessageButton() 60 | .setCustomId("iptal") 61 | .setLabel("Kapat / İptal Et") 62 | .setStyle("SECONDARY"), 63 | 64 | ); 65 | 66 | let msg = await message.channel.send({ embeds: [menüembed], components : [row,row2] }) 67 | 68 | var filter = (xd) => xd.user.id === message.author.id; 69 | let collector = await msg.createMessageComponentCollector({ filter, time: 30000 }) 70 | 71 | collector.on("collect", async (menü) => { 72 | 73 | if (menü.customId === "hepsikur") { 74 | await msg.delete({ timeout: 1500 }); 75 | 76 | client.api.channels(message.channel.id).messages.post({ 77 | data: { 78 | "content": `**Burç Rol :**`, 79 | "components": [{ 80 | "type": 1, "components": [{ 81 | "type": 3, "custom_id": "burc", "options": [ 82 | { "label": "Koç", "value": "koç", "emoji": { "name": "♈" }, }, 83 | { "label": "Boğa", "value": "boğa", "emoji": { "name": "♉" }, }, 84 | { "label": "İkizler", "value": "ikizler", "emoji": { "name": "♊" }, }, 85 | { "label": "Yengeç", "value": "yengeç", "emoji": { "name": "♋" }, }, 86 | { "label": "Aslan", "value": "aslan", "emoji": { "name": "♌" }, }, 87 | { "label": "Başak", "value": "başak", "emoji": { "name": "♍" }, }, 88 | { "label": "Terazi", "value": "terazi", "emoji": { "name": "♎" }, }, 89 | { "label": "Akrep", "value": "akrep", "emoji": { "name": "♏" }, }, 90 | { "label": "Yay", "value": "yay", "emoji": { "name": "♐" }, }, 91 | { "label": "Oğlak", "value": "oğlak", "emoji": { "name": "♑" }, }, 92 | { "label": "Kova", "value": "kova", "emoji": { "name": "♒" }, }, 93 | { "label": "Balık", "value": "balık", "emoji": { "name": "♓" }, }, 94 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 95 | ], "placeholder": "Burç Rol Al", "min_values": 1, "max_values": 1 96 | }], 97 | } 98 | ] 99 | } 100 | }) 101 | 102 | client.api.channels(message.channel.id).messages.post({ 103 | data: { 104 | "content": `**İlişki Rol :**`, 105 | "components": [{ 106 | "type": 1, "components": [{ 107 | "type": 3, "custom_id": "iliski", "options": [ 108 | { "label": "Sevgilim Var", "value": "sevgilimvar", "emoji": { "name": "❤️" }, }, 109 | { "label": "Sevgilim Yok", "value": "sevgilimyok", "emoji": { "name": "💔" }, }, 110 | { "label": "Sevgili Yapmıyorum", "value": "sevgiliyapmıyorum", "emoji": { "name": "🤍" }, }, 111 | { "label": "Lgbt", "value": "lgbt", "emoji": { "name": "🏳️‍🌈" }, }, 112 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 113 | ], "placeholder": "İlişki Rol Al", "min_values": 1, "max_values": 1 114 | }], 115 | } 116 | ] 117 | } 118 | }) 119 | 120 | client.api.channels(message.channel.id).messages.post({ 121 | data: { 122 | "content": `**Oyun Rol :**`, 123 | "components": [{ 124 | "type": 1, "components": [{ 125 | "type": 3, "custom_id": "oyun", "options": [ 126 | { "label": "Minecraft", "value": "mc", "emoji": { "name": "🎯" }, }, 127 | { "label": "Mobile Legends", "value": "mlbb", "emoji": { "name": "🎯" }, }, 128 | { "label": "League Of Legends", "value": "lol", "emoji": { "name": "🎯" }, }, 129 | { "label": "Gta 5", "value": "gta5", "emoji": { "name": "🎯" }, }, 130 | { "label": "Valorant", "value": "valo", "emoji": { "name": "🎯" }, }, 131 | { "label": "Among Us", "value": "amongus", "emoji": { "name": "🎯" }, }, 132 | { "label": "Conter Strike Go", "value": "csgo", "emoji": { "name": "🎯" }, }, 133 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 134 | ], "placeholder": "Oyun Rol Al", "min_values": 1, "max_values": 1 135 | }], 136 | } 137 | ] 138 | } 139 | }) 140 | 141 | client.api.channels(message.channel.id).messages.post({ 142 | data: { 143 | "content": `**Renk Rol :**`, 144 | "components": [{ 145 | "type": 1, "components": [{ 146 | "type": 3, "custom_id": "renk", "options": [ 147 | { "label": "Mavi", "value": "mavi", "emoji": { "name": "🔵" }, }, 148 | { "label": "Kırmızı", "value": "kırmızı", "emoji": { "name": "🔴" }, }, 149 | { "label": "Sarı", "value": "sarı", "emoji": { "name": "🟡" }, }, 150 | { "label": "Siyah", "value": "siyah", "emoji": { "name": "🖤" }, }, 151 | { "label": "Beyaz", "value": "beyaz", "emoji": { "name": "🤍" }, }, 152 | { "label": "Yeşil", "value": "yeşil", "emoji": { "name": "🟢" }, }, 153 | { "label": "Mor", "value": "mor", "emoji": { "name": "🟣" }, }, 154 | { "label": "Kahverengi", "value": "kahverengi", "emoji": { "name": "🟤" }, }, 155 | { "label": "Turuncu", "value": "turuncu", "emoji": { "name": "🟠" }, }, 156 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 157 | ], "placeholder": "Renk Rol Al", "min_values": 1, "max_values": 1 158 | }], 159 | } 160 | ] 161 | } 162 | }) 163 | 164 | client.api.channels(message.channel.id).messages.post({ 165 | data: { 166 | "content": `**Takım Rol :**`, 167 | "components": [{ 168 | "type": 1, "components": [{ 169 | "type": 3, "custom_id": "takim", "options": [ 170 | { "label": "Galatasaray", "value": "gs", "emoji": { "name": "❤️" }, }, 171 | { "label": "Fenerbahçe", "value": "fb", "emoji": { "name": "💛" }, }, 172 | { "label": "Beşiktaş", "value": "bjk", "emoji": { "name": "🖤" }, }, 173 | { "label": "TrabzonSpor", "value": "ts", "emoji": { "name": "💙" }, }, 174 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 175 | ], "placeholder": "Takım Rol Al", "min_values": 1, "max_values": 1 176 | }], 177 | } 178 | ] 179 | } 180 | }) 181 | 182 | } 183 | 184 | if (menü.customId === "burçkur") { 185 | await msg.delete({ timeout: 1500 }); 186 | client.api.channels(message.channel.id).messages.post({ 187 | data: { 188 | "content": `**Burç Rol :**`, 189 | "components": [{ 190 | "type": 1, "components": [{ 191 | "type": 3, "custom_id": "burc", "options": [ 192 | { "label": "Koç", "value": "koç", "emoji": { "name": "♈" }, }, 193 | { "label": "Boğa", "value": "boğa", "emoji": { "name": "♉" }, }, 194 | { "label": "İkizler", "value": "ikizler", "emoji": { "name": "♊" }, }, 195 | { "label": "Yengeç", "value": "yengeç", "emoji": { "name": "♋" }, }, 196 | { "label": "Aslan", "value": "aslan", "emoji": { "name": "♌" }, }, 197 | { "label": "Başak", "value": "başak", "emoji": { "name": "♍" }, }, 198 | { "label": "Terazi", "value": "terazi", "emoji": { "name": "♎" }, }, 199 | { "label": "Akrep", "value": "akrep", "emoji": { "name": "♏" }, }, 200 | { "label": "Yay", "value": "yay", "emoji": { "name": "♐" }, }, 201 | { "label": "Oğlak", "value": "oğlak", "emoji": { "name": "♑" }, }, 202 | { "label": "Kova", "value": "kova", "emoji": { "name": "♒" }, }, 203 | { "label": "Balık", "value": "balık", "emoji": { "name": "♓" }, }, 204 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 205 | ], "placeholder": "Burç Rol Al", "min_values": 1, "max_values": 1 206 | }], 207 | } 208 | ] 209 | } 210 | }) 211 | 212 | } 213 | if (menü.customId === "renkkur") { 214 | await msg.delete({ timeout: 1500 }); 215 | client.api.channels(message.channel.id).messages.post({ 216 | data: { 217 | "content": `**Renk Rol :**`, 218 | "components": [{ 219 | "type": 1, "components": [{ 220 | "type": 3, "custom_id": "renk", "options": [ 221 | { "label": "Mavi", "value": "mavi", "emoji": { "name": "🔵" }, }, 222 | { "label": "Kırmızı", "value": "kırmızı", "emoji": { "name": "🔴" }, }, 223 | { "label": "Sarı", "value": "sarı", "emoji": { "name": "🟡" }, }, 224 | { "label": "Siyah", "value": "siyah", "emoji": { "name": "🖤" }, }, 225 | { "label": "Beyaz", "value": "beyaz", "emoji": { "name": "🤍" }, }, 226 | { "label": "Yeşil", "value": "yeşil", "emoji": { "name": "🟢" }, }, 227 | { "label": "Mor", "value": "mor", "emoji": { "name": "🟣" }, }, 228 | { "label": "Kahverengi", "value": "kahverengi", "emoji": { "name": "🟤" }, }, 229 | { "label": "Turuncu", "value": "turuncu", "emoji": { "name": "🟠" }, }, 230 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 231 | ], "placeholder": "Renk Rol Al", "min_values": 1, "max_values": 1 232 | }], 233 | } 234 | ] 235 | } 236 | }) 237 | 238 | } 239 | if (menü.customId === "iliskikur") { 240 | await msg.delete({ timeout: 1500 }); 241 | 242 | client.api.channels(message.channel.id).messages.post({ 243 | data: { 244 | "content": `**İlişki Rol :**`, 245 | "components": [{ 246 | "type": 1, "components": [{ 247 | "type": 3, "custom_id": "iliski", "options": [ 248 | { "label": "Sevgilim Var", "value": "sevgilimvar", "emoji": { "name": "❤️" }, }, 249 | { "label": "Sevgilim Yok", "value": "sevgilimyok", "emoji": { "name": "💔" }, }, 250 | { "label": "Sevgili Yapmıyorum", "value": "sevgiliyapmıyorum", "emoji": { "name": "🤍" }, }, 251 | { "label": "Lgbt", "value": "lgbt", "emoji": { "name": "🏳️‍🌈" }, }, 252 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 253 | ], "placeholder": "İlişki Rol Al", "min_values": 1, "max_values": 1 254 | }], 255 | } 256 | ] 257 | } 258 | }) 259 | } 260 | if (menü.customId === "oyunkur") { 261 | await msg.delete({ timeout: 1500 }); 262 | client.api.channels(message.channel.id).messages.post({ 263 | data: { 264 | "content": `**Oyun Rol :**`, 265 | "components": [{ 266 | "type": 1, "components": [{ 267 | "type": 3, "custom_id": "oyun", "options": [ 268 | { "label": "Minecraft", "value": "mc", "emoji": { "name": "🎯" }, }, 269 | { "label": "Mobile Legends", "value": "mlbb", "emoji": { "name": "🎯" }, }, 270 | { "label": "League Of Legends", "value": "lol", "emoji": { "name": "🎯" }, }, 271 | { "label": "Gta 5", "value": "gta5", "emoji": { "name": "🎯" }, }, 272 | { "label": "Valorant", "value": "valo", "emoji": { "name": "🎯" }, }, 273 | { "label": "Among Us", "value": "amongus", "emoji": { "name": "🎯" }, }, 274 | { "label": "Conter Strike Go", "value": "csgo", "emoji": { "name": "🎯" }, }, 275 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 276 | ], "placeholder": "Oyun Rol Al", "min_values": 1, "max_values": 1 277 | }], 278 | } 279 | ] 280 | } 281 | }) 282 | 283 | } 284 | if (menü.customId === "takimkur") { 285 | await msg.delete({ timeout: 1500 }); 286 | 287 | client.api.channels(message.channel.id).messages.post({ 288 | data: { 289 | "content": `**Takım Rol :**`, 290 | "components": [{ 291 | "type": 1, "components": [{ 292 | "type": 3, "custom_id": "takim", "options": [ 293 | { "label": "Galatasaray", "value": "gs", "emoji": { "name": "❤️" }, }, 294 | { "label": "Fenerbahçe", "value": "fb", "emoji": { "name": "💛" }, }, 295 | { "label": "Beşiktaş", "value": "bjk", "emoji": { "name": "🖤" }, }, 296 | { "label": "TrabzonSpor", "value": "ts", "emoji": { "name": "💙" }, }, 297 | { "label": "Rol İstemiyorum", "value": "rolsil", "emoji": { "name": "🗑️" }, } 298 | ], "placeholder": "Takım Rol Al", "min_values": 1, "max_values": 1 299 | }], 300 | } 301 | ] 302 | } 303 | }) 304 | } 305 | 306 | if(menü.customId === "iptal") { 307 | if(msg) msg.delete().catch({}) 308 | menü.reply({ content :"Başarıyla İptal Edildi Ve Mesaj Silindi.", ephemeral: true }) 309 | } 310 | } 311 | 312 | 313 | )}} 314 | --------------------------------------------------------------------------------