├── README.md ├── config.json ├── events └── komut.js ├── handlers ├── eventHandler.js ├── functions.js └── mongoHandler.js ├── hyper.js ├── komutlar ├── burçlar.js ├── duyuru.js └── ilişki.js └── package.json /README.md: -------------------------------------------------------------------------------- 1 | # Ayarlar 2 | 3 | botun ayarlarını config.json dan ayarlıyoruz. botta sadece rol alma ve rol verme sistemi vardır. Ayrıca burç rollerinde tek rol alma sistemi de mevcuttur. Çok darlandım bu altyapı için aceleye geldi. Bota güncelleme gelir takipte de kalabilirsiniz. 4 | 5 | bu gibi altyapıların devamının gelmek istiyorsanız 200 star alırsam iyi olur 6 | 7 | # iletişim 8 | 9 | Botta bir hata alırsanız veya sormak istediğinz bir şey olursa sunucuma veya bana yazmanız yeterlidir. 10 | 11 | [Discord Sunucum](https://discord.gg/y835mfuhjC) 12 | 13 | [Discord Hesabım](https://discord.com/users/564894186386751508) 14 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "Bot": { 3 | "Token": "", 4 | "Owners": [""], 5 | "Prefix": "!", 6 | "Durum": "", 7 | "Mongourl":"" 8 | }, 9 | 10 | "Server": { 11 | "GuildID": "" 12 | }, 13 | 14 | "Roles": { 15 | "boga": "", 16 | "ikizler": "", 17 | "yengec": "", 18 | "aslan": "", 19 | "basak": "", 20 | "terazi": "", 21 | "koc": "", 22 | "akrep": "", 23 | "yay": "", 24 | "oglak": "", 25 | "kova": "", 26 | "balık": "", 27 | 28 | "Lovers":"", 29 | "Alone":"", 30 | "LGBT":"", 31 | "anyone":"", 32 | 33 | "etkinlik":"", 34 | "cekilis":"" 35 | 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /events/komut.js: -------------------------------------------------------------------------------- 1 | const { readdirSync } = require("fs"); 2 | 3 | module.exports = (client) => { 4 | const commands = readdirSync(`./komutlar/`).filter(file => file.endsWith(".js")); 5 | for (let file of commands) { 6 | let command = require(`../komutlar/${file}`); 7 | if (command.name) { 8 | client.komutlar.set(command.name, command); 9 | console.log(`[COMMAND] ${command.name} Loaded!`); 10 | continue; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /handlers/eventHandler.js: -------------------------------------------------------------------------------- 1 | const { client } = global; 2 | const { readdir } = require("fs"); 3 | 4 | readdir("./events", (err, files) => { 5 | if (err) return console.error(err); 6 | files 7 | .filter((file) => file.endsWith(".js")) 8 | .forEach((file) => { 9 | let prop = require(`../events/${file}`); 10 | if (!prop.conf) return; 11 | client.on(prop.conf.event, prop); 12 | console.log(`[EVENT] ${prop.conf.name} Loaded`); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /handlers/functions.js: -------------------------------------------------------------------------------- 1 | const { TextChannel, DMChannel, Collection } = require("discord.js"); 2 | const penals = require('../schemas/penals.js'); 3 | const penalPoints = require('../schemas/penalPoints.js'); 4 | const moment = require('moment'); 5 | require('moment-duration-format'); 6 | moment.locale('tr'); 7 | 8 | module.exports = async (client) => { 9 | 10 | /** 11 | * @param { String } userID 12 | */ 13 | 14 | client.fetchUser = async (userID) => { 15 | 16 | try { 17 | return await client.users.fetch(userID).then(user => user); 18 | } catch(err) { 19 | return undefined; 20 | } 21 | 22 | }; 23 | 24 | /** 25 | * 26 | * @param { Guild } guild 27 | * @param { String } userID 28 | */ 29 | 30 | client.fetchBan = async (guild, userID) => { 31 | 32 | try { 33 | return await guild.fetchBan(userID); 34 | } catch(err) { 35 | return undefined; 36 | } 37 | 38 | }; 39 | 40 | /** 41 | * @param { String } guildID 42 | * @param { String } userID 43 | * @param { String } type 44 | * @param { Boolean } active 45 | * @param { String } staff 46 | * @param { String } reason 47 | * @param { Boolean } temp 48 | * @param { Number } date 49 | * @param { Number } finishDate 50 | */ 51 | 52 | client.newPenal = async (guildID = client.guildSettings.guildID, userID, type, active = true, staffID, reason, temp = false, date = Date.now(), finishDate = undefined) => { 53 | 54 | let Penals = await penals.find({ guildID }); 55 | let id = Penals ? Penals.length + 1 : 1; 56 | return await new penals({ id, userID, guildID, type, active, staffID, reason, temp, date, finishDate }).save(); 57 | 58 | }; 59 | 60 | /** 61 | * 62 | * @param { String } guildID 63 | * @param { String } userID 64 | * @param { String } reason 65 | * @param { Number } startDate 66 | * @param { Number } finishDate 67 | */ 68 | 69 | 70 | 71 | /** 72 | * @param { String } guildID 73 | * @param { String } userID 74 | * @param { Number } penalPoint 75 | */ 76 | 77 | client.addPenalPoint = async (guildID = client.guildSettings.guildID, userID, penalPoint) => { 78 | 79 | await penalPoints.findOneAndUpdate({ guildID: guildID, userID: userID }, { $inc: { penalPoint: parseInt(penalPoint) } }, { upsert: true }); 80 | return await penalPoints.findOne({ guildID: guildID, userID: userID }); 81 | 82 | }; 83 | 84 | /** 85 | * @param { Number } time 86 | */ 87 | 88 | client.wait = (time) => new Promise((resolve) => setTimeout(resolve, time)); 89 | 90 | /** 91 | * @param { Number } time 92 | */ 93 | 94 | client.getTime = (time) => { 95 | 96 | if(!time) throw new ReferenceError("Time Is Not Defined"); 97 | if(isNaN(time) || time.toLocaleString().includes('-')) throw new TypeError("Invalid Argument : Time"); 98 | 99 | let date = moment.duration(time)._data; 100 | 101 | if(date.years) return `${date.years} yıl${date.months ? `, ${date.months} ay` : ``}` 102 | if(date.months) return `${date.months} ay${date.days ? `, ${date.days} gün` : ``}` 103 | if(date.days) return `${date.days} gün${date.hours ? `, ${date.hours} saat` : ``}`; 104 | if(date.hours) return `${date.hours} saat${date.minutes ? `, ${date.minutes} dakika` : ``}`; 105 | if(date.minutes) return date.minutes < 5 ? `birkaç dakika` : date.minutes > 45 ? `yaklaşık 1 saat` : `${date.minutes} dakika`; 106 | if(date.seconds) return date.seconds < 15 ? `birkaç saniye` : date.seconds > 45 ? `yaklaşık 1 dakika` : `${date.seconds} saniye`; 107 | 108 | }; 109 | 110 | /** 111 | * @param { Number } time 112 | * @param { Object } options 113 | */ 114 | 115 | client.duration = async (time, options) => { 116 | 117 | if(!time) throw new ReferenceError("Time Is Not Defined"); 118 | if(isNaN(time) || time.toLocaleString().includes('-')) throw new TypeError("Invalid Argument : Time"); 119 | if(options && typeof(options) !== "object") throw new TypeError('Invalid Argument: Options'); 120 | 121 | if(options && options.comma) return (moment.duration(time).format(`D [gün,] H [saat,] m [dakika,] s [saniye]`)); 122 | else return (moment.duration(time).format(`D [gün] H [saat] m [dakika] s [saniye]`)); 123 | 124 | }; 125 | 126 | /** 127 | * @param { String } duration 128 | */ 129 | 130 | client.replaceDuration = (duration) => { 131 | 132 | if(!duration) throw new ReferenceError(`Duration Is Not Defined`); 133 | 134 | duration = duration.trim().toLocaleString() 135 | .replace('minute', '') 136 | .replace('m', '') 137 | .replace('dk', '') 138 | .replace('dakika', '') 139 | 140 | .replace('day', '') 141 | .replace('d', '') 142 | .replace('gün', '') 143 | .replace('g', '') 144 | 145 | .replace('hour', '') 146 | .replace('h', '') 147 | .replace('st', '') 148 | .replace('saat', '') 149 | 150 | .replace('saniye', '') 151 | .replace('sn', '') 152 | .replace('s', '') 153 | 154 | return duration; 155 | 156 | }; 157 | 158 | /** 159 | * @param { String } duration 160 | */ 161 | 162 | client.ms = async (duration) => { 163 | 164 | if(!duration) throw new ReferenceError(`Duration Is Not Defined`); 165 | 166 | duration = duration.toLocaleString().trim(); 167 | 168 | if(['m', 'minute', 'dk', 'dakika'].some(arg => duration.includes(arg))) { 169 | 170 | let arg; 171 | 172 | if(duration.includes('minute')) arg = 'minute' 173 | else if(duration.includes('m')) arg = 'm' 174 | else if(duration.includes('dakika')) arg = 'dakika' 175 | else if(duration.includes('dk')) arg = 'dk' 176 | 177 | duration = duration.replace(arg, 'm'); 178 | 179 | return { duration: duration, durationMsg: await duration.replace('m', ' dakika')}; 180 | 181 | } else if(['day', 'd', 'gün', 'g'].some(arg => duration.includes(arg))) { 182 | 183 | let arg; 184 | 185 | if(duration.includes('day')) arg = 'day' 186 | else if(duration.includes('d')) arg = 'd' 187 | else if(duration.includes('gün')) arg = 'gün' 188 | else if(duration.includes('g')) arg = 'g' 189 | 190 | duration = duration.replace(arg, 'd'); 191 | 192 | return { duration: duration, durationMsg: await duration.replace('d', ' gün')}; 193 | 194 | } else if(['h', 'hour', 'st', 'saat'].some(arg => duration.includes(arg))) { 195 | 196 | let arg; 197 | 198 | if(duration.includes('hour')) arg = 'hour' 199 | else if(duration.includes('h')) arg = 'h' 200 | else if(duration.includes('saat')) arg = 'saat' 201 | else if(duration.includes('st')) arg = 'st' 202 | 203 | duration = duration.replace(arg, 'h'); 204 | 205 | return { duration: duration, durationMsg: await duration.replace('h', ' saat')}; 206 | 207 | } else if(['s', 'sn', 'saniye'].some(arg => duration.includes(arg))) { 208 | 209 | let arg; 210 | 211 | if(duration.includes('saniye')) arg = 'saniye' 212 | else if(duration.includes('sn')) arg = 'sn' 213 | else if(duration.includes('s')) arg = 's' 214 | 215 | duration = duration.replace(arg, 's'); 216 | 217 | return { duration: duration, durationMsg: await duration.replace('s', ' saniye')}; 218 | 219 | }; 220 | 221 | }; 222 | 223 | /** 224 | * @param { String } dataName 225 | * @param { Number } count 226 | * @param { Object } options 227 | */ 228 | 229 | Collection.prototype.add = async function(dataName, count, options = new Object()) { 230 | 231 | if(!dataName) throw new ReferenceError(`Collection Data Is Not Defined`); 232 | 233 | let data = await this.get(dataName); 234 | 235 | if(!data && !options) throw new ReferenceError(`Data Not Found`); 236 | if(!count) throw new ReferenceError(`Count Is Not Defined`); 237 | if(isNaN(count) || count == 0 || count.toLocaleString().includes('-')) throw new SyntaxError('Invalid Argument: Count') 238 | if(!options) { 239 | 240 | this.set(dataName, parseInt(data)+parseInt(count)); 241 | return this; 242 | 243 | } else { 244 | 245 | let name = options.name; 246 | 247 | if(data[name] && (isNaN(data[name]) || data[name] == 0 || data[name].toLocaleString().includes('-'))) throw new Error('Data Is Not A Number'); 248 | 249 | data[name] = parseInt(!data[name] ? 0 : data[name]) + parseInt(count); 250 | this.set(dataName, data); 251 | return this.get(dataName); 252 | 253 | }; 254 | 255 | } 256 | 257 | /** 258 | * @param { Message } message 259 | * @param { Object } options 260 | */ 261 | 262 | TextChannel.prototype.wsend = async function (message, options) { 263 | 264 | if(!message) throw new ReferenceError('Message Is Not Defined'); 265 | if(options && typeof(options) !== 'object') throw new SyntaxError('Invalid Argument: Options'); 266 | 267 | if(options) { 268 | 269 | let name = options.name; 270 | let avatar = options.avatar; 271 | 272 | if(!name) name = client.user.username; 273 | if(!avatar) avatar = client.user.avatarURL(); 274 | 275 | let hooks = await this.fetchWebhooks(); 276 | let webhook = hooks.find(hook => hook.name == name && hook.owner.id == client.user.id); 277 | if (webhook) return webhook.send(message); 278 | else { 279 | webhook = await this.createWebhook(name, { avatar: avatar }); 280 | return webhook.send(message); 281 | }; 282 | 283 | } else { 284 | 285 | let hooks = await this.fetchWebhooks(); 286 | let webhook = hooks.find(hook => hook.name === client.user.username && hook.owner.id === client.user.id); 287 | if (webhook) return webhook.send(message); 288 | else { 289 | webhook = await this.createWebhook(client.user.username, { avatar: client.user.avatarURL() }); 290 | return webhook.send(message); 291 | }; 292 | 293 | }; 294 | 295 | }; 296 | 297 | /** 298 | * @param { Message } message 299 | * @param { String } text 300 | * @param { Object } options 301 | */ 302 | 303 | TextChannel.prototype.success = function (message, text, options = new Object()) { 304 | 305 | if(!message) throw new ReferenceError('Message Is Not Defined'); 306 | if(!text) throw new ReferenceError('Text Is Not Defined'); 307 | if(typeof(options) !== 'object') throw new SyntaxError('Invalid Argument: Options') 308 | 309 | let reply = options.reply 310 | let time = options.timeout 311 | let react = options.react 312 | let deleteMsg = options.deleteMessage 313 | 314 | if(time && (isNaN(time) || time == 0 || time.toLocaleString().includes('-'))) throw new SyntaxError('Invalid Argument: Timeout'); 315 | if(reply && typeof(reply) !== 'boolean') throw new SyntaxError('Invalid Argument: Author'); 316 | if(react && typeof(react) !== 'boolean') throw new SyntaxError('Invalid Argument: React'); 317 | if(deleteMsg && typeof(deleteMsg) !== 'boolean' && (isNaN(deleteMsg) || deleteMsg == 0 || deleteMsg.toLocaleString().includes('-'))) throw new SyntaxError('Invalid Argument: DeleteMessage'); 318 | 319 | 320 | if(reply) { 321 | 322 | if(!message.author) throw new TypeError('Invalid Argument: Message'); 323 | 324 | message.reply(text).then(msg => { 325 | if(time) msg.delete({ timeout: parseInt(time) }).catch(() => {}); 326 | }); 327 | 328 | } else { 329 | 330 | message.channel.send(text).then(msg => { 331 | if(time) msg.delete({ timeout: parseInt(time) }).catch(() => {}); 332 | }); 333 | 334 | }; 335 | if(message && deleteMsg) { 336 | 337 | if(typeof(deleteMsg) == 'boolean') return message.delete().catch(() => {}); 338 | else if(typeof(parseInt(deleteMsg)) !== 'boolean') return message.delete({ timeout: parseInt(deleteMsg) }).catch(() => {}); 339 | 340 | }; 341 | 342 | }; 343 | 344 | /** 345 | * @param { Message } message 346 | * @param { String } text 347 | * @param { Object } options 348 | */ 349 | 350 | TextChannel.prototype.error = function (message, text, options = new Object()) { 351 | 352 | if(!message) throw new ReferenceError('Error Message Is Not Defined'); 353 | if(!text) throw new ReferenceError('Error Text Is Not Defined'); 354 | if(typeof(options) !== 'object') throw new SyntaxError('Invalid Argument: Options'); 355 | 356 | let time = options.timeout 357 | let reply = options.reply 358 | let react = options.react 359 | let keepMsg = options.keepMessage 360 | 361 | if(time && (isNaN(time) || time == 0 || time.toLocaleString().includes('-'))) throw new SyntaxError('Invalid Argument: Timeout'); 362 | if(reply && typeof(reply) !== 'boolean') throw new SyntaxError('Invalid Argument: Author'); 363 | if(react && typeof(react) !== 'boolean') throw new SyntaxError('Invalid Argument: React'); 364 | if(keepMsg && typeof(keepMsg) !== 'boolean') throw new SyntaxError('Invalid Argument: KeepMessage'); 365 | 366 | if(reply) { 367 | 368 | if(!message.author) throw new TypeError('Invalid Argument: Message'); 369 | 370 | message.reply(text).then(msg => { 371 | if(time) msg.delete({ timeout: parseInt(time) }).catch(() => {}); 372 | }); 373 | 374 | } else { 375 | 376 | message.channel.send(text).then(msg => { 377 | if(time) msg.delete({ timeout: parseInt(time) }).catch(() => {}); 378 | }); 379 | 380 | }; 381 | if(message && time && !keepMsg) return message.delete({ timeout: parseInt(time) }).catch(() => {}); 382 | 383 | }; 384 | 385 | /** 386 | * @param { Message } message 387 | * @param { String } text 388 | * @param { Object } options 389 | */ 390 | 391 | DMChannel.prototype.success = function (message, text, options = new Object()) { 392 | 393 | if(!message) throw new ReferenceError('Message Is Not Defined'); 394 | if(!text) throw new ReferenceError('Text Is Not Defined'); 395 | if(typeof(options) !== 'object') throw new SyntaxError('Invalid Argument: Options'); 396 | 397 | let reply = options.reply; 398 | let react = options.react; 399 | 400 | if(reply && typeof(reply) !== 'boolean') throw new SyntaxError('Invalid Argument: Author'); 401 | if(react && typeof(react) !== 'boolean') throw new SyntaxError('Invalid Argument: React'); 402 | 403 | if(reply) { 404 | 405 | if(!message.author) throw new TypeError('Invalid Argument: Message'); 406 | 407 | message.reply(text); 408 | 409 | } else message.channel.send(text); 410 | 411 | }; 412 | 413 | /** 414 | * @param { Message } message 415 | * @param { String } text 416 | * @param { Object } options 417 | */ 418 | 419 | DMChannel.prototype.error = function (message, text, options = new Object()) { 420 | 421 | if(!message) throw new ReferenceError('Error Message Is Not Defined'); 422 | if(!text) throw new ReferenceError('Error Text Is Not Defined'); 423 | if(typeof(options) !== 'object') throw new SyntaxError('Invalid Argument: Options'); 424 | 425 | let reply = options.reply; 426 | let react = options.react; 427 | 428 | if(reply && typeof(reply) !== 'boolean') throw new SyntaxError('Invalid Argument: Author'); 429 | if(react && typeof(react) !== 'boolean') throw new SyntaxError('Invalid Argument: React'); 430 | 431 | if(reply) { 432 | 433 | if(!message.author) throw new TypeError('Invalid Argument: Message'); 434 | 435 | message.reply(text); 436 | 437 | } else message.channel.send(text); 438 | 439 | }; 440 | 441 | Array.prototype.random = function () { 442 | 443 | return this[Math.floor((Math.random() * this.length))]; 444 | 445 | }; 446 | 447 | /** 448 | * @param { String } element 449 | */ 450 | 451 | Array.prototype.has = function(element) { 452 | 453 | if(!element) throw new ReferenceError("Element Is Not Defined"); 454 | if(this.some(arrayElement => arrayElement == element)) return true; 455 | else return false; 456 | 457 | }; 458 | 459 | /** 460 | * @param { Number } chunkSize 461 | */ 462 | 463 | Array.prototype.chunk = function(chunkSize) { 464 | 465 | let array = new Array(); 466 | 467 | for (let index = 0; index < this.length; index += chunkSize) { 468 | 469 | let chunk = this.slice(index, index + chunkSize); 470 | array.push(chunk); 471 | 472 | }; 473 | 474 | return array; 475 | 476 | }; 477 | 478 | }; 479 | -------------------------------------------------------------------------------- /handlers/mongoHandler.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | const config = require('../config.json') 3 | 4 | mongoose.connect(config.Bot.Mongourl, { 5 | useUnifiedTopology: true, 6 | useNewUrlParser: true, 7 | useFindAndModify: false, 8 | }); 9 | 10 | mongoose.connection.on("connected", () => console.log("[DATABASE] Connected To Database")); 11 | mongoose.connection.on("error", () => console.error("[DATABASE] Failed To Connect Database")); 12 | 13 | -------------------------------------------------------------------------------- /hyper.js: -------------------------------------------------------------------------------- 1 | const { Client, Intents , Collection, MessageActionRow, MessageSelectMenu} = require('discord.js'); 2 | const client = new Client({ intents: [Intents.FLAGS.GUILDS,Intents.FLAGS.GUILD_MEMBERS,Intents.FLAGS.GUILD_BANS,Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS,Intents.FLAGS.GUILD_INTEGRATIONS,Intents.FLAGS.GUILD_WEBHOOKS,Intents.FLAGS.GUILD_INVITES,Intents.FLAGS.GUILD_VOICE_STATES,Intents.FLAGS.GUILD_PRESENCES,Intents.FLAGS.GUILD_MESSAGES,Intents.FLAGS.GUILD_MESSAGE_REACTIONS,Intents.FLAGS.GUILD_MESSAGE_TYPING,Intents.FLAGS.DIRECT_MESSAGES,Intents.FLAGS.DIRECT_MESSAGE_REACTIONS,Intents.FLAGS.DIRECT_MESSAGE_TYPING] }); 3 | const fs = require("fs"); 4 | const config = require("./config.json"); 5 | const moment = require("moment") 6 | const { boga, ikizler, yengec, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık } = config.Roles; 7 | const { Token, Durum } = config.Bot 8 | 9 | moment.locale("tr"); 10 | const penalPoints = require('./schemas/penalPoints'); 11 | const penals = require('./schemas/penals.js') 12 | const registers = require('./schemas/registers.js'); 13 | 14 | 15 | require('./handlers/functions.js')(client); 16 | require('./handlers/mongoHandler.js'); 17 | require('./handlers/eventHandler.js'); 18 | 19 | 20 | const prefix = config.Bot.Prefix; 21 | 22 | client.komutlar = new Collection(); 23 | client.aliases = new Collection(); 24 | 25 | ["command"].forEach(handler => { 26 | require(`./events/komut`)(client); 27 | }); 28 | 29 | client.on('ready', () => { 30 | console.log(`${client.user.tag} isimli bot aktif!`); 31 | }); 32 | 33 | client.on("messageCreate", async message => { 34 | 35 | 36 | 37 | if (message.author.bot) return; 38 | if (!message.guild) return; 39 | 40 | if (!message.content.startsWith(prefix)) return; 41 | 42 | const args = message.content.slice(prefix.length).trim().split(/ +/g); 43 | const cmd = args.shift().toLowerCase(); 44 | 45 | if (cmd.length === 0) return; 46 | 47 | var command = client.komutlar.get(cmd); 48 | if (!command) command = client.komutlar.get(client.aliases.get(cmd)); 49 | 50 | 51 | if (command) 52 | { 53 | try { 54 | command.çalıştır(client, message, args, message.author, args.join(" "), prefix) 55 | } catch (error) { 56 | console.log(error) 57 | } 58 | } else 59 | return 60 | 61 | }); 62 | 63 | 64 | 65 | 66 | 67 | 68 | client.on('ready', () => { 69 | client.user.setActivity(Durum) 70 | client.user.setStatus(`PLAYING`) 71 | }); 72 | 73 | 74 | client.on("interactionCreate",async (interaction, message) => { 75 | 76 | if(interaction.isButton()) { 77 | 78 | 79 | if(interaction.customId === 'boga') { 80 | let member = interaction.member 81 | 82 | 83 | if(member.roles.cache.has(config.Roles.boga)) { 84 | await member.roles.remove(config.Roles.boga); 85 | await interaction.reply({ content: `<@&${config.Roles.boga}> rolü üzerinizden alındı`, ephemeral: true }); 86 | } else { 87 | await member.roles.add(config.Roles.boga); 88 | await interaction.reply({ content: `<@&${config.Roles.boga}> üzerinize verildi`, ephemeral: true }); 89 | if([ikizler, yengec, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 90 | [ikizler, yengec, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 91 | await member.roles.remove(x);});}; 92 | 93 | }; 94 | }; 95 | 96 | if(interaction.customId === "ikizler") { 97 | let member = interaction.member 98 | if(member.roles.cache.has(config.Roles.ikizler)) { 99 | await member.roles.remove(config.Roles.ikizler); 100 | await interaction.reply({ content: `<@&${config.Roles.ikizler}> rolü üzerinizden alındı`, ephemeral: true }); 101 | } else { 102 | await member.roles.add(config.Roles.ikizler); 103 | await interaction.reply({ content: `<@&${config.Roles.ikizler}> üzerinize verildi`, ephemeral: true }); 104 | if([boga, yengec, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 105 | [boga, yengec, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 106 | await member.roles.remove(x);});}; 107 | 108 | 109 | 110 | }; 111 | 112 | 113 | }; 114 | 115 | 116 | if(interaction.customId === 'yengec') { 117 | let member = interaction.member 118 | if(member.roles.cache.has(config.Roles.yengec)) { 119 | await member.roles.remove(config.Roles.yengec); 120 | await interaction.reply({ content: `<@&${config.Roles.yengec}> rolü üzerinizden alındı`, ephemeral: true }); 121 | } else { 122 | await member.roles.add(config.Roles.yengec); 123 | await interaction.reply({ content: `<@&${config.Roles.yengec}> üzerinize verildi`, ephemeral: true }); 124 | if([boga,ikizler, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 125 | [boga, ikizler, aslan, basak, terazi, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 126 | await member.roles.remove(x);});}; 127 | 128 | 129 | }; 130 | }; 131 | 132 | if(interaction.customId === "aslan") { 133 | let member = interaction.member 134 | if(member.roles.cache.has(config.Roles.aslan)) { 135 | await member.roles.remove(config.Roles.aslan); 136 | await interaction.reply({ content: `<@&${config.Roles.aslan}> rolü üzerinizden alındı`, ephemeral: true }); 137 | } else { 138 | await member.roles.add(config.Roles.aslan); 139 | await interaction.reply({ content: `<@&${config.Roles.aslan}> üzerinize verildi`, ephemeral: true }); 140 | if([boga,ikizler, yengec, basak, terazi, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 141 | [boga, ikizler, yengec, basak, terazi, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 142 | await member.roles.remove(x);});}; 143 | 144 | 145 | }; 146 | }; 147 | 148 | 149 | 150 | if(interaction.customId === 'basak') { 151 | let member = interaction.member 152 | if(member.roles.cache.has(config.Roles.basak)) { 153 | await member.roles.remove(config.Roles.basak); 154 | await interaction.reply({ content: `<@&${config.Roles.basak}> rolü üzerinizden alındı`, ephemeral: true }); 155 | } else { 156 | await member.roles.add(config.Roles.basak); 157 | await interaction.reply({ content: `<@&${config.Roles.basak}> üzerinize verildi`, ephemeral: true }); 158 | if([boga,ikizler, yengec, aslan, terazi, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 159 | [boga, ikizler, yengec, aslan, terazi, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 160 | await member.roles.remove(x);});}; 161 | 162 | }; 163 | }; 164 | 165 | if(interaction.customId === "terazi") { 166 | let member = interaction.member 167 | if(member.roles.cache.has(config.Roles.terazi)) { 168 | await member.roles.remove(config.Roles.terazi); 169 | await interaction.reply({ content: `<@&${config.Roles.terazi}> rolü üzerinizden alındı`, ephemeral: true }); 170 | } else { 171 | await member.roles.add(config.Roles.terazi); 172 | await interaction.reply({ content: `<@&${config.Roles.terazi}> üzerinize verildi`, ephemeral: true }); 173 | if([boga,ikizler, yengec,basak, aslan, koc, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 174 | [boga, ikizler, yengec, basak, aslan, koc, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 175 | await member.roles.remove(x);});}; 176 | 177 | }; 178 | }; 179 | 180 | 181 | if(interaction.customId === 'koc') { 182 | let member = interaction.member 183 | if(member.roles.cache.has(config.Roles.koc)) { 184 | await member.roles.remove(config.Roles.koc); 185 | await interaction.reply({ content: `<@&${config.Roles.koc}> rolü üzerinizden alındı`, ephemeral: true }); 186 | } else { 187 | await member.roles.add(config.Roles.koc); 188 | await interaction.reply({ content: `<@&${config.Roles.koc}> üzerinize verildi`, ephemeral: true }); 189 | if([boga,ikizler, yengec,basak, aslan, terazi, akrep, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 190 | [boga, ikizler, yengec, basak, aslan, terazi, akrep, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 191 | await member.roles.remove(x);});}; 192 | 193 | }; 194 | }; 195 | 196 | if(interaction.customId === "akrep") { 197 | let member = interaction.member 198 | if(member.roles.cache.has(config.Roles.akrep)) { 199 | await member.roles.remove(config.Roles.akrep); 200 | await interaction.reply({ content: `<@&${config.Roles.akrep}> rolü üzerinizden alındı`, ephemeral: true }); 201 | } else { 202 | await member.roles.add(config.Roles.akrep); 203 | await interaction.reply({ content: `<@&${config.Roles.akrep}> üzerinize verildi`, ephemeral: true }); 204 | if([boga,ikizler, yengec,basak, aslan, terazi, koc, yay, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 205 | [boga, ikizler, yengec, basak, aslan, terazi, koc, yay, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 206 | await member.roles.remove(x);});}; 207 | }; 208 | }; 209 | 210 | if(interaction.customId === "yay") { 211 | let member = interaction.member 212 | if(member.roles.cache.has(config.Roles.yay)) { 213 | await member.roles.remove(config.Roles.yay); 214 | await interaction.reply({ content: `<@&${config.Roles.yay}> rolü üzerinizden alındı`, ephemeral: true }); 215 | } else { 216 | await member.roles.add(config.Roles.yay); 217 | await interaction.reply({ content: `<@&${config.Roles.yay}> üzerinize verildi`, ephemeral: true }); 218 | if([boga,ikizler, yengec,basak, aslan, terazi, koc, akrep, oglak, kova, balık].some(x => member.roles.cache.get(x))) { 219 | [boga, ikizler, yengec, basak, aslan, terazi, koc, akrep, oglak, kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 220 | await member.roles.remove(x);});}; 221 | 222 | }; 223 | }; 224 | 225 | if(interaction.customId === "oglak") { 226 | let member = interaction.member 227 | if(member.roles.cache.has(config.Roles.oglak)) { 228 | await member.roles.remove(config.Roles.oglak); 229 | await interaction.reply({ content: `<@&${config.Roles.oglak}> rolü üzerinizden alındı`, ephemeral: true }); 230 | } else { 231 | await member.roles.add(config.Roles.oglak); 232 | await interaction.reply({ content: `<@&${config.Roles.oglak}> üzerinize verildi`, ephemeral: true }); 233 | if([boga,ikizler, yengec,basak, aslan, terazi, koc, akrep, yay, kova, balık].some(x => member.roles.cache.get(x))) { 234 | [boga, ikizler, yengec, basak, aslan, terazi, koc, akrep, yay,kova, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 235 | await member.roles.remove(x);});}; 236 | 237 | }; 238 | }; 239 | 240 | if(interaction.customId === "kova") { 241 | let member = interaction.member 242 | if(member.roles.cache.has(config.Roles.kova)) { 243 | await member.roles.remove(config.Roles.kova); 244 | await interaction.reply({ content: `<@&${config.Roles.kova}> rolü üzerinizden alındı`, ephemeral: true }); 245 | } else { 246 | await member.roles.add(config.Roles.kova); 247 | await interaction.reply({ content: `<@&${config.Roles.kova}> üzerinize verildi`, ephemeral: true }); 248 | if([boga,ikizler, yengec,basak, aslan, terazi, koc, akrep, yay, oglak, balık].some(x => member.roles.cache.get(x))) { 249 | [boga, ikizler, yengec, basak, aslan, terazi, koc, akrep, yay, oglak, balık].filter(x => member.roles.cache.get(x)).forEach(async x => { 250 | await member.roles.remove(x);});}; 251 | }; 252 | }; 253 | 254 | if(interaction.customId === "balık") { 255 | let member = interaction.member 256 | if(member.roles.cache.has(config.Roles.balık)) { 257 | await member.roles.remove(config.Roles.balık); 258 | await interaction.reply({ content: `<@&${config.Roles.balık}> rolü üzerinizden alındı`, ephemeral: true }); 259 | } else { 260 | await member.roles.add(config.Roles.balık); 261 | await interaction.reply({ content: `<@&${config.Roles.balık}> üzerinize verildi`, ephemeral: true }); 262 | if([boga,ikizler, yengec,basak, aslan, terazi, koc, akrep, yay, oglak, kova].some(x => member.roles.cache.get(x))) { 263 | [boga, ikizler, yengec, basak, aslan, terazi, koc, akrep, yay, oglak, kova].filter(x => member.roles.cache.get(x)).forEach(async x => { 264 | await member.roles.remove(x);});}; 265 | 266 | }; 267 | }; 268 | 269 | if(interaction.customId === "Lovers") { 270 | let member = interaction.member 271 | if(member.roles.cache.has(config.Roles.Lovers)) { 272 | await member.roles.remove(config.Roles.Lovers); 273 | await interaction.reply({ content: `<@&${config.Roles.Lovers}> rolü üzerinizden alındı`, ephemeral: true }); 274 | } else { 275 | await member.roles.add(config.Roles.Lovers); 276 | await interaction.reply({ content: `<@&${config.Roles.Lovers}> üzerinize verildi`, ephemeral: true }); 277 | }; 278 | }; 279 | 280 | 281 | if(interaction.customId === "Alone") { 282 | let member = interaction.member 283 | if(member.roles.cache.has(config.Roles.Alone)) { 284 | await member.roles.remove(config.Roles.Alone); 285 | await interaction.reply({ content: `<@&${config.Roles.Alone}> rolü üzerinizden alındı`, ephemeral: true }); 286 | } else { 287 | await member.roles.add(config.Roles.Alone); 288 | await interaction.reply({ content: `<@&${config.Roles.Alone}> üzerinize verildi`, ephemeral: true }); 289 | }; 290 | }; 291 | 292 | if(interaction.customId === "LGBT") { 293 | let member = interaction.member 294 | if(member.roles.cache.has(config.Roles.LGBT)) { 295 | await member.roles.remove(config.Roles.LGBT); 296 | await interaction.reply({ content: `<@&${config.Roles.LGBT}> rolü üzerinizden alındı`, ephemeral: true }); 297 | } else { 298 | await member.roles.add(config.Roles.LGBT); 299 | await interaction.reply({ content: `<@&${config.Roles.LGBT}> üzerinize verildi`, ephemeral: true }); 300 | }; 301 | }; 302 | 303 | if(interaction.customId === "anyone") { 304 | let member = interaction.member 305 | if(member.roles.cache.has(config.Roles.anyone)) { 306 | await member.roles.remove(config.Roles.anyone); 307 | await interaction.reply({ content: `<@&${config.Roles.anyone}> rolü üzerinizden alındı`, ephemeral: true }); 308 | } else { 309 | await member.roles.add(config.Roles.anyone); 310 | await interaction.reply({ content: `<@&${config.Roles.anyone}> üzerinize verildi`, ephemeral: true }); 311 | }; 312 | }; 313 | 314 | 315 | if(interaction.customId === "etkinlik") { 316 | let member = interaction.member 317 | if(member.roles.cache.has(config.Roles.etkinlik)) { 318 | await member.roles.remove(config.Roles.etkinlik); 319 | await interaction.reply({ content: `<@&${config.Roles.etkinlik}> rolü üzerinizden alındı`, ephemeral: true }); 320 | } else { 321 | await member.roles.add(config.Roles.etkinlik); 322 | await interaction.reply({ content: `<@&${config.Roles.etkinlik}> üzerinize verildi`, ephemeral: true }); 323 | }; 324 | }; 325 | 326 | 327 | if(interaction.customId === "cekilis") { 328 | let member = interaction.member 329 | if(member.roles.cache.has(config.Roles.cekilis)) { 330 | await member.roles.remove(config.Roles.cekilis); 331 | await interaction.reply({ content: `<@&${config.Roles.cekilis}> rolü üzerinizden alındı`, ephemeral: true }); 332 | } else { 333 | await member.roles.add(config.Roles.cekilis); 334 | await interaction.reply({ content: `<@&${config.Roles.cekilis}> üzerinize verildi`, ephemeral: true }); 335 | }; 336 | }; 337 | 338 | }}) 339 | 340 | client.login(Token).then(() => console.log('[BOT] Connection Started')).catch(() => { 341 | console.log('[BOT] Failed To Start Connection, Trying Again'); 342 | process.exit(); 343 | }); 344 | -------------------------------------------------------------------------------- /komutlar/burçlar.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | name: 'burçlar', 4 | aliases: ['burçlar'], 5 | çalıştır: async (client, message, args,prefix ) => { 6 | 7 | const { MessageActionRow, MessageButton } = require('discord.js'); 8 | const config = require('../config.json') 9 | 10 | let button1 = new MessageButton() 11 | .setStyle('PRIMARY') 12 | .setLabel('I') 13 | .setCustomId('boga') 14 | 15 | let button2 = new MessageButton() 16 | .setStyle('PRIMARY') 17 | .setLabel('II') 18 | .setCustomId('ikizler') 19 | 20 | let button3 = new MessageButton() 21 | .setStyle('PRIMARY') 22 | .setLabel('III') 23 | .setCustomId('yengec') 24 | 25 | let button4 = new MessageButton() 26 | .setStyle('PRIMARY') 27 | .setLabel('IV') 28 | .setCustomId('aslan') 29 | 30 | let button5 = new MessageButton() 31 | .setStyle('PRIMARY') 32 | .setLabel('V') 33 | .setCustomId(`basak`) 34 | 35 | let button6 = new MessageButton() 36 | .setStyle('PRIMARY') 37 | .setLabel('VI') 38 | .setCustomId('terazi') 39 | 40 | 41 | let button7 = new MessageButton() 42 | .setStyle('PRIMARY') 43 | .setLabel('VII') 44 | .setCustomId('koc') 45 | 46 | 47 | let button8 = new MessageButton() 48 | .setStyle('PRIMARY') 49 | .setLabel('VIII') 50 | .setCustomId('akrep') 51 | 52 | let button9 = new MessageButton() 53 | .setStyle('PRIMARY') 54 | .setLabel('ⅤⅣ') 55 | .setCustomId('yay') 56 | 57 | let button10 = new MessageButton() 58 | .setStyle('PRIMARY') 59 | .setLabel('ⅤⅤ') 60 | .setCustomId('oglak') 61 | 62 | let button11 = new MessageButton() 63 | .setStyle('PRIMARY') 64 | .setLabel('ⅤⅥ') 65 | .setCustomId('kova') 66 | 67 | let button12 = new MessageButton() 68 | .setStyle('PRIMARY') 69 | .setLabel('ⅤⅤⅡ') 70 | .setCustomId('balık') 71 | 72 | 73 | let row = new MessageActionRow() 74 | .addComponents(button1, button2, button3, button4) 75 | 76 | let row2 = new MessageActionRow() 77 | .addComponents(button5, button6, button7, button8) 78 | 79 | let row3 = new MessageActionRow() 80 | .addComponents(button9, button10, button11, button12) 81 | 82 | message.channel.send({ content:` Merhabalar arkadaşlar, burç rollerinizi seçmek için aşağıdaki butonlardan herhangi birine basabilirsiniz 83 | 84 | Ⅰ : <@&${config.Roles.boga}> 85 | Ⅱ : <@&${config.Roles.ikizler}> 86 | Ⅲ : <@&${config.Roles.yengec}> 87 | Ⅳ : <@&${config.Roles.aslan}> 88 | Ⅴ : <@&${config.Roles.basak}> 89 | Ⅵ : <@&${config.Roles.terazi}> 90 | Ⅶ : <@&${config.Roles.koc}> 91 | Ⅷ : <@&${config.Roles.akrep}> 92 | ⅤⅣ : <@&${config.Roles.yay}> 93 | ⅤⅤ : <@&${config.Roles.oglak}> 94 | ⅤⅥ : <@&${config.Roles.kova}> 95 | ⅤⅤⅡ : <@&${config.Roles.balık}> 96 | 97 | 98 | 99 | `, components: [row, row2, row3] }) ; 100 | 101 | 102 | 103 | 104 | } 105 | 106 | } 107 | -------------------------------------------------------------------------------- /komutlar/duyuru.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | name: "duyuru", 4 | aliases: ["duyuru"], 5 | çalıştır: async (client, message, args, prefix ) => { 6 | 7 | const { MessageActionRow, MessageButton } = require('discord.js'); 8 | const config = require('../config.json') 9 | 10 | let button1 = new MessageButton() 11 | .setStyle('PRIMARY') 12 | .setEmoji('🎁') 13 | .setCustomId('etkinlik') 14 | 15 | let button2 = new MessageButton() 16 | .setStyle('PRIMARY') 17 | .setEmoji('🎉') 18 | .setCustomId('cekilis') 19 | 20 | 21 | 22 | 23 | let row = new MessageActionRow() 24 | .addComponents(button1, button2,) 25 | 26 | 27 | 28 | message.channel.send({ content:`Sunucumuzda eveyone ve here kullanılmamaktadır, bu yüzden bu rolleri almanızı öneririz. 29 | 30 | <@&${config.Roles.cekilis}> : Sunucumuzda her gün yapılan çekilişlere katılmanızı sağlar 31 | 32 | <@&${config.Roles.etkinlik}> : Sunucumuzda her gün yapılan etkinliklere katılmanızı sağlar 33 | 34 | Etkinlik Duyuru için : 🎉 35 | Çekiliş Katılımcısı için : 🎁 36 | 37 | `, components: [row] }) ; 38 | 39 | 40 | 41 | 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /komutlar/ilişki.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | 3 | name: "ilişki", 4 | aliases: ["ilişki"], 5 | çalıştır: async (client, message, args, prefix ) => { 6 | const { MessageActionRow, MessageButton } = require('discord.js'); 7 | const config = require('../config.json') 8 | 9 | let button1 = new MessageButton() 10 | .setStyle('PRIMARY') 11 | .setEmoji('❤️') 12 | .setCustomId('Lovers') 13 | 14 | let button2 = new MessageButton() 15 | .setStyle('PRIMARY') 16 | .setEmoji('💔') 17 | .setCustomId('Alone') 18 | 19 | let button3 = new MessageButton() 20 | .setStyle('PRIMARY') 21 | .setEmoji('💙') 22 | .setCustomId('LGBT') 23 | 24 | let button4 = new MessageButton() 25 | .setStyle('PRIMARY') 26 | .setEmoji('🖤') 27 | .setCustomId('anyone') 28 | 29 | 30 | let row = new MessageActionRow() 31 | .addComponents(button1, button2, button3, button4, ) 32 | 33 | 34 | 35 | message.channel.send({ content:`Merhabalar arkadaşlar, ilişki rolünüzü seçmek için aşağıdaki emojilerden herhangi birine basabilirsiniz. 36 | 37 | ❤️ : \`Lovers\` 38 | 💔 : \`Alone\` 39 | 💙 : \`LGBT\` 40 | 🖤 : \`I do not need anyone\``, components: [row] }) ; 41 | 42 | 43 | 44 | 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "main": "hyper.js", 3 | "scripts": { 4 | "start": "node hyper.js" 5 | }, 6 | "license": "ISC", 7 | "dependencies": { 8 | "discord.js": "^13.0.1", 9 | "node": "^16.6.1", 10 | "node-fetch": "^2.6.1", 11 | "mongoose": "^5.13.7", 12 | "moment": "^2.29.1", 13 | "moment-duration-format": "^2.3.2" 14 | } 15 | } 16 | --------------------------------------------------------------------------------