├── $_API ├── routers │ ├── auth.js │ ├── blacklist.js │ ├── blog.js │ ├── commands.js │ ├── config.js │ ├── promo-code.js │ └── stats.js └── server.js ├── README.md ├── commands ├── ayarlar.js ├── bakım.js ├── bal.js ├── bug-bildir.js ├── coin.js ├── coinflip.js ├── davet.js ├── ekledim.js ├── eval.js ├── günlük-ödül.js ├── istatistik.js ├── karaliste.js ├── kod.js ├── kullanicibilgi.js ├── kurulum.js ├── partner-bul.js ├── partner.js ├── pay.js ├── ping.js ├── premium.js ├── snake.js ├── sunucubilgi.js ├── top.js └── yardım.js ├── config.js ├── database ├── connect.js └── models │ ├── bakim.js │ ├── blog.js │ ├── bot.js │ ├── coin-geçmişi.js │ ├── coin.js │ ├── ekledim.js │ ├── karaliste.js │ ├── kod-data.js │ ├── partner-ol.js │ ├── pre-activation.js │ ├── pre.js │ ├── server.js │ ├── stockDatas.js │ ├── süre.js │ └── url-süre.js ├── events ├── message.js └── ready.js ├── lang ├── en-GB.json └── tr-TR.json ├── main.js ├── package-lock.json ├── package.json ├── reply.js ├── shard.js ├── shrinkwrap.yaml ├── start.bat ├── util ├── commands.js ├── events.js ├── permissions.js └── shortcut.js └── watch.json /$_API/routers/auth.js: -------------------------------------------------------------------------------- 1 | const Strategy = require("passport-discord").Strategy; 2 | const router = require('express').Router(); 3 | const passport = require('passport'); 4 | 5 | passport.use(new Strategy({ 6 | clientID: "789918433495875584", 7 | clientSecret: "gmJewO0fd_bbQ89_guQ31SxP1gmJcijL", 8 | callbackURL: "https://api.lightbot.me/auth/callback", 9 | scope: [ "identify", "guilds" ] 10 | }, (accessToken, refreshToken, profile, done) => { 11 | process.nextTick(() => done(null, profile)); 12 | })); 13 | 14 | passport.serializeUser((user, done) => { done(null, user); }); 15 | passport.deserializeUser((obj, done) => { done(null, obj); }); 16 | 17 | router.use(passport.initialize()); 18 | router.use(passport.session()); 19 | 20 | module.exports = (client) => { 21 | const DOMAIN = 'www.lightbot.me'; 22 | const PROTOCOL = 'https'; 23 | const PATH = '/api/auth/callback'; 24 | 25 | router.get("/auth/login", (req, res, next) => { 26 | req.session._authCallback = req.query.url || '/'; 27 | next(); 28 | }, passport.authenticate("discord", { 29 | scope: [ "identify", "guilds" ], 30 | prompt: "none" 31 | })); 32 | 33 | router.get("/auth/callback", passport.authenticate("discord", { 34 | failureRedirect: "/auth/login" 35 | }), async (req, res) => { 36 | if (req.user) { 37 | res.redirect((PROTOCOL + '://' + DOMAIN + PATH) + ('?code=' + req.user.accessToken) + ('&url=' + (req.session._authCallback || '/'))); 38 | } else { 39 | res.redirect('/auth/login'); 40 | }; 41 | }); 42 | 43 | return router; 44 | }; -------------------------------------------------------------------------------- /$_API/routers/blacklist.js: -------------------------------------------------------------------------------- 1 | const karaliste = require('../../database/models/karaliste.js'); 2 | const router = require('express').Router(); 3 | const config = require('../../config.js'); 4 | 5 | module.exports = (client) => { 6 | router.get('/blacklist/fetch', async (req, res) => { 7 | const id = req.query.id; 8 | if (!id) return res.json(false); 9 | 10 | const fetch = await karaliste.findOne({ userID: id }); 11 | if (!config.developers.includes(id) && fetch) { 12 | res.json(true); 13 | } else { 14 | res.json(false); 15 | }; 16 | }); 17 | 18 | return router; 19 | }; -------------------------------------------------------------------------------- /$_API/routers/blog.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | const config = require('../../config.js'); 3 | const blog = require('../../database/models/blog.js'); 4 | 5 | module.exports = (client) => { 6 | router.get('/blog/list/:page', async (req, res) => { 7 | let page = req.params.page; 8 | if (!page) page = 1; 9 | 10 | if (isNaN(page)) return res.json({ 11 | success: false, 12 | message: "404: Not Found" 13 | }); 14 | 15 | if (parseInt(page) < 1) return res.json({ 16 | success: false, 17 | message: "404: Not Found" 18 | }); 19 | 20 | let fetched = await blog.find(); 21 | 22 | res.json( 23 | fetched.slice((parseInt(page) - 1) * 6, parseInt(page) * 6).map(item => { 24 | let author = client.users.cache.get(item.author); 25 | let formattedDate = require('moment')(parseInt(item.date)).format('HH:mm DD.MM.YYYY'); 26 | 27 | return { 28 | author: { 29 | img: author.avatarURL({ dynamic: true }), 30 | username: author.tag 31 | }, 32 | id: item.date, 33 | img: item.image, 34 | date: formattedDate, 35 | title: item.title, 36 | text: item.text 37 | }; 38 | }) 39 | ); 40 | }); 41 | 42 | router.get('/blog/fetch/:id', async (req, res) => { 43 | let id = req.params.id; 44 | let item = await blog.findOne({ date: id }); 45 | if (!item) return res.json({}); 46 | 47 | let author = client.users.cache.get(item.author); 48 | let formattedDate = require('moment')(parseInt(item.date)).format('HH:mm DD.MM.YYYY'); 49 | 50 | res.json({ 51 | author: { 52 | img: author.avatarURL({ dynamic: true }), 53 | username: author.tag 54 | }, 55 | id: item.date, 56 | img: item.image, 57 | date: formattedDate, 58 | title: item.title, 59 | text: item.text 60 | }); 61 | }); 62 | 63 | return router; 64 | }; -------------------------------------------------------------------------------- /$_API/routers/commands.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | const config = require('../../config.js'); 3 | 4 | module.exports = (client) => { 5 | router.get('/data/commands', (req, res) => { 6 | res.json( 7 | client.commands.filter(cmd => !config.filteredCmds.includes(cmd.config.name)).map(cmd => { 8 | return { 9 | name: config.prefix + client.locale('tr-TR')['commands'][cmd.config.name].name, 10 | description: client.locale('tr-TR')['commands'][cmd.config.name].desc, 11 | perms: cmd.config.perms, 12 | status: cmd.config.enabled == true ? 1 : 0 13 | }; 14 | }) 15 | ); 16 | }); 17 | 18 | return router; 19 | }; -------------------------------------------------------------------------------- /$_API/routers/config.js: -------------------------------------------------------------------------------- 1 | const bakım = require('../../database/models/bakim.js'); 2 | const router = require('express').Router(); 3 | const config = require('../../config.js'); 4 | 5 | module.exports = (client) => { 6 | router.get('/data/config', async (req, res) => { 7 | const check = await bakım.findOne({ botID: client.user.id || '789918433495875584' }); 8 | 9 | res.json({ 10 | prefix: config.prefix || '!', 11 | maintenance: check ? true : false, 12 | developers: config.developers ? config.developers.map(id => { 13 | let user = client.users.cache.get(id); 14 | 15 | if (user) { 16 | return { 17 | id, 18 | avatar: user.avatar, 19 | username: user.username, 20 | discriminator: user.discriminator 21 | }; 22 | } else { 23 | return 'null'; 24 | }; 25 | }).filter(user => typeof user != 'string') : [] 26 | }); 27 | }); 28 | 29 | return router; 30 | }; -------------------------------------------------------------------------------- /$_API/routers/promo-code.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | const config = require('../../config.js'); 3 | const Crypto = require('crypto-js'); 4 | const fetch = require('node-fetch'); 5 | 6 | module.exports = (client) => { 7 | router.get('/promo-code/use', async (req, res) => { 8 | const kill = (success, message) => res.json({ success, message }); 9 | if (!req.headers['authorization']) return kill(false, 'Lütfen giriş yapınız!'); 10 | if (!req.query['code']) return kill(false, 'Lütfen bir kod yazınız!'); 11 | 12 | let _code = req.query['code']; 13 | let _year = new Date().getFullYear(); 14 | const _decode = Crypto.AES.decrypt(req.headers['authorization'].replace('Bearer ', ''), (_year * _year).toString()) 15 | const _token = _decode ? _decode.toString(Crypto.enc.Utf8) : null; 16 | 17 | const _request = await fetch('https://discord.com/api/v8/users/@me', { headers: { Authorization: 'Bearer ' + _token } }); 18 | const _user = await _request.json(); 19 | 20 | if (_user.message && _user.message === '401: Unauthorized') { 21 | kill(false, 'Lütfen giriş yapınız!'); 22 | } else { 23 | const codeList = require('../../database/models/kod-data.js'); 24 | let checkValid = await codeList.findOne({ kod: _code }); 25 | 26 | if (!checkValid) return kill(false, 'Yazdığınız promosyon kodu geçersizdir!'); 27 | 28 | if (parseInt(checkValid.kullanim) === parseInt(checkValid.usage)) { await codeList.deleteOne({ kod: _code }); return kill(false, 'Bu kodun kullanım limiti doldu!'); }; 29 | if (checkValid.users.includes(_user.id)) return kill(false, 'Bu kodu daha önce kullanmışsınız!'); 30 | 31 | let $coin = require('../../database/models/coin.js'), 32 | $history = require('../../database/models/coin-geçmişi.js'); 33 | 34 | await $coin.findOneAndUpdate({ userID: _user.id }, { $inc: { amount: checkValid.prize }}, { upsert: true }) 35 | await $history.findOneAndUpdate({ userID: _user.id }, { $push: { gecmis: { count: checkValid.prize, user: '{system}', reason: '{promocode}', Date: Date.now() } }}, { upsert: true}); 36 | 37 | await codeList.updateOne({ kod: _code }, { 38 | $inc: { 39 | kullanim: 1 40 | }, 41 | $push: { 42 | users: _user.id 43 | } 44 | }, { upsert: true }); 45 | 46 | checkValid.kullanim++; 47 | return kill(true, checkValid); 48 | }; 49 | }); 50 | 51 | return router; 52 | }; -------------------------------------------------------------------------------- /$_API/routers/stats.js: -------------------------------------------------------------------------------- 1 | const router = require('express').Router(); 2 | const config = require('../../config.js'); 3 | 4 | module.exports = (client) => { 5 | router.get('/data/stats', (req, res) => { 6 | res.json({ 7 | guilds: client.guilds.cache.size, 8 | users: client.guilds.cache.reduce((a, b) => a + b.memberCount, 0), 9 | commands: client.commands.size, 10 | emojis: client.emojis.cache.size 11 | }); 12 | }); 13 | 14 | return router; 15 | }; -------------------------------------------------------------------------------- /$_API/server.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client) => { 2 | 3 | /*============================================================================*/ 4 | 5 | const session = require('express-session'); 6 | const express = require('express'); 7 | const router = express(); 8 | 9 | /*============================================================================*/ 10 | 11 | router.use( 12 | session({ 13 | secret: "55CWSa21QbGeNxiJX3HngI7gm_F5bEGiZMGDu5rcUlDqILu1K9q_m4wDHDX3Prk84xurn9gyZgVIr", 14 | resave: false, 15 | saveUninitialized: false 16 | }) 17 | ); 18 | 19 | router.use(require('body-parser').json()); 20 | router.use(require('body-parser').urlencoded({ extended: true })); 21 | 22 | router.use(require('cors')({ 23 | origin: 'https://www.lightbot.me' 24 | })); 25 | 26 | /*============================================================================*/ 27 | 28 | const auth_router = require('./routers/auth.js')(client); 29 | router.use(auth_router); 30 | 31 | const config_router = require('./routers/config.js')(client); 32 | router.use(config_router); 33 | 34 | const stats_router = require('./routers/stats.js')(client); 35 | router.use(stats_router); 36 | 37 | const blog_router = require('./routers/blog.js')(client); 38 | router.use(blog_router); 39 | 40 | const promo_router = require('./routers/promo-code.js')(client); 41 | router.use(promo_router); 42 | 43 | const commands_router = require('./routers/commands.js')(client); 44 | router.use(commands_router); 45 | 46 | const bl_router = require('./routers/blacklist.js')(client); 47 | router.use(bl_router); 48 | 49 | /*============================================================================*/ 50 | 51 | router.use((req, res) => { 52 | res.json({ 53 | success: false, 54 | code: 404, 55 | message: 'Not Found' 56 | }); 57 | }); 58 | 59 | /*============================================================================*/ 60 | 61 | router.listen(3000, () => { 62 | console.log("(!) Site API listening at ::3000"); 63 | }); 64 | 65 | /*============================================================================*/ 66 | 67 | }; -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # light 2 | Light, discord partner botudur. Bot kapandığı için altyapıyı sizlere sunuyoruz. Kullanırsınız, kullanmazsınız sadece bir hatıra. 3 | -------------------------------------------------------------------------------- /commands/ayarlar.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/server.js"); 3 | 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | let lang = client.locale(client['serverData_' + message.guild.id].language); 7 | if (!args[0]) return message.channel.error(client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["argss"]); 8 | 9 | /*=================================================================================*/ 10 | 11 | if (args[0] === lang['ayarlar']['args']['prefix']) { 12 | if (!args[1]) 13 | return message.channel.error( 14 | client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["prefixgir"] 15 | ); 16 | if (args[1] != client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["sifirla"]) { 17 | if (args[1].length > 5) 18 | return message.channel.error( 19 | client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["prefixerr"] 20 | ); 21 | message.channel.success( 22 | client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["prefixdegisti"] 23 | ); 24 | await database.updateOne( 25 | { guildID: message.guild.id }, 26 | { $set: { prefix: args[1] } }, 27 | { upsert: true } 28 | ); 29 | } 30 | if (args[1] === client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["sifirla"]) { 31 | let docs = await database.findOne({ guildID: message.guild.id }); 32 | message.channel.success( 33 | client.locale(client['serverData_' + message.guild.id].language)["ayarlar"]["prefixsifirlandi"] 34 | ); 35 | let prefix = docs ? docs.prefix : null; 36 | if (!prefix) 37 | return message.channel.error( 38 | client.locale(client['serverData_' + message.guild.id].language)["ayarlar"][ 39 | "prefixayarlaonce" 40 | ] 41 | ); 42 | await database.updateOne( 43 | { guildID: message.guild.id }, 44 | { $set: { prefix: null } }, 45 | { upsert: true } 46 | ); 47 | } 48 | } 49 | 50 | /*=================================================================================*/ 51 | 52 | if (args[0] === lang['ayarlar']['args']['dil']) { 53 | require('fs').readdir('./lang', async (err, files) => { 54 | let response = ''; 55 | await files.forEach(file => { 56 | let langFile = require('../lang/' + file); 57 | response += langFile['$package']['flag'] + ' `' + langFile['$package']['name'] + ' (' + file.split('.')[0] + ')`\n' 58 | }); 59 | 60 | if (!args[1]) return message.channel.send( 61 | new Discord.MessageEmbed() 62 | .setColor('#F4F4F4') 63 | .setAuthor(lang['ayarlar']['language']['selectLang'], client.user.avatarURL()) 64 | .setDescription('> __'+lang['ayarlar']['language']['activeLangs']+' (' + files.length + ')__**:**\n\n' + response) 65 | .setFooter(lang['ayarlar']['hataFooter'].replace('{language}', lang['$package']['name'])) 66 | .setTimestamp() 67 | ); 68 | 69 | try { 70 | let langFile = require('../lang/' + args[1] + '.json'); 71 | message.channel.success(lang['ayarlar']['language']['success'].replace("{language}", langFile['$package']['name'])); 72 | 73 | await database.updateOne( 74 | { guildID: message.guild.id }, 75 | { $set: { language: args[1] } }, 76 | { upsert: true } 77 | ); 78 | } catch { 79 | message.channel.error(lang['ayarlar']['language']['invalidLang']); 80 | }; 81 | }); 82 | } 83 | 84 | /*=================================================================================*/ 85 | }, 86 | config: { 87 | name: "ayarlar", 88 | aliases: ["settings"], 89 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 90 | perms: [ 'MANAGE_GUILD' ], 91 | enabled: true 92 | } 93 | }; 94 | -------------------------------------------------------------------------------- /commands/bakım.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const db = require("../database/models/bakim.js") 3 | const moment = require("moment"); 4 | moment.locale('tr') 5 | module.exports = { 6 | run: async (client, message, args) => { 7 | const bakımaldıkabooooo = args[0]; 8 | const sebep = args.slice(1).join(" "); 9 | if (bakımaldıkabooooo == "aç") { 10 | let dbkontrol = await db.findOne({ botID: client.user.id }) 11 | if(dbkontrol) return message.channel.error("Bakım modu zaten aktif durumda.") 12 | if (!sebep) return message.channel.send("Bir sebep belirtmelisin."); 13 | new db({ botID: client.user.id, sebep: sebep, yetkili: message.author.id, süre: Date.now() }).save() 14 | return message.channel.success("Bakım modu başarıyla açıldı.") 15 | } else if (bakımaldıkabooooo == "kapat") { 16 | 17 | let aylartoplam = { 18 | "01": "Ocak", 19 | "02": "Şubat", 20 | "03": "Mart", 21 | "04": "Nisan", 22 | "05": "Mayıs", 23 | "06": "Haziran", 24 | "07": "Temmuz", 25 | "08": "Ağustos", 26 | "09": "Eylül", 27 | "10": "Ekim", 28 | "11": "Kasım", 29 | "12": "Aralık" 30 | }; 31 | let aylar = aylartoplam; 32 | let rol = ""; 33 | 34 | require("moment-duration-format"); 35 | let getData = await db.findOne({ botID: client.user.id }); 36 | let wensj = getData.süre; 37 | const duration = moment 38 | .duration(Date.now() - wensj) 39 | .format(" D [gün], H [saat], m [dakika], s [saniye]"); 40 | 41 | client.users.fetch(getData.yetkili).then(user => { 42 | return embed(` 43 | **:question: | Bakım modunu deaktif etmek istediğinizden emin misiniz?** 44 | > Sebep: \`${getData.sebep}\` 45 | > Yetkili: \`${user.tag}\` 46 | > Bakım Alınma Tarihi: \`${moment(wensj).format("DD")} ${ 47 | aylar[moment(wensj).format("MM")] 48 | } ${moment(wensj).format("YYYY HH:mm:ss")}\` 49 | > Bakım Süresi: \`${duration}\` 50 | `).then(async wenbayrak => { 51 | await wenbayrak.react("✅"); 52 | await wenbayrak.react("❌"); 53 | const filter = (reaction, user) => { 54 | return ( 55 | ["✅", "❌"].includes(reaction.emoji.name) && 56 | user.id === message.author.id 57 | ); 58 | }; 59 | 60 | wenbayrak 61 | .awaitReactions(filter, { max: 1, time: 60000, errors: ["time"] }) 62 | .then(async collected => { 63 | const reaction = collected.first(); 64 | 65 | if (reaction.emoji.name === "✅") { 66 | await db.deleteOne({ botID: client.user.id }); 67 | let bayrakwenqwe = new Discord.MessageEmbed() 68 | .setColor("#f4f4f4") 69 | .setAuthor(message.author.tag) 70 | .setThumbnail(client.user.avatarURL()) 71 | .setDescription(`Bakım başarıyla kapatıldı.`); 72 | wenbayrak.edit(bayrakwenqwe); 73 | } else { 74 | let bayrakwenqwe = new Discord.MessageEmbed() 75 | .setColor("#f4f4f4") 76 | .setAuthor(message.author.tag) 77 | .setThumbnail(client.user.avatarURL()) 78 | .setDescription(`İşlem iptal edildi.`); 79 | wenbayrak.edit(bayrakwenqwe); 80 | } 81 | }) 82 | .catch(err => { 83 | let bayrakwenqwe = new Discord.MessageEmbed() 84 | .setColor("#f4f4f4") 85 | .setAuthor(message.author.tag) 86 | .setThumbnail(client.user.avatarURL()) 87 | .setDescription(`İşlem iptal edildi.`); 88 | wenbayrak.edit(bayrakwenqwe); 89 | }); 90 | }); 91 | }) 92 | } else { 93 | return message.reply("Geçersiz argüman! Argümanlar: `aç` `kapat`"); 94 | } 95 | async function embed(text) { 96 | //Bayrak & WenSamita Neiva 97 | const embed = new Discord.MessageEmbed() //Bayrak & WenSamita Neiva 98 | .setColor("BLUE") //Bayrak & WenSamita Neiva 99 | .setThumbnail(message.author.avatarURL({ dynamic: true })) 100 | .setAuthor( 101 | //Bayrak & WenSamita Neiva 102 | message.author.tag, //Bayrak & WenSamita Neiva 103 | message.author.avatarURL({ dynamic: true }) //Bayrak & WenSamita Neiva 104 | ) //Bayrak & WenSamita Neiva 105 | .setDescription(`${text}`) //Bayrak & WenSamita Neiva 106 | .setTimestamp() //Bayrak & WenSamita Neiva 107 | .setFooter(client.user.username, client.user.avatarURL()); //Bayrak & WenSamita Neiva 108 | let msg = await message.channel.send(embed); //Bayrak & WenSamita Neiva 109 | return msg; //Bayrak & WenSamita Neiva 110 | } 111 | }, 112 | config: { 113 | name: 'bakım', 114 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 115 | aliases: [], 116 | perms: [ 'DEVELOPER' ], 117 | enabled: true 118 | } 119 | }; -------------------------------------------------------------------------------- /commands/bal.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/coin.js"); 3 | let sdb = require("../database/models/süre.js"); 4 | let gecmis = require("../database/models/coin-geçmişi.js"); 5 | 6 | module.exports = { 7 | run: async (client, message, args) => { 8 | const d = await database.findOne({ userID: message.author.id }) || 0; 9 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['bal']; 10 | const embed = new Discord.MessageEmbed(); 11 | embed.setColor("#F4F4F4") 12 | embed.setAuthor(message.author.tag, message.author.avatarURL({dynamic: true})) 13 | embed.setThumbnail(client.user.avatarURL()) 14 | let amount = d.amount || 0; 15 | embed.setDescription(lang['bulunuyor'].replace("{amount}", amount.toLocaleString())) 16 | 17 | let g = await gecmis.findOne({ userID: message.author.id }); 18 | if(!g) { 19 | embed.addField(lang['geçmiş'], lang['geçmişyok']) 20 | } else { 21 | embed.addField(lang['geçmiş'], g.gecmis.sort((a,b) => b.Date - a.Date).slice(0, 10).map(data => { 22 | let text = lang['+']; 23 | if (parseInt(data.count) < 1) text = lang['-']; 24 | return text.replace('{coin}', parseInt(data.count) > 0 ? ('+' + data.count) : data.count).replace('{user}', data.user == '{system}' ? lang['system'] : data.user).replace('{reason}', data.reason == '{none}' ? lang['none'] : data.reason == '{daily}' ? lang['daily'] : data.reason == '{promocode}' ? lang['promocode'] : data.reason == '{coinflip}' ? lang['coinflip'] : data.reason == '{added}' ? lang['added'] : data.reason); 25 | }).join("\n")) 26 | } 27 | message.channel.send(embed) 28 | }, 29 | config: { 30 | name: "bal", 31 | aliases: [ 'balance', 'hesap', 'account' ], 32 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 33 | perms: [], 34 | enabled: true 35 | } 36 | }; -------------------------------------------------------------------------------- /commands/bug-bildir.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | 3 | module.exports = { 4 | run: (client, message, args, db) => { 5 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['bugbildir']; 6 | const bug = args.slice(0).join(" "); 7 | if(!bug) return message.channel.error(lang['belirt']); 8 | const hook = new Discord.WebhookClient("842186434765258793", "jPVSzwWPHZQOtEBW6xn8BY91BKV2TSkH4Xx2XDVT-usc9JPQ9-YdOPoC0xjuFHf8BjTP"); 9 | hook.send(new Discord.MessageEmbed().setTitle("Bug tespit edildi...").setColor("#F4F4F4").setDescription(` 10 | > **Bug bulan**: ${message.author.tag} \`(${message.author.id})\` 11 | > **Sunucu**: ${message.guild.name} \`(${message.guild.id})\` 12 | 13 | __**Bug: ${bug}**__ 14 | `) 15 | ); 16 | return message.channel.success(lang['bildirdi']); 17 | }, 18 | config: { 19 | name: 'bug-bildir', 20 | aliases: ["bug-report"], 21 | desc: 'açıklama', 22 | perms: [], 23 | enabled: true 24 | } 25 | }; -------------------------------------------------------------------------------- /commands/coin.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/coin.js"); 3 | let gecmis = require("../database/models/coin-geçmişi.js"); 4 | 5 | module.exports = { 6 | run: async (client, message, args) => { 7 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['coin']; 8 | if(args[0] === "işlem"){ 9 | let user = message.mentions.users.first() || client.users.cache.get(args[1]); 10 | if(!user) return message.channel.error(lang['üyebelirt']) 11 | let moneyCount = args[2]; 12 | if(!moneyCount) return message.channel.error(lang['gönderilecek']) 13 | if (isNaN(moneyCount)) return message.channel.error(lang['gecersizMiktar']); 14 | if (moneyCount > 9999 || moneyCount < -9999) return message.channel.error(lang['limit']); 15 | if(user.bot) return message.channel.error(lang['boterr']) 16 | await database.findOneAndUpdate({userID: user.id }, {$inc: {amount: args[2] }}, { upsert: true }) 17 | await gecmis.findOneAndUpdate({userID: user.id}, {$push: {gecmis: { count: moneyCount, user: message.author.tag, reason: (args.slice(3).join(' ').length > 0 ? args.slice(3).join(' ').slice(0, 25) : '{none}'), Date: Date.now() } }}, { upsert: true}); 18 | return message.channel.success(lang['gönderdi'].replace("{gönderilcek}", moneyCount).replace("{user}", user)) 19 | } 20 | if(args[0] === "geçmiş-sıfırla") { 21 | let user = message.mentions.users.first(); 22 | if(!user) return message.channel.error("Bir kullanıcı belirtmelisin"); 23 | await gecmis.deleteOne({userID: user.id}) 24 | message.channel.success(`${user.tag} kullanıcısının hesabı sıfırlandı.`); 25 | } 26 | if(args[0] === "sıfırla") { 27 | let user = message.mentions.users.first(); 28 | if(!user) return message.channel.error(lang['üyebelirt']); 29 | await database.findOneAndUpdate({userID: user.id }, {$set: {amount: 0 }}, { upsert: true }) 30 | 31 | message.channel.success(`${user.tag} kullanıcısının hesabı sıfırlandı.`); 32 | } 33 | }, 34 | config: { 35 | name: "coin", 36 | aliases: [], 37 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 38 | perms: [ 'DEVELOPER' ], 39 | enabled: true 40 | } 41 | }; 42 | -------------------------------------------------------------------------------- /commands/coinflip.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/coin.js"); 3 | let sdb = require("../database/models/süre.js"); 4 | let gecmis = require("../database/models/coin-geçmişi.js"); 5 | 6 | module.exports = { 7 | run: async (client, message, args, premium) => { 8 | let lang = client.locale(client['serverData_' + message.guild.id].language)['coinflip']; 9 | 10 | let bet = args[0]; 11 | let random = Math.floor(Math.random() * 3); 12 | let user = await database.findOne({ userID: message.author.id }); 13 | 14 | if (!bet) return message.channel.error(lang['args[0]']); 15 | if (isNaN(bet)) return message.channel.error(lang['args[1]']); 16 | if (bet.toString().includes('.')) return message.channel.error(lang['args[2]']); 17 | if (parseInt(bet) < 3 || parseInt(bet) > 50) return message.channel.error(lang['args[3]']); 18 | if (!user || user.amount < parseInt(bet)) return message.channel.error(lang['args[4]'].replace("{coin}", bet)); 19 | 20 | message.channel.send( 21 | new Discord.MessageEmbed() 22 | .setColor('#F4F4F4') 23 | .setDescription(lang['flipping']) 24 | ).then(msg => { 25 | setTimeout(async () => { 26 | if (random == 1) { 27 | if(premium) { 28 | msg.edit( 29 | new Discord.MessageEmbed() 30 | .setColor('#F4F4F4') 31 | .setDescription(lang['nothing']) 32 | ); 33 | } else { 34 | await database.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: -bet }}, { upsert: true }) 35 | await gecmis.findOneAndUpdate({userID: message.author.id}, {$push: {gecmis: { count: -bet, user: "{system}", reason: "{coinflip}", Date: Date.now() } }}, { upsert: true}); 36 | msg.edit( 37 | new Discord.MessageEmbed() 38 | .setColor('#F4F4F4') 39 | .setDescription(lang['youLost'].replace("{coin}", bet)) 40 | ); 41 | } 42 | }; 43 | 44 | if (random == 0) { 45 | msg.edit( 46 | new Discord.MessageEmbed() 47 | .setColor('#F4F4F4') 48 | .setDescription(lang['nothing']) 49 | ); 50 | }; 51 | 52 | if (random == 2) { 53 | await database.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: bet }}, { upsert: true }) 54 | await gecmis.findOneAndUpdate({userID: message.author.id}, {$push: {gecmis: { count: (bet*2), user: "{system}", reason: "{coinflip}", Date: Date.now() } }}, { upsert: true}); 55 | msg.edit( 56 | new Discord.MessageEmbed() 57 | .setColor('#F4F4F4') 58 | .setDescription(lang['youWon'].replace("{coin}", (bet *2) )) 59 | ); 60 | }; 61 | }, 3000); 62 | }); 63 | }, 64 | config: { 65 | name: "coinflip", 66 | aliases: [ 'cf', 'yazı-tura', 'yt', 'yazıtura' ], 67 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 68 | perms: [], 69 | enabled: true 70 | } 71 | }; -------------------------------------------------------------------------------- /commands/davet.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const moment = require('moment'); 3 | const config = require("../config.js") 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | let lang = client.locale(client[`serverData_${message.guild.id}`].language); 7 | message.channel.send(new Discord.MessageEmbed() 8 | .setAuthor(message.author.tag, message.author.avatarURL({ dynamic: true })) 9 | .setColor("BLURPLE").setImage(config.embed.image) 10 | .setDescription(`${lang['bot']['davetMesaj'].replace("{author}", message.author.username)}`) 11 | .addField(`${lang['bot']['links']}`, `**[${lang['bot']['website']}](https://lightpartner.xyz) | [${lang['bot']['invite']}](https://lightpartner.xyz/invite) | [${lang['bot']['support']}](${config.links.support})**`) 12 | ) 13 | }, 14 | config: { 15 | name: 'davet', 16 | aliases: ['links','invite','link','bağlantılar','bot'], 17 | desc: 'açıklama', 18 | perms: [], 19 | enabled: true 20 | } 21 | }; -------------------------------------------------------------------------------- /commands/ekledim.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let db = require("../database/models/ekledim.js"); 3 | let dBase = require("../database/models/coin.js"); 4 | let gecmis = require("../database/models/coin-geçmişi.js"); 5 | module.exports = { 6 | run: async (client, message, args) => { 7 | let lang = client.locale(client['serverData_' + message.guild.id].language)['ekledim']; 8 | let size = client.guilds.cache.filter(a => a.ownerID === message.author.id && a.memberCount > 100).size; 9 | let database = await db.findOne({ userID: message.author.id }); 10 | if(database) return message.channel.error(lang['kullanmissin']); 11 | if(size === 2) { 12 | let coin = 25; 13 | await dBase.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: coin }}, { upsert: true }) 14 | await gecmis.findOneAndUpdate({ userID: message.author.id }, {$push: {gecmis: { count: coin, user: "{system}", reason: "{added}", Date: Date.now() } }}, { upsert: true}); 15 | await db.findOneAndUpdate({ userID: message.author.id }, {$set: {userID: message.author.id}}, { upsert: true }) 16 | return message.channel.success(lang['kullandin'].replace("{coin}", coin)); 17 | } else { 18 | return message.channel.error(lang['100ekle'].replace("{count}", size)) 19 | } 20 | }, 21 | config: { 22 | name: "ekledim", 23 | aliases: [ 'added', 'add' ], 24 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 25 | perms: [], 26 | enabled: true 27 | } 28 | }; -------------------------------------------------------------------------------- /commands/eval.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const tokenuyari = `Hata: Kod token korumasından dolayı çalıştırılmadı!`; 3 | const config = require('../config.js'); 4 | const fs = require('fs'); 5 | 6 | module.exports = { 7 | run: async (client, message, args) => { 8 | const reload = client.reload; 9 | if(!args[0]) { 10 | const embed = new Discord.MessageEmbed() 11 | .setDescription(`Çalıştırmak için bir kod yazmalısın!`) 12 | .setColor('#F4F4F4') 13 | .setTimestamp() 14 | message.channel.send({embed}) 15 | return 16 | } 17 | const code = args.join(' '); 18 | function clean(text) { 19 | if (typeof text !== 'string') 20 | text = require('util').inspect(text, { depth: 0 }) 21 | text = text 22 | .replace(/`/g, '`' + String.fromCharCode(8203)) 23 | .replace(/@/g, '@' + String.fromCharCode(8203)) 24 | return text; 25 | }; 26 | 27 | const evalEmbed = new Discord.MessageEmbed().setColor('#F4F4F4') 28 | try { 29 | var evaled = clean(await eval(code)); 30 | if(evaled.includes(config.token.slice(0, 10))) evaled = tokenuyari; 31 | if (evaled.constructor.name === 'Promise') evalEmbed.setDescription(`\`\`\`\n${evaled}\n\`\`\``) 32 | else evalEmbed.setDescription(`\`\`\`js\n${evaled}\n\`\`\``) 33 | console.log('(!) ' + message.author.tag + ', eval kullandı: ' + code); 34 | 35 | const newEmbed = new Discord.MessageEmbed() 36 | .setTitle('📤 | Kod çalıştırıldı!') 37 | .setDescription(`\`\`\`js\n${evaled}\`\`\``) 38 | .setColor('#F4F4F4') 39 | message.channel.send(newEmbed); 40 | } 41 | catch (err) { 42 | evalEmbed.addField('Hata çıktı;', `\`\`\`js\n${err}\n\`\`\``); 43 | evalEmbed.setColor('#F4F4F4'); 44 | message.channel.send(evalEmbed); 45 | } 46 | }, 47 | config: { 48 | name: 'eval', 49 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 50 | aliases: [], 51 | perms: [ 'DEVELOPER' ], 52 | enabled: true 53 | } 54 | }; -------------------------------------------------------------------------------- /commands/günlük-ödül.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/coin.js"); 3 | let sdb = require("../database/models/süre.js"); 4 | let gecmis = require("../database/models/coin-geçmişi.js"); 5 | 6 | const moment = require("moment"); 7 | require('moment-duration-format') 8 | 9 | module.exports = { 10 | run: async (client, message, args, premium) => { 11 | const lang = client.locale(client[`serverData_${message.guild.id}`].language)['coin']['günlük']; 12 | const globallang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 13 | let ms = 86400000; 14 | let miktarlar; 15 | if(premium) { 16 | miktarlar = [ '6', '8', '10', '12', '14', '16' ] 17 | } else { 18 | miktarlar = [ '3', '4', '5', '6', '7', '8' ] 19 | } 20 | let alinan = miktarlar[Math.floor(Math.random() * miktarlar.length)]; 21 | let time = "1 gün"; 22 | let süredata = await sdb.findOne({ user: message.author.id }); 23 | 24 | if (süredata) { 25 | let kalan = süredata.ms - (Date.now() - süredata.Date); 26 | if(kalan >= 1) return message.channel.error(lang['suregecmeli'].replace("{time}", '**' + moment.duration(kalan).format(`D [${globallang['days']}], H [${globallang['hour']}], m [${globallang['min']}], s [${globallang['seconds']}]`) + '**')); 27 | }; 28 | 29 | await database.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: alinan }}, { upsert: true }) 30 | await sdb.findOneAndUpdate({user: message.author.id }, {$set: { Date: Date.now(), ms: ms }}, { upsert: true }) 31 | await gecmis.findOneAndUpdate({userID: message.author.id}, {$push: {gecmis: { count: alinan, user: '{system}', reason: '{daily}', Date: Date.now() } }}, { upsert: true}); 32 | return message.channel.success(lang['alindi'].replace("{miktar}", alinan).replace("{time}", `1 ${globallang['days']}`)) 33 | }, 34 | config: { 35 | name: "günlük-ödül", 36 | aliases: [ 'gö', 'daily-reward', 'dr', 'daily-rewards'], 37 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 38 | perms: [], 39 | enabled: true 40 | } 41 | }; -------------------------------------------------------------------------------- /commands/istatistik.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const moment = require('moment') 3 | require("moment-duration-format"); 4 | var os = require('os') 5 | var config = require('../config.js'); 6 | 7 | module.exports = { 8 | run: async (client, message, args, db) => { 9 | let owners = []; 10 | config.developers.forEach(id => { 11 | let user = client.users.cache.get(id); 12 | if (user) owners.push(user.tag); 13 | }); 14 | 15 | let $now = Date.now(); 16 | await require('../database/models/server.js').findOne({ guildID: message.guild.id }); 17 | let dbPing = Date.now() - $now; 18 | 19 | const samita = moment.duration(client.uptime).format(" D [gn], H [sa], m [dk], s [sn]"); 20 | let lang = client.locale(client['serverData_' + message.guild.id].language)['istatistik']; 21 | const botDB = require("../database/models/bot.js"); 22 | const database = await botDB.findOne({botID: client.user.id}) 23 | const lightpartner = new Discord.MessageEmbed() 24 | .setColor('#F4F4F4') 25 | .setThumbnail(client.user.avatarURL()) 26 | .setTitle('<:istatistiq:841270673443389441>ᅠ'+ lang['title']) 27 | .addField('ᅠ•ᅠ' + lang['generalDatas'], "```" + client.guilds.cache.size.toLocaleString() + " sunucu, " + client.guilds.cache.reduce((a, b) => a + b.memberCount, 0).toLocaleString() + " kullanıcı, " + client.channels.cache.size.toLocaleString() + " kanal```") 28 | .addField('<:pong:841270306236792872>ᅠ•ᅠ' + lang['pingDatas'], "```Bot Gecikmesi: " + client.ws.ping + "ms, Mongoose Gecikmesi: " + dbPing + "ms```") 29 | .addField('<:kitapliq:841269655402577950>ᅠ•ᅠ' + lang['softwareDatas'], "```discord.js@" + Discord.version + " & node.js " + process.version + "```") 30 | .addField('<:time:841269439336153101>ᅠ•ᅠ' + lang['uptime'], "```" + samita + "```", true) 31 | .addField(':handshake:ᅠ•ᅠ' + lang['totalPartner'], "```" + (database ? (database.partnerCount ? database.partnerCount : 0) : 0) + "```", true) 32 | .addField('<:devv:841269293680295937>ᅠ•ᅠ' + lang['dev'], "```" + owners.map((user, key) => ([ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 ].includes(key) ? '\n' : '') + user).join(', ') + "```") 33 | .setFooter(client.user.username + ' ©️ ' + new Date().getFullYear(), client.user.avatarURL()) 34 | .setTimestamp(); 35 | return message.channel.send(lightpartner); 36 | }, 37 | config: { 38 | name: "istatistik", 39 | aliases: [ 'i' , 'statistics'], 40 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 41 | perms: [], 42 | enabled: true 43 | } 44 | }; -------------------------------------------------------------------------------- /commands/karaliste.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/karaliste.js"); 3 | const moment = require("moment"); 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | let db = database; 7 | const kara = args[0]; 8 | const sebep = args.slice(2).join(" "); 9 | let user = message.mentions.users.first() || await client.users.fetch(args[1]); 10 | user.tag = user.username + '#' + user.discriminator; 11 | 12 | if (kara == "al") { 13 | if (!user) 14 | return message.channel.error(":x: | Bir üye etiketlemeli veya bir kullanıcı kimliği belirtmelisin."); 15 | if (!sebep) return message.channel.error(":x: | Sebep belirtmelisin."); 16 | new database({ userID: user.id, yetkili: message.author.id, süre: Date.now(), sebep: sebep}).save(); 17 | return message.channel.success(`**\`${user.tag}\` isimli kullanıcı \`${sebep}\` sebebiyle karalisteye alındı.**`) 18 | } else if (kara == "çıkar") { 19 | if (!user) 20 | return message.channel.error(":x: | Bir üye etiketlemeli veya bir kullanıcı kimliği belirtmelisin."); 21 | let lightdata = await database.findOne({ userID: user.id}) 22 | if (!lightdata) 23 | return message.channel.error(":x: | Bu kullanıcı karalistede bulunmuyor."); 24 | let aylartoplam = { 25 | "01": "Ocak", 26 | "02": "Şubat", 27 | "03": "Mart", 28 | "04": "Nisan", 29 | "05": "Mayıs", 30 | "06": "Haziran", 31 | "07": "Temmuz", 32 | "08": "Ağustos", 33 | "09": "Eylül", 34 | "10": "Ekim", 35 | "11": "Kasım", 36 | "12": "Aralık" 37 | }; 38 | let aylar = aylartoplam; 39 | let rol = ""; 40 | 41 | require("moment-duration-format"); 42 | let wensj = lightdata.süre; 43 | const duration = moment 44 | .duration(Date.now() - wensj) 45 | .format(" D [gün], H [saat], m [dakika], s [saniye]"); 46 | let ytag; 47 | let utag; 48 | client.users.fetch(lightdata.yetkili).then(yetkili => { 49 | client.users.fetch(lightdata.userID).then(user => { 50 | return embed(` 51 | **:question: | \`${user.tag}\` isimli kullanıcıyı karalisteden çıkar istediğinizden emin misiniz?** 52 | 53 | > • __Karaliste Sebebi__**:** \`${lightdata.sebep}\` 54 | > • __Yetkili Kullanıcı__**:** \`${yetkili.tag}\` 55 | > • __Karalisteye Alınma Tarihi__**:** \`${moment(wensj).format("DD")} ${ 56 | aylar[moment(wensj).format("MM")] 57 | } ${moment(wensj).format("YYYY HH:mm:ss")}\` 58 | > • __Karaliste Süresi__**:** \`${duration}\` 59 | `).then(async wenbayrak => { 60 | await wenbayrak.react("✅"); 61 | await wenbayrak.react("❌"); 62 | const filter = (reaction, user) => { 63 | return ( 64 | ["✅", "❌"].includes(reaction.emoji.name) && 65 | user.id === message.author.id 66 | ); 67 | }; 68 | wenbayrak 69 | .awaitReactions(filter, { max: 1, time: 60000, errors: ["time"] }) 70 | .then(async collected => { 71 | const reaction = collected.first(); 72 | 73 | if (reaction.emoji.name === "✅") { 74 | await db.deleteOne({ userID: user.id }); 75 | let bayrakwenqwe = new Discord.MessageEmbed() 76 | .setColor("RED") 77 | .setAuthor(message.author.tag) 78 | .setThumbnail(client.user.avatarURL()) 79 | .setDescription(`\`${user.tag}\` isimli kullanıcı karalisteden çıkarıldı.`); 80 | wenbayrak.edit(bayrakwenqwe); 81 | } else { 82 | let bayrakwenqwe = new Discord.MessageEmbed() 83 | .setColor("RED") 84 | .setAuthor(message.author.tag) 85 | .setThumbnail(client.user.avatarURL()) 86 | .setDescription(`İşlem iptal edildi!`); 87 | wenbayrak.edit(bayrakwenqwe); 88 | } 89 | }) 90 | .catch(err => { 91 | let bayrakwenqwe = new Discord.MessageEmbed() 92 | .setColor("RED") 93 | .setAuthor(message.author.tag) 94 | .setThumbnail(client.user.avatarURL()) 95 | .setDescription(`OROSPULAR HATA VARR HATAA`); 96 | wenbayrak.edit(bayrakwenqwe); 97 | }); 98 | }); 99 | }) 100 | }) 101 | } else { 102 | return message.channel.error("Geçersiz argüman! Argümanlar: `al` `çıkar`"); 103 | } 104 | async function embed(text) { 105 | //Bayrak & WenSamita Neiva 106 | const embed = new Discord.MessageEmbed() //Bayrak & WenSamita Neiva 107 | .setColor("BLUE") //Bayrak & WenSamita Neiva 108 | .setThumbnail(message.author.avatarURL({ dynamic: true })) 109 | .setAuthor( 110 | //Bayrak & WenSamita Neiva 111 | message.author.tag, //Bayrak & WenSamita Neiva 112 | message.author.avatarURL({ dynamic: true }) //Bayrak & WenSamita Neiva 113 | ) //Bayrak & WenSamita Neiva 114 | .setDescription(`${text}`) //Bayrak & WenSamita Neiva 115 | .setTimestamp() //Bayrak & WenSamita Neiva 116 | .setFooter(client.user.username, client.user.avatarURL()); //Bayrak & WenSamita Neiva 117 | let msg = await message.channel.send(embed); //Bayrak & WenSamita Neiva 118 | return msg; //Bayrak & WenSamita Neiva 119 | } 120 | }, 121 | config: { 122 | name: 'karaliste', 123 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 124 | aliases: [], 125 | perms: [ 'DEVELOPER' ], 126 | enabled: true 127 | } 128 | }; -------------------------------------------------------------------------------- /commands/kod.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let db = require("../database/models/kod-data.js"); 3 | 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | if(!args[0]) return message.channel.error('Argmüman belirt! \n `oluştur`, `listele`, `sil`') 7 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['code']; 8 | let glang = client.locale(client[`serverData_${message.guild.id}`].language)['quest']; 9 | if(args[0] === "oluştur") { 10 | if(!args[1]) return message.channel.error(":x: Bir kullanım miktarı girmelisin."); 11 | if(!args[2]) return message.channel.error(":x: Bir coin miktarı girmelisin."); 12 | let kodd = "LP-"+idCreate(4)+"-"+idCreate(4)+"-"+idCreate(4); 13 | message.channel.success(`Kod başarıyla oluşturuldu.\n\n> __Kod__**:** \`${kodd}\` \n> __Link__**:** [Tıkla ve Kullan](https://lightpartner.xyz/promo-code?code=${kodd})`); 14 | await db.updateOne({kod: kodd}, {$set: {kullanim: 0, usage: args[1], users: [], prize: args[2]}},{upsert: true}) 15 | } 16 | if(args[0] === "liste") { 17 | let database = await db.find(); 18 | const embed = new Discord.MessageEmbed().setTitle("Promosyon Kodları").setColor("#F4F4F4"); 19 | const bluredEmbed = new Discord.MessageEmbed().setTitle("Promosyon Kodları").setColor("#F4F4F4"); 20 | 21 | let codes = ''; 22 | let bluredCodes = ''; 23 | let limits = ''; 24 | let coins = ''; 25 | 26 | await database.map(a => { 27 | bluredCodes += '> ``' + '⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎⁎'.slice(0, a.kod.length) + '``\n '; 28 | codes += '> ``' + a.kod + '``\n '; 29 | limits += '> ``' + (a.kullanim + '/' + a.usage) + '``\n '; 30 | coins += '> ``' + a.prize + '``\n '; 31 | }); 32 | 33 | embed 34 | .addField("> ᴘʀᴏᴍᴏꜱʏᴏɴ ᴋᴏᴅᴜ", codes, true) 35 | .addField("> ʟɪᴍɪᴛ", limits, true) 36 | .addField("> ᴄᴏɪɴ", coins, true); 37 | 38 | bluredEmbed 39 | .addField("> ᴘʀᴏᴍᴏꜱʏᴏɴ ᴋᴏᴅᴜ", bluredCodes, true) 40 | .addField("> ʟɪᴍɪᴛ", limits, true) 41 | .addField("> ᴄᴏɪɴ", coins, true); 42 | 43 | message.channel.send(bluredEmbed).then(msg => { 44 | msg.react('👁️').then(reaction => { 45 | let filter = (react, reactedBy) => react.emoji.name == '👁️' && reactedBy.id == message.author.id; 46 | let collector = msg.createReactionCollector(filter); 47 | 48 | collector.on('collect', async r => { 49 | msg.reactions.removeAll(); 50 | msg.edit({ embed }); 51 | }); 52 | }); 53 | }); 54 | } 55 | if(args[0] === "sil") { 56 | let kodd = args[1]; 57 | if(!kodd) return message.channel.error("Bir kod girmelisin."); 58 | let a = await db.findOne({ kod: kodd }); 59 | if(!a) return message.channel.error("Geçersiz bir kod girdiniz."); 60 | message.channel.areYouSure(`**${a.kod}** kodunu silmek istediğinizden emin misiniz? \`(evet/hayır)\`\n> Kullanım: ${a.kullanim}/${a.usage}\n> Coin: ${a.prize}`) 61 | message.channel 62 | .awaitMessages(m => m.author.id === message.author.id, { 63 | max: 1, 64 | time: 30000, 65 | errors: ["time"] 66 | }) 67 | .then(async message => { 68 | message = message.first(); 69 | if (message.content.toLowerCase() === "evet") { 70 | await db.deleteOne({ kod: kodd }); 71 | return message.channel.success("Kod başarıyla silindi."); 72 | } else if (message.content.toLowerCase() === "hayır") { 73 | return message.channel.error("Kod silme işlemi iptal edildi."); 74 | } 75 | }) 76 | .catch(collected => { 77 | message.channel.error(glang['timeout']); 78 | }); 79 | } 80 | }, 81 | config: { 82 | name: "kod", 83 | aliases: [], 84 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 85 | perms: [ 'DEVELOPER' ], 86 | enabled: true 87 | } 88 | }; 89 | function idCreate(length) { 90 | var result = ''; 91 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'; 92 | var charactersLength = characters.length; 93 | for ( var i = 0; i < length; i++ ) { 94 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 95 | } 96 | return result; 97 | } -------------------------------------------------------------------------------- /commands/kullanicibilgi.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const moment = require("moment"); 3 | require('moment-duration-format'); 4 | const premiumdata = require("../database/models/pre.js"); 5 | 6 | module.exports = { 7 | run: async (client, message, args) => { 8 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['kullanıcıb']; 9 | let globallang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 10 | let tarihler = { 11 | "01": globallang['aylar']['ocak'], 12 | "02": globallang['aylar']['subat'], 13 | "03": globallang['aylar']['mart'], 14 | "04": globallang['aylar']['nisan'], 15 | "05": globallang['aylar']['mayis'], 16 | "06": globallang['aylar']['haziran'], 17 | "07": globallang['aylar']['temmuz'], 18 | "08": globallang['aylar']['agustos'], 19 | "09": globallang['aylar']['eylül'], 20 | "10": globallang['aylar']['ekim'], 21 | "11": globallang['aylar']['kasim'], 22 | "12": globallang['aylar']['aralik'] 23 | } 24 | let acilis = `${moment(message.author.createdAt).format('DD')} ${tarihler[moment(message.author.createdAt).format('MM')]} ${moment(message.author.createdAt).format('YYYY h:mm:ss')}`; 25 | let predurum; 26 | let presüre; 27 | let predata = await premiumdata.findOne({ user: message.author.id }); 28 | if(predata) { 29 | let süre = predata.ms - (Date.now() - predata.Date); 30 | predurum = lang['active']; 31 | presüre = moment.duration(süre).format(`D [${globallang['days']}], H [${globallang['hour']}], m [${globallang['min']}], s [${globallang['seconds']}]`); 32 | } else { 33 | predurum = lang['deactive']; 34 | presüre = lang['deactive']; 35 | } 36 | const membed = new Discord.MessageEmbed(); 37 | membed.setColor('#F4F4F4') 38 | membed.setAuthor(message.author.username+`(${message.author.id})`, message.author.avatarURL({dynamic: true})) 39 | membed.setThumbnail(message.author.avatarURL({dynamic: true})) 40 | membed.addField(`:id: ${lang['kid']}`,`${message.author.id}`, true) 41 | membed.addField(`:card_index: ${lang['kadi']}`, message.author.username, true) 42 | membed.addField(`:hash: ${lang['ktag']}`, message.author.discriminator, true) 43 | membed.addField(`:diamond_shape_with_a_dot_inside: ${lang['premium']}`, "`"+predurum+"`", true) 44 | if(predata) { 45 | membed.addField(`:timer: ${lang['presüre']}`, presüre, true) 46 | membed.addField(`ᅠ`, `ᅠ`, true) 47 | } 48 | membed.addField(`:date: ${lang['kacilis']}`,acilis, true) 49 | membed.addField(`:robot: ${lang['kekledigi']}`, client.guilds.cache.filter(a => a.ownerID === message.author.id).size, true) 50 | message.channel.send(membed) 51 | }, 52 | config: { 53 | name: 'kullanicibilgi', 54 | aliases: ['kullanıcıbilgi','kullanicibilgi','kb','user-info','userinfo','ui'], 55 | desc: 'açıklama', 56 | perms: [], 57 | enabled: true 58 | } 59 | }; -------------------------------------------------------------------------------- /commands/kurulum.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const databaseServer = require("../database/models/server.js"); 3 | const botdb = require("../database/models/bot.js"); 4 | const coindb = require("../database/models/coin.js"); 5 | const hdb = require("../database/models/coin-geçmişi.js"); 6 | const sdb = require("../database/models/url-süre.js") 7 | const { MessageButton } = require("discord-buttons"); 8 | module.exports = { 9 | run: async (client, message, args, db) => { 10 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['partner']; 11 | let globallang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 12 | let findOne = await databaseServer.findOne({ guildID: message.guild.id }); 13 | let prefix = findOne ? (findOne.prefix || require("../config.js").prefix) : require("../config.js").prefix; 14 | 15 | if(findOne) { 16 | let sorumlu = findOne.partner_sorumlu 17 | let text = findOne.partner_text 18 | let kanal = findOne.partner_kanal 19 | let log = findOne.partner_log 20 | 21 | if(text || kanal || log || sorumlu) return message.channel.error(lang['kurulumYapilmiski']); 22 | } 23 | 24 | message.channel.send(`${lang['taggRole']}`).then(msg => { 25 | message.channel.awaitMessages(m => m.author.id == message.author.id, { 26 | max: 1, 27 | time: 30000 28 | }).then(partnerRole => { 29 | 30 | let role = partnerRole.first().mentions.roles.first(); 31 | 32 | if (partnerRole.first().content) { 33 | if(role) { 34 | partnerRole.first().delete({ 35 | timeout: 500 36 | }) 37 | } else { 38 | partnerRole.first().delete({ 39 | timeout: 500 40 | }) 41 | return msg.edit(`${lang['gecersizArgüman']}`); 42 | } 43 | } 44 | msg.edit(`${lang['writePartnerText']}`) 45 | 46 | message.channel.awaitMessages(m => m.author.id == message.author.id, { 47 | max: 1, 48 | time: 30000 49 | }).then(partnerText => { 50 | if (partnerText.first().content) { 51 | partnerText.first().delete({ 52 | timeout: 500 53 | }) 54 | } 55 | 56 | msg.edit(`${lang['tagPartnerChannel']}`) 57 | message.channel.awaitMessages(m => m.author.id == message.author.id, { 58 | max: 1, 59 | time: 30000 60 | }).then(partnerChannel => { 61 | let partnerChannelTag = partnerChannel.first().mentions.channels.first() 62 | 63 | if (partnerChannel.first().content) { 64 | if(partnerChannelTag) { 65 | partnerChannel.first().delete({ 66 | timeout: 500 67 | }) 68 | } else { 69 | partnerChannel.first().delete({ 70 | timeout: 500 71 | }) 72 | return msg.edit(`${lang['gecersizArgüman']}`); 73 | } 74 | } 75 | msg.edit(`${lang['tagLogChannel']}`) 76 | message.channel.awaitMessages(m => m.author.id == message.author.id, { 77 | max: 1, 78 | time: 30000 79 | }).then(partnerLogChannel => { 80 | let partnerLogChannelTag = partnerLogChannel.first().mentions.channels.first() 81 | 82 | if (partnerLogChannel.first().content) { 83 | if(partnerLogChannelTag) { 84 | partnerLogChannel.first().delete({ 85 | timeout: 500 86 | }) 87 | } else { 88 | partnerLogChannel.first().delete({ 89 | timeout: 500 90 | }) 91 | return msg.edit(`${lang['gecersizArgüman']}`); 92 | } 93 | } 94 | msg.edit(`${lang['durumuAccanmi']}`) 95 | message.channel.awaitMessages(m => m.author.id == message.author.id, { 96 | max: 1, 97 | time: 30000 98 | }).then(async partnerDurum => { 99 | 100 | if (partnerDurum.first().content) { 101 | if(partnerDurum.first().content === lang['durumEvet'] || partnerDurum.first().content === lang['durumHayır']) { 102 | partnerDurum.first().delete({ 103 | timeout: 500 104 | }) 105 | } else { 106 | partnerDurum.first().delete({ 107 | timeout: 500 108 | }) 109 | return msg.edit(`${lang['gecersizArgüman']}`); 110 | } 111 | } 112 | let url = idCreate(5); 113 | await databaseServer.updateOne({ guildID: message.guild.id }, {$set: { 114 | partner_durum: partnerDurum.first().content == lang['durumEvet'] ? "Aktif" : "DeAktif", 115 | partner_sorumlu: role.id, 116 | partner_text: partnerText.first().content, 117 | partner_kanal: partnerLogChannelTag.id, 118 | partner_log: partnerLogChannelTag.id, 119 | partner_inviteURL: url 120 | }}, { upsert: true }) 121 | 122 | let timeData = require("../database/models/url-süre.js"); 123 | let timed = await timeData.findOne({ guild: message.guild.id }) 124 | const moment = require("moment"); 125 | require('moment-duration-format') 126 | let timeexp = ''; 127 | let time = ''; 128 | let süre = ''; 129 | if(timed) { 130 | timeexp = timed.ms - (Date.now() - timed.Date); 131 | time = moment.duration(timeexp).format(`D [${globallang['days']}], H [${globallang['hour']}], m [${globallang['min']}], s [${globallang['seconds']}]`); 132 | if(time.includes('-')) { 133 | süre = lang['aMinute'] 134 | } else { 135 | süre = time; 136 | } 137 | } else { 138 | if(findOne) { 139 | if(findOne.partner_durum == "DeAktif") { 140 | time = lang['info']['deactive']; 141 | } else { 142 | time = globallang['unlimited']; 143 | } 144 | } 145 | } 146 | const kurulumTamamlandi = new Discord.MessageEmbed() 147 | .setAuthor(message.guild.name, message.guild.iconURL({ dynamic: true })) 148 | .setColor("GREEN") 149 | .setDescription(`${lang['sonradanDuzenle'].replace(`{p}`, prefix)}`) 150 | .addField(`• :tools: **${lang['info']['staff']}** »`, `${partnerRole.first()}`, true) 151 | .addField(`• :recycle: **${lang['info']['status']}** »`, `\`${partnerDurum.first().content == lang['durumEvet'] ? lang['info']['active']: lang['info']['deactive']}\``, true) 152 | .addField(`ᅠ`, `ᅠ`, true) 153 | .addField(`• :hash: **${lang['info']['channel']}** »`, `${partnerChannel.first()}`, true) 154 | .addField(`• :hash: **${lang['info']['log']}** »`, `${partnerLogChannel.first()}`, true) 155 | .addField(`ᅠ`, `ᅠ`, true) 156 | .addField(`• :link: **${lang['info']['url']}** »`, `\`${url}\``, true) 157 | .addField(`• :timer: **${lang['info']['urlSüre']}** »`, `\`${süre || "∞"}\``, true) 158 | .addField(`ᅠ`, `ᅠ`, true) 159 | .addField(`• :pencil: **${lang['info']['text']}** »`, `[${lang['textFull']}](https://lightbot.me/dashboard/${message.guild.id}/partner)\n\`\`\`${partnerText.first().content.split('```').join('').slice(0, 497) + '...'}\`\`\``, true) 160 | msg.edit(`${lang['kurulumTamamlandi'].replace(`{author}`, message.author)}`, kurulumTamamlandi) 161 | 162 | }) 163 | }) 164 | }) 165 | }) 166 | }) 167 | }) 168 | }, 169 | config: { 170 | name: "kurulum", 171 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 172 | aliases: [], 173 | perms: ["MANAGE_GUILD"], 174 | enabled: true 175 | } 176 | }; 177 | function idCreate(length) { 178 | var result = ''; 179 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 180 | var charactersLength = characters.length; 181 | for ( var i = 0; i < length; i++ ) { 182 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 183 | } 184 | return result; 185 | } -------------------------------------------------------------------------------- /commands/partner-bul.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const partnerdata = require("../database/models/server.js"); 3 | 4 | module.exports = { 5 | run: async (client, message, args, db) => { 6 | const lang = client.locale(client[`serverData_${message.guild.id}`].language)['partner']['search'] 7 | partnerdata.find({}, function (err, docs) { 8 | const filteredGuilds = docs.filter(x => x.partner_durum === "Aktif") 9 | const generateEmbed = start => { 10 | 11 | let guilds = filteredGuilds 12 | .filter(x => x.premium_durum == 'Aktif') 13 | .concat( 14 | filteredGuilds.filter(x => x.premium_durum != 'Aktif') 15 | ); 16 | 17 | const current = guilds.slice(start, start + 5) 18 | let servers = ''; 19 | if(guilds.length <= 0) { 20 | servers = lang['serverNotFound'] 21 | } 22 | current.forEach(async g => { 23 | let guild = client.guilds.cache.get(g.guildID); 24 | let owner = client.users.cache.get(guild.ownerID); 25 | if(guilds.length > 0) return servers += ` 26 | > ${g.premium_durum == 'Aktif' ? '**[\\🗝️]** ' : ''} • [${guild.name}](https://lightpartner.xyz/dc) 27 | > **»** __Davet Kodu__**:** ${'``' + g.partner_inviteURL + '``'} 28 | > **»** __Sunucu Sahibi__**:** \`\`${owner ? owner.tag : 'undefined#0000'}\`\` 29 | > **»** __Kullanıcı Sayısı__**:** ${'``' + guild.memberCount + '``'} 30 | > **»** __Toplam Partnerlik__**:** ${'``' + g.partner_partnerCount + '``'} 31 | > **»** __Davet Bağlantısı__**:** **[lightpartner.xyz/i/${g.partner_inviteURL}](https://lightpartner.xyz/i/${g.partner_inviteURL})**\n\n`; 32 | }) 33 | const embed = new Discord.MessageEmbed() 34 | .setDescription(servers) 35 | .setColor("#F4F4F4") 36 | .setAuthor(lang['title'], client.user.avatarURL()) 37 | .setFooter(lang['footer'], message.author.avatarURL({dynamic: true})) 38 | .setTimestamp(); 39 | return embed; 40 | } 41 | 42 | const author = message.author 43 | 44 | message.channel.send(generateEmbed(0)).then(message => { 45 | if (filteredGuilds.length <= 5) return 46 | message.react('➡️') 47 | const collector = message.createReactionCollector( 48 | (reaction, user) => ['⬅️', '➡️'].includes(reaction.emoji.name) && user.id === author.id, 49 | {time: 60000} 50 | ) 51 | 52 | let currentIndex = 0 53 | collector.on('collect', reaction => { 54 | message.reactions.removeAll().then(async () => { 55 | reaction.emoji.name === '⬅️' ? currentIndex -= 5 : currentIndex += 5 56 | message.edit(generateEmbed(currentIndex)) 57 | if (currentIndex !== 0) await message.react('⬅️') 58 | if (currentIndex + 5 < filteredGuilds.length) message.react('➡️') 59 | }) 60 | }) 61 | }) 62 | }) 63 | 64 | 65 | async function getuser(id) { 66 | try { 67 | return await client.users.fetch(id); 68 | } catch { 69 | return undefined; 70 | } 71 | } 72 | 73 | 74 | }, 75 | config: { 76 | name: "partner-bul", 77 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 78 | aliases: ["find-partner"], 79 | perms: ["MANAGE_GUILD"], 80 | enabled: true 81 | } 82 | }; 83 | -------------------------------------------------------------------------------- /commands/partner.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const partnerdata = require("../database/models/server.js"); 3 | const botdata = require("../database/models/bot.js"); 4 | let database = require("../database/models/coin.js"); 5 | let gecmis = require("../database/models/coin-geçmişi.js"); 6 | let sdb = require("../database/models/url-süre.js") 7 | const { MessageButton } = require("discord-buttons"); 8 | module.exports = { 9 | run: async (client, message, args, db) => { 10 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['partner']; 11 | let glang = client.locale(client[`serverData_${message.guild.id}`].language)['quest']; 12 | let globallang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 13 | let findOne = await partnerdata.findOne({ guildID: message.guild.id }); 14 | let coinData = await database.findOne({ userID: message.author.id }); 15 | if (!args[0]) 16 | return message.channel.error(lang['invalidArgs[1]']); 17 | /*=======[ ÖZEL URL ]=======*/ 18 | if(args[0] == 'url'){ 19 | if(!findOne) return message.channel.error(lang['durumDeaktif']); 20 | if(findOne.partner_durum === "DeAktif") return message.channel.error(lang['durumDeaktif']); 21 | const url = args[1] 22 | if(!url) return message.channel.error(lang['url']['urlbelirt']); 23 | if(url.length > 32) return message.channel.error(lang['url']['maxerr']); 24 | if(url.length < 3) return message.channel.error(lang['url']['minerr']); 25 | if(/^[a-zA-Z]+$/.test(url) !== true) return message.channel.error(lang['url']['invalid']); 26 | if(coinData.amount < 60) return message.channel.error(lang['url']['yetersizBakiye']); 27 | let urldatabasefindOne = await partnerdata.findOne({ partner_inviteURL: url }); 28 | message.channel.areYouSure(lang['url']['quest'].replace("{url}", url)); 29 | message.channel 30 | .awaitMessages(m => m.author.id === message.author.id, { 31 | max: 1, 32 | time: 30000, 33 | errors: ["time"] 34 | }) 35 | .then(async message => { 36 | message = message.first(); 37 | if (message.content.toLowerCase() === glang['yes']) { 38 | if(!findOne.premium_davetkodu) { 39 | if(urldatabasefindOne) return message.channel.error(lang['url']['mevcut'].replace("{url}", url)); 40 | await sdb.findOneAndUpdate({guild: message.guild.id }, {$set: { Date: Date.now(), ms: 604800000 }}, { upsert: true }) 41 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_inviteURL: url }}, { upsert: true }) 42 | await database.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: -60}}) 43 | await gecmis.findOneAndUpdate({userID: message.author.id}, {$push: {gecmis: { count: -60, user: "Sistem", reason: "Özel URL", Date: Date.now() } }}, { upsert: true}); 44 | return message.channel.success(lang['url']['aldin'].replace("{miktar}", 60).replace("{url}", url).replace("{time}", "7 gün").replace("{url}", url)); 45 | } else { 46 | if(urldatabasefindOne) return message.channel.error(lang['url']['mevcut'].replace("{url}", url)); 47 | await sdb.findOneAndUpdate({guild: message.guild.id }, {$set: { Date: Date.now(), ms: 2629800000 }}, { upsert: true }) 48 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_inviteURL: url, premium_davetkodu: null }}, { upsert: true }) 49 | return message.channel.success(lang['url']['aldin'].replace("{miktar}", 0).replace("{url}", url).replace("{time}", "30 gün").replace("{url}", url)); 50 | } 51 | 52 | } else if (message.content.toLowerCase() === glang['no']) { 53 | message.channel.success(glang['commandCanceled']) 54 | } 55 | 56 | }) 57 | } 58 | 59 | /*=======[ ÖZEL URL ]=======*/ 60 | 61 | /*=======[ SORUMLU ]=======*/ 62 | if (args[0] === lang['args']['authorizationRole']) { 63 | 64 | if (!args[1]) 65 | return message.channel.error(lang['invalidArgs[2]']); 66 | if (args[1] === lang['args']['set']) { 67 | let rol = message.mentions.roles.first(); 68 | if (!rol) 69 | return message.channel.error(lang['tagRole']); 70 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_sorumlu: rol.id }}, { upsert: true }) 71 | message.channel.success(lang['staffRoleSaved']); 72 | } else if (args[1] === lang['args']['reset']) { 73 | if (findOne.partner_durum === "Aktif") return message.channel.error(lang['statusActiveNotChange']); 74 | if (!findOne.partner_sorumlu) 75 | return message.channel.error(lang['staffRoleError[1]']); 76 | message.channel.areYouSure(lang['staffRoleQuest[1]']); 77 | message.channel 78 | .awaitMessages(m => m.author.id === message.author.id, { 79 | max: 1, 80 | time: 30000, 81 | errors: ["time"] 82 | }) 83 | .then(async message => { 84 | message = message.first(); 85 | if (message.content.toLowerCase() === glang['yes']) { 86 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_sorumlu: null }}, { upsert: true }) 87 | return message.channel.success(lang['staffRoleReseted']); 88 | } else if (message.content.toLowerCase() === glang['no']) { 89 | return message.channel.error(glang['commandCanceled']); 90 | } 91 | }) 92 | .catch(collected => { 93 | message.channel.error(glang['timeout']); 94 | }); 95 | } 96 | } 97 | 98 | /*=======[ TEXT ]=======*/ 99 | if (args[0] === "text") { 100 | if (!args[1]) 101 | return message.channel.error(lang['invalidArgs[3]']); 102 | if (args[1] === lang['args']['set']) { 103 | let yazi = args.slice(2).join(" "); 104 | if (!yazi) return message.channel.error(lang['writeText']); 105 | if (yazi.length < 1 || yazi.length > 1950) return message.channel.error(lang['limited']); 106 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_text: yazi }}, { upsert: true }) 107 | message.channel.success(lang['textChanged'].replace(`{text}`, yazi)); 108 | } else if (args[1] === lang['args']['reset']) { 109 | if (findOne.partner_durum === "Aktif") return message.channel.error(lang['statusActiveNotChange']); 110 | if (!findOne.partner_text) 111 | return message.channel.error(lang['textDeActive']); 112 | message.channel.areYouSure(lang['partnerTextQuest']); 113 | message.channel 114 | .awaitMessages(m => m.author.id === message.author.id, { 115 | max: 1, 116 | time: 30000, 117 | errors: ["time"] 118 | }) 119 | .then(async message => { 120 | message = message.first(); 121 | if (message.content.toLowerCase() === glang['yes']) { 122 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_text: null }}, { upsert: true }) 123 | return message.channel.success(lang['successReset']); 124 | } else if (message.content.toLowerCase() === glang['no']) { 125 | return message.channel.error(glang['commandCanceled']); 126 | } 127 | }) 128 | .catch(collected => { 129 | message.channel.error(glang['timeout']); 130 | }); 131 | } 132 | } 133 | 134 | /*=======[ DURUM ]=======*/ 135 | if (args[0] === lang['args']['status']) { 136 | if (!args[1]) 137 | return message.channel.error(lang['invalidArgs[4]']); 138 | if (args[1] === lang['args']['open']) { 139 | if(!findOne) return message.channel.error(lang['textWrite']); 140 | let sorumlu = findOne.partner_sorumlu 141 | let text = findOne.partner_text 142 | let kanal = findOne.partner_kanal 143 | let log = findOne.partner_log 144 | if(!text || !kanal || !log || !sorumlu) return message.channel.error(lang['textWrite']); 145 | if (findOne.partner_durum === "Aktif") return message.channel.error(lang['statusAlreadyActive']); 146 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_inviteURL: idCreate(5), partner_durum: "Aktif" }}, { upsert: true }) 147 | return message.channel.success(lang['statusActive']); 148 | } else if (args[1] === lang['args']['close']) { 149 | if (findOne.partner_durum === "DeAktif") 150 | return message.channel.error(lang['statusAlreadyDeActive']); 151 | message.channel.areYouSure(lang['statusQuest']); 152 | message.channel 153 | .awaitMessages(m => m.author.id === message.author.id, { 154 | max: 1, 155 | time: 30000, 156 | errors: ["time"] 157 | }) 158 | .then(async message => { 159 | message = message.first(); 160 | if (message.content.toLowerCase() === glang['yes']) { 161 | await sdb.updateOne({ guild: message.guild.id }, {$set: { ms: 999999 }}, { upsert: true }); 162 | await sdb.deleteOne({ guild: message.guild.id }); 163 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_durum: "DeAktif", partner_inviteURL: null }}, { upsert: true }); 164 | return message.channel.success(lang['partnerReseted']); 165 | } else if (message.content.toLowerCase() === glang['no'] || message.content.toLowerCase() != glang['yes'] && message.content.toLowerCase() != glang['no']) { 166 | return message.channel.error(glang['commandCanceled']); 167 | } 168 | }) 169 | .catch(collected => { 170 | message.channel.error(glang['timeout']); 171 | }); 172 | } 173 | } 174 | /*=======[ KANALLAR ]=======*/ 175 | if (args[0] === lang['args']['channel']) { 176 | if (!args[1]) 177 | return message.channel.error(lang['invalidArgs[5]']); 178 | if (args[1] === "partner") { 179 | let kanal = message.mentions.channels.first(); 180 | if (!kanal) 181 | return message.channel.error(lang['notTaggedChannel']); 182 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_kanal: kanal.id }}, { upsert: true }) 183 | message.channel.success(lang['channelChanged[1]'].replace("{kanal}", kanal.id)); 184 | } else if (args[1] === "log") { 185 | let kanal = message.mentions.channels.first(); 186 | if (!kanal) 187 | return message.channel.error(lang['notTaggedChannel']); 188 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_log: kanal.id }}, { upsert: true }) 189 | message.channel.success(lang['channelChanged[2]'].replace("{kanal}", kanal.id)); 190 | } 191 | } 192 | 193 | /*=======[ SIFIRLA ]=======*/ 194 | if (args[0] === lang['args']['reset']) { 195 | if (findOne.partner_durum === "Aktif") return message.channel.error(lang['statusActiveNotChange']); 196 | message.channel.areYouSure(lang['resetAll?']); 197 | message.channel 198 | .awaitMessages(m => m.author.id === message.author.id, { 199 | max: 1, 200 | time: 30000, 201 | errors: ["time"] 202 | }) 203 | .then(async message => { 204 | message = message.first(); 205 | if (message.content.toLowerCase() === glang['yes']) { 206 | await sdb.updateOne({ guild: message.guild.id }, {$set: { ms: 999999 }}, { upsert: true }); 207 | await sdb.deleteOne({ guild: message.guild.id }); 208 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { 209 | partner_durum: "DeAktif", 210 | partner_sorumlu: null, 211 | partner_text: null, 212 | partner_kanal: null, 213 | partner_log: null, 214 | partner_inviteURL: null 215 | }}, { upsert: true }) 216 | return message.channel.success(lang['datasDeleted']); 217 | } else if (message.content.toLowerCase() === glang['no']) { 218 | return message.channel.error(glang['comamndCanceled']); 219 | } 220 | }) 221 | .catch(collected => { 222 | message.channel.error(glang['timeout']); 223 | }); 224 | } 225 | 226 | /*=======[ BILGI ]=======*/ 227 | if (args[0] === lang['args']['info']) { 228 | const embed = new Discord.MessageEmbed().setColor("#F4F4F4"); 229 | let sorumlu = findOne ? (findOne.partner_sorumlu ? "<@&" + findOne.partner_sorumlu + ">" : lang['info']['notFound']) : lang['info']['notFound']; 230 | let durum = ""; 231 | if(findOne) { 232 | if(findOne.partner_durum === "DeAktif") durum = lang['info']['deactive']; 233 | if(findOne.partner_durum === "Aktif") durum = lang['info']['active']; 234 | } else { 235 | durum = lang['info']['deactive'] 236 | } 237 | let log = findOne ? (findOne.partner_log ? "<#" + findOne.partner_log + ">" : lang['info']['notFound']) : lang['info']['notFound']; 238 | let kanal = findOne ? (findOne.partner_kanal ? "<#" + findOne.partner_kanal + ">" : lang['info']['notFound']) : lang['info']['notFound']; 239 | let text = findOne ? (findOne.partner_text ? "```" + findOne.partner_text + "```" : lang['info']['notFound']) : lang['info']['notFound']; 240 | let url = findOne ? (findOne.partner_durum == "Aktif" ? findOne.partner_inviteURL : lang['info']['deactive']) : lang['info']['deactive'];; 241 | let timeData = require("../database/models/url-süre.js"); 242 | let timed = await timeData.findOne({ guild: message.guild.id }) 243 | const moment = require("moment"); 244 | require('moment-duration-format') 245 | let timeexp = ''; 246 | let time = ''; 247 | let süre = ''; 248 | if(timed) { 249 | timeexp = timed.ms - (Date.now() - timed.Date); 250 | time = moment.duration(timeexp).format(`D [${globallang['days']}], H [${globallang['hour']}], m [${globallang['min']}], s [${globallang['seconds']}]`); 251 | if(time.includes('-')) { 252 | süre = lang['aMinute'] 253 | } else { 254 | süre = time; 255 | } 256 | } else { 257 | if(findOne) { 258 | if(findOne.partner_durum == "DeAktif") { 259 | time = lang['info']['deactive']; 260 | } else { 261 | time = globallang['unlimited']; 262 | } 263 | } 264 | } 265 | 266 | embed.setDescription(` 267 | • :tools: **${lang['info']['staff']}** » ${sorumlu} 268 | • :recycle: **${lang['info']['status']}** » \`${durum}\` 269 | • :hash: **${lang['info']['channel']}** » ${kanal} 270 | • :hash: **${lang['info']['log']}** » ${log} 271 | • :link: **${lang['info']['url']}** » \`${url}\` 272 | • :timer: **${lang['info']['urlSüre']}** » \`${süre || '∞'}\` 273 | • :pencil: **${lang['info']['text']}** » [Yazının tam hali için tıkla!](https://lightbot.me/dashboard/${message.guild.id}/partner) 274 | \`\`\`${text.split('```').join('').slice(0, 497) + '...'}\`\`\` 275 | `); 276 | embed.setAuthor(message.guild.name); 277 | message.channel.send(embed); 278 | } 279 | /*=======[ ŞART ]=======*/ 280 | if(args[0] === lang['args']['partnerLimit']) { 281 | if(!args[1]) return message.channel.error(lang['invalidArgs[7]']); 282 | if(args[1] === lang['args']['open']) { 283 | let sart = args[2]; 284 | if(isNaN(sart)) return message.channel.error(lang['gecersizSart']); 285 | if(sart > message.guild.memberCount) return message.channel.error(lang['fazlaRakam']); 286 | await partnerdata.findOneAndUpdate({guildID: findOne.guildID }, {$set: { partner_sart: sart }}, { upsert: true }) 287 | message.channel.success(lang['sartAyarlandi'].replace("{limit}", sart)) 288 | } else if(args[1] === lang['args']['close']) { 289 | if(!findOne) return message.channel.error(lang['sartKapali']); 290 | if(!findOne.partner_sart) return message.channel.error(lang['sartKapali']); 291 | message.channel.areYouSure(lang['sartSoru']); 292 | message.channel 293 | .awaitMessages(m => m.author.id === message.author.id, { 294 | max: 1, 295 | time: 30000, 296 | errors: ["time"] 297 | }) 298 | .then(async message => { 299 | message = message.first(); 300 | if (message.content.toLowerCase() === glang['yes']) { 301 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { partner_sart: null }}, { upsert: true }); 302 | return message.channel.success(lang['sartKapandi']); 303 | } else if (message.content.toLowerCase() === glang['no'] || message.content.toLowerCase() != glang['yes'] && message.content.toLowerCase() != glang['no']) { 304 | return message.channel.error(glang['commandCanceled']); 305 | } 306 | }) 307 | .catch(collected => { 308 | message.channel.error(glang['timeout']); 309 | }); 310 | } 311 | } 312 | /*=======[ OL ]=======*/ 313 | if(args[0] === lang['args']['postPartner']) { 314 | if(!findOne) return message.channel.error(lang['durumDeaktif']); 315 | if(findOne.partner_durum === "DeAktif") return message.channel.error(lang['durumDeaktif']); 316 | if(!findOne.partner_inviteURL) return message.channel.error(lang['durumDeaktif']); 317 | let kod = args[1] 318 | if(!kod) return message.channel.error(lang['invalidArgs[6]'].replace("{prefix}", client.prefix)); 319 | let partnerbul = await partnerdata.findOne({ partner_inviteURL: kod }) 320 | if(!partnerbul) return message.channel.error(lang['partnerurlyanlis']); 321 | if(message.guild.id === partnerbul.guildID) return message.channel.error(lang['thisYourServer']); 322 | if(message.guild.memberCount < partnerbul.partner_sart) return message.channel.error(lang['yetersizLimit'].replace("{limit}", partnerbul.partner_sart)); 323 | client.users.fetch(message.guild.ownerID).then(async a => { 324 | const moment = require('moment'); 325 | moment.locale('TR'); 326 | let tarih = moment(message.guild.createdAt).format('LLL') 327 | let postPartner = require("../database/models/partner-ol.js") 328 | let postedPartner = await postPartner.findOne({ karsiSunucu: partnerbul.guildID, guildID: message.guild.id }) 329 | if(postedPartner) return message.channel.error(lang['partnerGonderilmis']); 330 | const kabul = new MessageButton() 331 | .setStyle('green') 332 | .setLabel('Onayla') 333 | .setID('kabul'); 334 | const red = new MessageButton() 335 | .setStyle('red') 336 | .setLabel('Reddet') 337 | .setID('red'); 338 | const partneredEmbed = new Discord.MessageEmbed() 339 | .setColor("#F4F4F4") 340 | .setAuthor(message.guild.name, message.guild.iconURL({dynamic: true})) 341 | .setDescription(lang['partnerMesaj'] 342 | .replace("{sunucuAdi}", message.guild.name) 343 | .replace("{memberCount}", message.guild.memberCount) 344 | .replace("{sahip}", a.tag) 345 | .replace("{yetkili}", message.author.tag) 346 | .replace("{opendate}", tarih) 347 | .replace("{partnerCount}", findOne.partner_partnerCount || "0") 348 | .replace("{inviteCode}", findOne.partner_inviteURL) 349 | .replace("{inviteCode}", findOne.partner_inviteURL) 350 | .replace("{inviteCode}", findOne.partner_inviteURL) 351 | ); 352 | client.channels.cache.get(partnerbul.partner_log).send(`<@&${partnerbul.partner_sorumlu}>`, { embed: partneredEmbed, buttons: [ kabul, red] }).then(async msg => { 353 | await postPartner.updateOne({ guildID: message.guild.id }, {$set: { message: msg.id, karsiSunucu: partnerbul.guildID, guildID: message.guild.id, author: message.author.id }}, { upsert: true }) 354 | message.channel.success(lang['partnerGönderildi']) 355 | }) 356 | }) 357 | } 358 | }, 359 | config: { 360 | name: "partner", 361 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 362 | aliases: [], 363 | perms: ["MANAGE_GUILD"], 364 | enabled: true 365 | } 366 | }; 367 | function idCreate(length) { 368 | var result = ''; 369 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 370 | var charactersLength = characters.length; 371 | for ( var i = 0; i < length; i++ ) { 372 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 373 | } 374 | return result; 375 | } -------------------------------------------------------------------------------- /commands/pay.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | let database = require("../database/models/coin.js"); 3 | let gecmis = require("../database/models/coin-geçmişi.js"); 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['coin']; 7 | let user = message.mentions.users.first(); 8 | if(!user) return message.channel.error(lang['üyebelirt']) 9 | if(isNaN(args[1])) return message.channel.error(lang['gönderilecek']) 10 | let gönderilcek = parseInt(args[1]); 11 | let yasaklar = ["-","+","*","/",".","%"] 12 | if(yasaklar.some(a => message.content.includes(a))) return message.channel.error(lang['gönderilecek']); 13 | if(user.id === message.author.id) return message.channel.error(lang['authorerr']) 14 | if(user.bot) return message.channel.error(lang['boterr']) 15 | let a = await database.findOne({ userID: message.author.id }) 16 | let kullanicimoney = a.amount || 0; 17 | if (kullanicimoney < gönderilcek) return message.channel.error(lang['sendeyok'].replace("{gönderilcek}", gönderilcek)); 18 | if (gönderilcek > 9999) return message.channel.error(lang['limit']); 19 | 20 | await database.findOneAndUpdate({userID: user.id }, {$inc: {amount: gönderilcek}}, { upsert: true }) 21 | await database.findOneAndUpdate({userID: message.author.id }, {$inc: {amount: -gönderilcek}}) 22 | await gecmis.findOneAndUpdate({userID: user.id }, {$push: {gecmis: { count: gönderilcek, user: message.author.tag, reason: 'Transfer', Date: Date.now() } }}); 23 | await gecmis.findOneAndUpdate({userID: message.author.id }, {$push: {gecmis: { count: -gönderilcek, user: user.tag, reason: 'Transfer', Date: Date.now() } }}); 24 | 25 | 26 | return message.channel.success(lang['gönderdi'].replace("{gönderilcek}", gönderilcek).replace("{user}", user)) 27 | }, 28 | config: { 29 | name: "pay", 30 | aliases: ["share"], 31 | desc: '{ "tr-TR": "açıklama", "en-GB": "description" }', 32 | perms: [], 33 | enabled: true 34 | } 35 | }; 36 | -------------------------------------------------------------------------------- /commands/ping.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | run: async (client, message, args, db) => { 3 | 4 | message.channel.send(':ping_pong: Pong...').then(msg => { 5 | msg.edit(`:ping_pong: Pong...\n> ${client.ws.ping}ms`) 6 | }) 7 | 8 | }, 9 | config: { 10 | name: "ping", 11 | aliases: [], 12 | desc: "", 13 | perms: [], 14 | enabled: true 15 | } 16 | }; 17 | -------------------------------------------------------------------------------- /commands/premium.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const moment = require('moment'); 3 | const premiumdata = require("../database/models/pre.js"); 4 | const preserver = require("../database/models/pre-activation.js"); 5 | const partnerdata = require("../database/models/server.js"); 6 | const coin = require("../database/models/coin.js"); 7 | let gecmis = require("../database/models/coin-geçmişi.js"); 8 | const config = require("../config.js") 9 | module.exports = { 10 | run: async (client, message, args) => { 11 | if(!args[0]) return message.channel.error("Bir argüman girmelisin.\nArgümanlar; `sunucu`, `kullanıcı`"); 12 | let ay = 2629800000; 13 | 14 | 15 | if(args[0] === "kullanıcı") { 16 | if (!config.developers.includes(message.author.id)) return; 17 | if(args[1] === "ekle") { 18 | let user = args[2]; 19 | if(!user) return message.channel.error("Bir kullanıcı id'si girmelisin."); 20 | client.users.fetch(user).then(async u => { 21 | if(u.bot) return message.channel.error("Bir bota premium veremezsin."); 22 | await premiumdata.updateOne({ user: u.id }, {$set: {Date: Date.now(), ms: ay}}, { upsert: true }) 23 | let guild = client.guilds.cache.get("773128369138958366").members.cache.get(u.id); 24 | if(guild) { 25 | client.guilds.cache.get("773128369138958366").members.cache.get(u.id).roles.add("845445341994418226") 26 | } 27 | await coin.findOneAndUpdate({userID: u.id }, {$inc: {amount: 150 }}, { upsert: true }) 28 | await gecmis.findOneAndUpdate({userID: u.id}, {$push: {gecmis: { count: 150, user: '{system}', reason: 'Premium', Date: Date.now() } }}, { upsert: true}); 29 | message.channel.embed(`Premium başarıyla aktifleştirildi.\n\n**Kullanıcı**: ${u.tag}\n**Süresi**: 1 Ay\n**Yetkili**: ${message.author.tag}`, { color: "GREEN", author: ["✅ Mükemmel!", client.user.avatarURL() ], footer: [ u.tag, u.avatarURL({dynamic: true})]}) 30 | }) 31 | } else if(args[1] === "sil") { 32 | let user = args[2]; 33 | if(!user) return message.channel.error("Bir kullanıcı id'si girmelisin."); 34 | client.users.fetch(user).then(async u => { 35 | if(u.bot) return message.channel.error("Bir botdan premium alamazsın."); 36 | let pdata = await premiumdata.findOne({ user: u.id }); 37 | if(!pdata) return message.channel.error("Bu kullanıcıda premium bulunmuyor."); 38 | await premiumdata.deleteOne({ user: u.id }) 39 | message.channel.embed(`Premium başarıyla silindi.\n\n**Kullanıcı**: ${u.tag}\n**Yetkili**: ${message.author.tag}`, { color: "GREEN", author: ["✅ Mükemmel!", client.user.avatarURL() ], footer: [ u.tag, u.avatarURL({dynamic: true})]}) 40 | }) 41 | } 42 | } 43 | 44 | if(args[0] === "sunucu") { 45 | if (!config.developers.includes(message.author.id)) return; 46 | if(args[1] === "kod") { 47 | if(args[2] === "oluştur") { 48 | let activation = 'LP-' + idCreate(7) + '-' + idCreate(7) + '-' + idCreate(7); 49 | message.channel.success(`Kod başarıyla oluşturuldu.\nAktivasyon Kodu; \`${activation}\``); 50 | 51 | const moment = require('moment'); 52 | require('moment-duration-format'); 53 | 54 | await preserver.updateOne({ kod: activation }, {$set: { 55 | creator: message.author.tag, 56 | date: moment(Date.now()).format('HH:mm DD.MM.YYYY') 57 | }}, { upsert: true }); 58 | } else if(args[2] === "liste") { 59 | let database = await preserver.find(); 60 | let texts = ''; 61 | let creators = ''; 62 | let dates = ''; 63 | if(database.length <= 0) return message.channel.error("Sistemde premium aktivasyon kodu bulunamadı."); 64 | await database.map(a => { 65 | texts += ' > ``' + a.kod + '``\n '; 66 | creators += ' > ``' + a.creator + '``\n '; 67 | dates += ' > ``' + a.date + '``\n '; 68 | }) 69 | 70 | message.channel.send( 71 | new Discord.MessageEmbed().setTitle("Sunucu Premium Aktivasyon Kodları") 72 | .setColor("#F4F4F4") 73 | .addField('Aktivasyon Kodu', texts, true) 74 | .addField('Yetkili', creators, true) 75 | .addField('Oluşturulma Tarihi', dates, true) 76 | ); 77 | } else if(args[2] === "sil") { 78 | let kodd = args[3]; 79 | if(!kodd) return message.channel.error("Bir kod girmelisin."); 80 | let a = await preserver.findOne({ kod: kodd }); 81 | if(!a) return message.channel.error("Geçersiz bir kod girdiniz."); 82 | message.channel.areYouSure(`**${a.kod}** kodunu silmek istediğinizden emin misiniz? \`(evet/hayır)\`\n> Oluşturma Tarihi: ${a.date}\n> Yetkili: ${a.creator}`) 83 | message.channel 84 | .awaitMessages(m => m.author.id === message.author.id, { 85 | max: 1, 86 | time: 30000, 87 | errors: ["time"] 88 | }) 89 | .then(async message => { 90 | message = message.first(); 91 | if (message.content.toLowerCase() === "evet") { 92 | await preserver.deleteOne({ kod: kodd }); 93 | return message.channel.success("Kod başarıyla silindi."); 94 | } else if (message.content.toLowerCase() === "hayır") { 95 | return message.channel.error("Kod silme işlemi iptal edildi."); 96 | } 97 | }) 98 | .catch(collected => { 99 | message.channel.error("İşlem zaman aşımına uğradı."); 100 | }); 101 | } 102 | } 103 | } 104 | 105 | if(args[0] === "kullan") { 106 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['premium']; 107 | let kodd = args[1]; 108 | if(!kodd) return message.channel.error(lang['writeCode']); 109 | let a = await preserver.findOne({ kod: kodd }); 110 | if(!a) return message.channel.error(lang['invalidCode']); 111 | client.users.fetch(message.guild.ownerID).then(async u => { 112 | message.channel.success(lang['premiumActive'] 113 | .replace("{serverName}", message.guild.name) 114 | .replace("{serverID}", message.guild.id) 115 | .replace("{ownerName}", u.tag) 116 | ); 117 | await partnerdata.updateOne({ guildID: message.guild.id }, {$set: { premium_davetkodu: "Aktif", premium_durum: "Aktif", premium_Date: Date.now(), premium_ms: ay }}, { upsert: true }) 118 | await premiumdata.updateOne({ user: u.id }, {$set: {Date: Date.now(), ms: ay}}, { upsert: true }) 119 | let guild = client.guilds.cache.get("773128369138958366").members.cache.get(u.id); 120 | if(guild) { 121 | client.guilds.cache.get("773128369138958366").members.cache.get(u.id).roles.add("845445341994418226") 122 | } 123 | await preserver.deleteOne({ kod: kodd }); 124 | await coin.findOneAndUpdate({userID: u.id }, {$inc: {amount: 150 }}, { upsert: true }) 125 | await gecmis.findOneAndUpdate({userID: u.id}, {$push: {gecmis: { count: 150, user: '{system}', reason: 'Premium', Date: Date.now() } }}, { upsert: true}); 126 | }) 127 | 128 | 129 | } 130 | 131 | 132 | 133 | }, 134 | config: { 135 | name: 'premium', 136 | aliases: [], 137 | desc: '', 138 | perms: [], 139 | enabled: true 140 | } 141 | }; 142 | 143 | function idCreate(length) { 144 | var result = ''; 145 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789?/#%'; 146 | var charactersLength = characters.length; 147 | for ( var i = 0; i < length; i++ ) { 148 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 149 | } 150 | return result; 151 | } -------------------------------------------------------------------------------- /commands/snake.js: -------------------------------------------------------------------------------- 1 | const { MessageEmbed } = require('discord.js'); 2 | let database = require("../database/models/coin.js"); 3 | const moment = require('moment'); 4 | require('moment-duration-format'); 5 | 6 | module.exports = { 7 | run: async (client, message, args) => { 8 | message.channel.send( 9 | new MessageEmbed() 10 | .setColor('GREEN') 11 | .setTitle('🐍 Yılan Oyunu') 12 | .setDescription('> *Oynamak için 150 coin gereklidir yılanın uzunluğu 10\'u geçerse 200 coin kazanırsınız. Elmalar rastgele spawn olmaktadır, elma oluşmazsa bir sonraki hareketinizde oluşacaktır.* \n\n> **Oynamak için "evet" yazınız!**') 13 | ); 14 | 15 | message.channel.awaitMessages(m => m.author.id === message.author.id, { 16 | max: 1, 17 | time: 30000, 18 | errors: ["time"] 19 | }).then(async sureMsg => { 20 | let msg = sureMsg.first(); 21 | if (msg.content.toLowerCase() === 'evet') { 22 | let checkAgain = await database.findOne({ userID: message.author.id }); 23 | if (!checkAgain || checkAgain.amount < 150) return message.channel.error('Yılan oyunu oynamak için **150** coin gereklidir!'); 24 | await database.findOneAndUpdate({ userID: message.author.id }, {$inc: { amount: -150 }}, { upsert: true }); 25 | 26 | const blocks = { 27 | "wall": "🟦", 28 | "blank": "⬛", 29 | "body": "🟨", 30 | "live": "😳", 31 | "dead": "😵", 32 | "apple": "🍎" 33 | }; 34 | 35 | const tiles = [ 36 | "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", 37 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 38 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 39 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 40 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 41 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 42 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 43 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 44 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 45 | "🟦", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "⬛", "🟦", 46 | "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦", "🟦" 47 | ]; 48 | 49 | const settings = { 50 | "reward": 200, 51 | "width": 11, 52 | "requiredLength": 10 53 | }; 54 | 55 | let snake = [ { val: blocks.live, key: 60 } ]; 56 | let posibleApples = []; 57 | let score = snake.length; 58 | let route = []; 59 | let apple; 60 | 61 | function GameZone(kill, reason) { 62 | let embed = new MessageEmbed() 63 | .setColor('BLURPLE'); 64 | 65 | if (!kill) { 66 | embed 67 | .setAuthor('🐍 Uzunluk: ' + snake.length + ' | 💰 Ödül: ' + (snake.length >= settings.requiredLength ? settings.reward : 0) + ' Coin') 68 | .setFooter('🎮 Oyuncu: ' + message.author.tag); 69 | } else { 70 | embed 71 | .setTitle((reason !== 'Hasar' ? '❌ Pes ettin' : '💥 Hasar aldın') + '! | 🐍 Uzunluk: ' + snake.length + ' | 💰 Ödül: ' + (snake.length >= settings.requiredLength ? settings.reward : 0) + ' Coin') 72 | }; 73 | 74 | snake.forEach(part => { 75 | tiles[part.key] = part.val; 76 | }); 77 | 78 | posibleApples = []; 79 | tiles.forEach((tile, index) => { 80 | if (tile === blocks.blank) posibleApples.push(index); 81 | }); 82 | 83 | if (!tiles.find(tile => tile === blocks.apple) || snake.some(part => part.key == apple)) { 84 | let generateApple = posibleApples[Math.floor(Math.random() * posibleApples.length)]; 85 | tiles[generateApple] = blocks.apple; 86 | apple = generateApple; 87 | }; 88 | 89 | return embed.setDescription(tiles.map((tile, index) => { 90 | return tile + ((index + 1) % parseInt(settings.width) == 0 ? '\n' : ''); 91 | }).join('')); 92 | }; 93 | 94 | async function moveSnake(msg, to) { 95 | const sizes = { 96 | up: [ parseInt(settings.width) ], 97 | down: [ parseInt('-' + settings.width) ], 98 | left: [ 1 ], 99 | right: [ -1 ] 100 | }; 101 | 102 | const key = snake 103 | .find(part => part.val === blocks.live) 104 | .key; 105 | 106 | if (key) { 107 | if ([ blocks.body, blocks.wall ].includes(tiles[key - sizes[to][0]])) { 108 | snake[0].val = blocks.dead; 109 | msg.reactions.removeAll(); 110 | 111 | if (snake.length >= settings.requiredLength) { 112 | await database.findOneAndUpdate({ userID: message.author.id }, {$inc: { amount: 200 }}, { upsert: true }); 113 | }; 114 | 115 | msg.edit({ 116 | embed: GameZone(true, 'Hasar') 117 | }); 118 | } else { 119 | route = [key - sizes[to][0], ...route]; 120 | if (tiles[key - sizes[to][0]] === blocks.apple) snake.push({ val: blocks.body, key: key }); 121 | 122 | snake.forEach((part, index) => { 123 | tiles[snake[index].key] = blocks.blank; 124 | snake[index].key = route[index]; 125 | }); 126 | 127 | msg.edit({ 128 | embed: GameZone() 129 | }); 130 | }; 131 | }; 132 | }; 133 | 134 | message.channel.send( 135 | new MessageEmbed() 136 | .setColor('BLURPLE') 137 | .setDescription('❗ **|** Yükleniyor**,** lütfen bekleyin**...**') 138 | ).then(msg => { 139 | msg.react('🔼').then(r => { 140 | let filter = (reaction, reactedBy) => reaction.emoji.name == '🔼' && reactedBy.id === message.author.id; 141 | let collector = msg.createReactionCollector(filter); 142 | 143 | collector.on('collect', async reaction => { 144 | r.users.remove(message.author.id); 145 | moveSnake(msg, 'up'); 146 | }); 147 | }); 148 | 149 | msg.react('🔽').then(r => { 150 | let filter = (reaction, reactedBy) => reaction.emoji.name == '🔽' && reactedBy.id === message.author.id; 151 | let collector = msg.createReactionCollector(filter); 152 | 153 | collector.on('collect', async reaction => { 154 | r.users.remove(message.author.id); 155 | moveSnake(msg, 'down'); 156 | }); 157 | }); 158 | 159 | msg.react('◀️').then(r => { 160 | let filter = (reaction, reactedBy) => reaction.emoji.name == '◀️' && reactedBy.id === message.author.id; 161 | let collector = msg.createReactionCollector(filter); 162 | 163 | collector.on('collect', async reaction => { 164 | r.users.remove(message.author.id); 165 | moveSnake(msg, 'left'); 166 | }); 167 | }); 168 | 169 | msg.react('▶️').then(r => { 170 | let filter = (reaction, reactedBy) => reaction.emoji.name == '▶️' && reactedBy.id === message.author.id; 171 | let collector = msg.createReactionCollector(filter); 172 | 173 | collector.on('collect', async reaction => { 174 | r.users.remove(message.author.id); 175 | moveSnake(msg, 'right'); 176 | }); 177 | }); 178 | 179 | msg.react('🔁').then(r => { 180 | msg.edit({ embed: GameZone() }); 181 | let filter = (reaction, reactedBy) => reaction.emoji.name == '🔁' && reactedBy.id === message.author.id; 182 | let collector = msg.createReactionCollector(filter); 183 | 184 | collector.on('collect', async reaction => { 185 | if (snake.length >= settings.requiredLength) { 186 | await database.findOneAndUpdate({ userID: message.author.id }, {$inc: { amount: 200 }}, { upsert: true }); 187 | }; 188 | 189 | msg.reactions.removeAll(); 190 | msg.edit({ embed: GameZone(true, 'Yeniden Başlatma') }); 191 | }); 192 | }); 193 | }); 194 | }; 195 | }); 196 | }, 197 | config: { 198 | name: 'snake', 199 | aliases: ['yılan'], 200 | desc: 'Yılan Oyunu', 201 | perms: [], 202 | enabled: true 203 | } 204 | }; -------------------------------------------------------------------------------- /commands/sunucubilgi.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const moment = require('moment'); 3 | const partnerdata = require("../database/models/server.js"); 4 | module.exports = { 5 | run: async (client, message, args) => { 6 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['sunucub']; 7 | let globallang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 8 | let findOne = await partnerdata.findOne({ guildID: message.guild.id }); 9 | let predurum = ''; 10 | let presüre = ''; 11 | if(findOne) { 12 | if(findOne.premium_durum == "Aktif") { 13 | let süre = findOne.premium_ms - (Date.now() - findOne.premium_Date); 14 | predurum = lang['active']; 15 | presüre = moment.duration(süre).format(`D [${globallang['days']}], H [${globallang['hour']}], m [${globallang['min']}], s [${globallang['seconds']}]`); 16 | } else { 17 | predurum = lang['deactive']; 18 | presüre = lang['deactive']; 19 | } 20 | } else { 21 | predurum = lang['deactive']; 22 | presüre = lang['deactive']; 23 | } 24 | let tarihler = { 25 | "01": globallang['aylar']['ocak'], 26 | "02": globallang['aylar']['subat'], 27 | "03": globallang['aylar']['mart'], 28 | "04": globallang['aylar']['nisan'], 29 | "05": globallang['aylar']['mayis'], 30 | "06": globallang['aylar']['haziran'], 31 | "07": globallang['aylar']['temmuz'], 32 | "08": globallang['aylar']['agustos'], 33 | "09": globallang['aylar']['eylül'], 34 | "10": globallang['aylar']['ekim'], 35 | "11": globallang['aylar']['kasim'], 36 | "12": globallang['aylar']['aralik'] 37 | } 38 | const embed = new Discord.MessageEmbed() 39 | .setColor('#F4F4F4') 40 | .setTitle(`${message.guild.name} (${message.guild.id})`) 41 | .setThumbnail(message.guild.iconURL({ dynamic: true })); 42 | embed.addField(`» ${lang['swadı']}`,`${message.guild.name}`) 43 | embed.addField(`» ${lang['swsahib']}`, message.guild.owner ? (message.guild.owner.user ? message.guild.owner.user.tag : 'Bilinmiyor') : 'Bilinmiyor') 44 | embed.addField(`:diamond_shape_with_a_dot_inside: ${lang['premium']}`, "`"+predurum+"`", true) 45 | if(findOne) { 46 | if(findOne.premium_durum == "Aktif") { 47 | embed.addField(`:timer: ${lang['presüre']}`, presüre, true) 48 | embed.addField(`ᅠ`, `ᅠ`, true) 49 | } 50 | } 51 | embed.addField(`» ${lang['swüye']} [${message.guild.memberCount}]: `, `:bust_in_silhouette: ${message.guild.memberCount - message.guild.members.cache.filter(a => a.user.bot).size} | :robot: ${message.guild.members.cache.filter(m => m.user.bot).size}`) 52 | embed.addField(`» ${lang['kanal']} [${message.guild.channels.cache.size}]`,`:sound: ${message.guild.channels.cache.filter(chan => chan.type === 'voice').size} | :speech_balloon: ${message.guild.channels.cache.filter(chan => chan.type === 'text').size}`) 53 | embed.addField(`» ${lang['ektahrih']}`,`${moment(message.guild.me.joinedAt).format('DD')} ${tarihler[moment(message.guild.me.joinedAt).format('MM')]} ${moment(message.guild.me.joinedAt).format('YYYY h:mm:ss')}`) 54 | embed.addField(`» ${lang['partner']}`, findOne ? (findOne.partner_partnerCount ? findOne.partner_partnerCount : 0) : 0) 55 | message.channel.send(embed) 56 | }, 57 | config: { 58 | name: 'sunucubilgi', 59 | aliases: ['sunucubilgi','sunucu-bilgi','sb','server-info','serverinfo','si'], 60 | desc: 'açıklama', 61 | perms: [], 62 | enabled: true 63 | } 64 | }; -------------------------------------------------------------------------------- /commands/top.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | let db = require("../database/models/coin.js"); 3 | module.exports = { 4 | run: async (client, message, args) => { 5 | 6 | db.find({}, async function (err, docs) { 7 | 8 | let desc = ''; 9 | 10 | docs.sort((a,b) => b.amount - a.amount).slice(0, 10).filter(x => x.amount > 0).map((a, index) => { 11 | client.users.fetch(a.userID).then(user => { 12 | desc += `> • **${index+1}.** __${user.tag}__ **»** :coin: \`${a.amount}\`\n`; 13 | }) 14 | }) 15 | let mauthor = await db.findOne({ userID: message.author.id}); 16 | message.channel.embed(desc, { title: " ", color: "#F4F4F4", footer: [message.author.tag+` » ${mauthor ? (mauthor.amount || 0) : 0} Coin`, message.author.avatarURL({dynamic: true})], author: ['Light Partner - Top 10',message.author.avatarURL({dynamic: true})], thumbnail: client.user.avatarURL() }) 17 | 18 | }) 19 | }, 20 | config: { 21 | name: 'top', 22 | aliases: ['top'], 23 | desc: 'açıklama', 24 | perms: [], 25 | enabled: true 26 | } 27 | }; -------------------------------------------------------------------------------- /commands/yardım.js: -------------------------------------------------------------------------------- 1 | const Discord = require("discord.js"); 2 | const config = require("../config.js"); 3 | const nodeFetch = require('node-fetch'); 4 | const { MessageButton } = require('discord-buttons'); 5 | 6 | module.exports = { 7 | run: async (client, message, args, db) => { 8 | 9 | let lang = client.locale(client[`serverData_${message.guild.id}`].language); 10 | let pageNumber = 1; 11 | let pageSize; 12 | 13 | let filteredCmds = config.filteredCmds; 14 | let fetch = await require('../database/models/server.js').findOne({ guildID: message.guild.id }); 15 | let prefix = fetch ? (fetch.prefix || config.prefix) : config.prefix; 16 | 17 | let pages = []; 18 | let commands = client.commands.map(x => x).filter(x => !filteredCmds.includes(x.config.name)); 19 | let commandsLength = commands.length.toString(); 20 | if (![ '0', '5' ].includes(commandsLength.slice(-1))) { 21 | pageSize = ((parseInt(commandsLength) - (parseInt(commandsLength.slice(-1)) > 5 ? (parseInt(commandsLength.slice(-1)) - 5) : parseInt(commandsLength.slice(-1)))) / 5) + 1; 22 | } else { 23 | pageSize = parseInt(commandsLength) / 5; 24 | }; 25 | let geri = new MessageButton() 26 | .setStyle('blurple') 27 | .setLabel('◀️ '+ lang['yardim']['geri']) 28 | .setID('geri'); 29 | 30 | let sil = new MessageButton() 31 | .setStyle('red') 32 | .setLabel(lang['yardim']['sil']) 33 | .setID('sil'); 34 | 35 | let siliniyor = new MessageButton() 36 | .setStyle('red') 37 | .setLabel(lang['yardim']['siliniyor']+'...') 38 | .setID('siliniyor'); 39 | 40 | let ileri = new MessageButton() 41 | .setStyle('blurple') 42 | .setLabel(lang['yardim']['ileri']+' ▶️') 43 | .setID('ileri'); 44 | 45 | let ileriD = new MessageButton() 46 | .setStyle('blurple') 47 | .setLabel(lang['yardim']['ileri']+' ▶️') 48 | .setDisabled(true) 49 | .setID('ileri'); 50 | 51 | let geriD = new MessageButton() 52 | .setStyle('blurple') 53 | .setLabel('◀️ '+ lang['yardim']['geri']) 54 | .setDisabled(true) 55 | .setID('geri'); 56 | 57 | for(let i = 0; i < pageSize; i++) { 58 | let descText = ''; 59 | let miniFooter = `[${lang['bot']['website']}](https://lightpartner.xyz) | [${lang['bot']['invite']}](https://lightpartner.xyz/invite) | [${lang['bot']['support']}](${config.links.support})` 60 | let miniDesc = `${lang['yardim']['language']}\n${lang['yardim']['prefix'].replace('{prefix}', prefix)}\n\n` 61 | let embed = new Discord.MessageEmbed() 62 | .setFooter(lang['yardim']['footer'].replace('{currentPage}', i + 1).replace('{maxPage}', pageSize), message.author.avatarURL({ dynamic: true})) 63 | .setAuthor(lang['yardim']['title'], client.user.avatarURL()) 64 | .setTimestamp() 65 | .setColor('#F4F4F4') 66 | .setImage(config.embed.image); 67 | 68 | commands.slice(i * 5, (i + 1) * 5).forEach(command => descText += `> • [${prefix}${lang['commands'][command.config.name].name}](${config.links.support}) » **${lang['commands'][command.config.name].desc}**\n> **➥** __${lang['bot']['perm']}${command.config.perms.length > 1 ? lang['bot']['perms'] : ''}__**:** ${command.config.perms.length < 1 ? '``' + lang['yardim']['noReq'] + '``' : (command.config.perms.map(x => '``' + x + '``').join(', '))}\n\n`); 69 | embed.setDescription(miniDesc + descText + `\n`+miniFooter); 70 | pages.push(embed); 71 | }; 72 | 73 | message.channel.send({ embed: pages[0], buttons: [ geriD, sil, ileri ] }).then(async msg => { 74 | const filter = (button) => button.clicker.user.id === message.author.id; 75 | const collector = await msg.createButtonCollector(filter, { time: 60000 }); 76 | 77 | collector.on('collect', async b => { 78 | if(b.id === "ileri") { 79 | if (pageNumber == pageSize) return b.defer(); 80 | msg.edit({ 81 | embed: pages[pageNumber], 82 | buttons: (pageSize - pageNumber) == 1 ? [ geri, sil, ileriD ] : [ geri, sil, ileri ] 83 | }); 84 | pageNumber++; 85 | } else if(b.id === "geri") { 86 | if (pageNumber === 1) return b.defer(); 87 | msg.edit({ 88 | embed: pages[pageNumber - 2], 89 | buttons: pageNumber == 2 ? [ geriD, sil, ileri ] : [ geri, sil, ileri ] 90 | }); 91 | pageNumber--; 92 | } else if(b.id === "sil") { 93 | msg.edit({ 94 | embed: new Discord.MessageEmbed().setColor('#F4F4F4').setDescription(lang['yardim']['delete']), 95 | buttons: [ geriD, siliniyor, ileriD ] 96 | }); 97 | setTimeout(() => msg.delete(), 5000); 98 | }; 99 | b.defer(); 100 | }); 101 | }); 102 | 103 | }, 104 | config: { 105 | name: "yardım", 106 | aliases: ["help"], 107 | desc: "", 108 | perms: [], 109 | enabled: true 110 | } 111 | }; 112 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | token: "" 3 | prefix: '!', 4 | developers: [ "451444721089380373", "714451348212678658", "852606013126606908" ], 5 | mongourl: "mongodb+srv://partner:lightpartner.kahrolsundarkpartner@cluster0.hppwm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", 6 | links: { 7 | support: "https://discord.gg/C4t6dkhBYN" 8 | }, 9 | filteredCmds: [ "davet", "yardım", "eval", "karaliste", "bakım", "coin", "kod", "premium", "ping" ], 10 | embed: { 11 | "image": "https://cdn.discordapp.com/attachments/840662526617714708/845809978332676096/light-banner.png" 12 | } 13 | }; 14 | -------------------------------------------------------------------------------- /database/connect.js: -------------------------------------------------------------------------------- 1 | const { connect } = require("mongoose"); 2 | const config = require("../config.js"); 3 | 4 | module.exports = client => { 5 | connect(config.mongourl, { 6 | useNewUrlParser: true, 7 | useUnifiedTopology: true, 8 | useCreateIndex: true, 9 | useFindAndModify: false, 10 | autoIndex: false 11 | }).then(() => { 12 | console.log("(!) Mongoose başarılı bir şekilde bağlandı."); 13 | }).catch(a => 14 | console.log("(!) Mongoose bağlanırken bir hata oluştu!") 15 | ); 16 | } -------------------------------------------------------------------------------- /database/models/bakim.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("bakım-modu", new mongoose.Schema({ 3 | botID: String, 4 | yetkili: String, 5 | süre: Date, 6 | sebep: String, 7 | })); 8 | -------------------------------------------------------------------------------- /database/models/blog.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("blog", new mongoose.Schema({ 3 | date: { type: String, default: Date.now().toString() }, 4 | author: { type: String, default: null }, 5 | title: { type: String, default: null }, 6 | image: { type: String, default: null }, 7 | text: { type: String, default: null } 8 | })); 9 | -------------------------------------------------------------------------------- /database/models/bot.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("bot", new mongoose.Schema({ 3 | botID: String, 4 | partnerCount: {type: Number, default: 0}, 5 | maintence: {type: String, default: "DeActive"}, 6 | })); 7 | -------------------------------------------------------------------------------- /database/models/coin-geçmişi.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("gecmis", new mongoose.Schema({ 3 | userID: String, 4 | gecmis: Array 5 | })); 6 | -------------------------------------------------------------------------------- /database/models/coin.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("coin", new mongoose.Schema({ 3 | userID: String, 4 | amount: {type: Number, default: 0} 5 | })); 6 | -------------------------------------------------------------------------------- /database/models/ekledim.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("ekledim-5-sunucuya", new mongoose.Schema({ 3 | userID: String, 4 | })); 5 | -------------------------------------------------------------------------------- /database/models/karaliste.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("karaliste", new mongoose.Schema({ 3 | userID: String, 4 | yetkili: String, 5 | süre: Date, 6 | sebep: String, 7 | })); 8 | -------------------------------------------------------------------------------- /database/models/kod-data.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("kod-data", new mongoose.Schema({ 3 | kod: String, 4 | usage: { type: Number, default: 0 }, 5 | prize: { type: Number, default: 0 }, 6 | kullanim: { type: Number, default: 0 }, 7 | users: { type: Object, default: [] } 8 | })); 9 | -------------------------------------------------------------------------------- /database/models/partner-ol.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("partner-post", new mongoose.Schema({ 3 | message: String, 4 | guildID: String, 5 | karsiSunucu: String, 6 | author: String, 7 | })); -------------------------------------------------------------------------------- /database/models/pre-activation.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("premium-activitaion", new mongoose.Schema({ 3 | kod: String, 4 | creator: String, 5 | date: String, 6 | })); 7 | -------------------------------------------------------------------------------- /database/models/pre.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("premiums", new mongoose.Schema({ 3 | user: String, 4 | Date: Date, 5 | ms: Number 6 | })); 7 | -------------------------------------------------------------------------------- /database/models/server.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("server", new mongoose.Schema({ 3 | guildID: String, 4 | prefix: { type: String, default: "!" }, 5 | language: { type: String, default: "tr-TR" }, 6 | 7 | partner_inviteURL: { type: String, default: null}, 8 | partner_sorumlu: { type: String, default: null }, 9 | partner_text: { type: String, default: null }, 10 | partner_durum: { type: String, default: "DeAktif" }, 11 | partner_kanal: { type: String, default: null }, 12 | partner_log: { type: String, default: null }, 13 | partner_sart: { type: String, default: null}, 14 | partner_partnerCount: { type: Number, default: 0 }, 15 | partner_lastPartnerDate: Date, 16 | 17 | premium_davetkodu: { type: String, default: null }, 18 | premium_durum: { type: String, default: null }, 19 | premium_Date: Date, 20 | premium_ms: Number, 21 | 22 | })); -------------------------------------------------------------------------------- /database/models/stockDatas.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("stockDatas", new mongoose.Schema({ 3 | guild: String, 4 | pazar: {type:Object, default:{}}, 5 | pazartesi: {type:Object, default:{}}, 6 | sali: {type:Object, default:{}}, 7 | carsamba: {type:Object, default:{}}, 8 | persembe: {type:Object, default:{}}, 9 | cuma: {type:Object, default:{}}, 10 | cumartesi: {type:Object, default:{}} 11 | })); 12 | -------------------------------------------------------------------------------- /database/models/süre.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("süre", new mongoose.Schema({ 3 | user: String, 4 | ms: Number, 5 | Date: Date 6 | })); 7 | -------------------------------------------------------------------------------- /database/models/url-süre.js: -------------------------------------------------------------------------------- 1 | const mongoose = require("mongoose"); 2 | module.exports = mongoose.model("url-süre", new mongoose.Schema({ 3 | guild: String, 4 | ms: Number, 5 | Date: Date 6 | })); 7 | -------------------------------------------------------------------------------- /events/message.js: -------------------------------------------------------------------------------- 1 | module.exports = async (Discord, client, config) => { 2 | const serverdata = require("../database/models/server.js"); 3 | const karaliste = require("../database/models/karaliste.js"); 4 | const bakim = require("../database/models/bakim.js"); 5 | let newSet = new Set() 6 | 7 | 8 | client.on("message", async message => { 9 | if (message.author.bot || !message.guild) return; 10 | let fetch = await serverdata.findOne({ guildID: message.guild.id }); 11 | let specialPrefix = fetch ? fetch.prefix || config.prefix : config.prefix; 12 | if (!message.content.startsWith(specialPrefix || config.prefix)) return; 13 | let command = message.content 14 | .split(" ")[0] 15 | .slice(specialPrefix ? specialPrefix.length : config.prefix.length); 16 | let args = message.content.split(" ").slice(1); 17 | let cmd; 18 | client.prefix = specialPrefix; 19 | if (client.commands.has(command)) { 20 | cmd = client.commands.get(command); 21 | } else if (client.aliases.has(command)) { 22 | cmd = client.commands.get(client.aliases.get(command)); 23 | } 24 | let predata = require("../database/models/pre.js"); 25 | let premium = await predata.findOne({ user: message.author.id }); 26 | client[`serverData_${message.guild.id}`] = await serverdata.findOne({ guildID: message.guild.id }); 27 | if(!client['serverData_' + message.guild.id]) return await serverdata.updateOne({ guildID: message.guild.id }, {$set: { language: "tr-TR" }}, { upsert: true }); 28 | let lang = client.locale(client[`serverData_${message.guild.id}`].language)['bot']; 29 | let swData = await serverdata.findOne({ guildID: message.guild.id }); 30 | if(!premium) { 31 | if(newSet.has(message.author.id)) { 32 | message.delete({ timeout: 6500 }); 33 | } 34 | if(swData.premium_durum) { 35 | if(newSet.has(message.author.id)) return message.channel.error(lang['cooldown'].replace("{sure}", "3.5 saniye")).then(msg => msg.delete({ timeout: 3500 })); 36 | } else { 37 | if(newSet.has(message.author.id)) return message.channel.error(lang['cooldown'].replace("{sure}", "7 saniye")).then(msg => msg.delete({ timeout: 7000 })); 38 | } 39 | } 40 | if (cmd) { 41 | if (client.permission(message, cmd.config.perms) == false) { 42 | message.channel.send( 43 | new Discord.MessageEmbed() 44 | .setColor("RED") 45 | .setDescription(client.locale(client[`serverData_${message.guild.id}`].language)['noPerm'].replace('{x}', (specialPrefix + command)).replace('{y}', (cmd.config.perms.map(x => x).join(", ") + "`` " + (cmd.config.perms.length < 2 ? "yetkisine" : "yetkilerine")))) 46 | ); 47 | } else if (cmd.config.enabled != true) { 48 | message.channel.send( 49 | new Discord.MessageEmbed() 50 | .setColor('RED') 51 | .setDescription(client.locale(client[`serverData_${message.guild.id}`].language)['commandDisabled'].replace('{x}', (specialPrefix + command))) 52 | ); 53 | } else { 54 | let bakimkontrol = await bakim.findOne({ botID: client.user.id }); 55 | if(!config.developers.includes(message.author.id)) { 56 | if(bakimkontrol) return message.channel.error(client.locale(client[`serverData_${message.guild.id}`].language)["bot"]["bakim"]); 57 | } 58 | let karalistekontrol = await karaliste.findOne({ userID: message.author.id }); 59 | if (!config.developers.includes(message.author.id)) { if (karalistekontrol) return message.channel.error(client.locale(client[`serverData_${message.guild.id}`].language)["bot"]["karaliste"]) }; 60 | newSet.add(message.author.id); 61 | cmd.run(client, message, args, premium); 62 | 63 | if(swData.premium_durum) { 64 | setTimeout(() => { 65 | if(newSet.has(message.author.id)) { 66 | newSet.delete(message.author.id) 67 | } 68 | }, 7000) 69 | } else { 70 | setTimeout(() => { 71 | if(newSet.has(message.author.id)) { 72 | newSet.delete(message.author.id) 73 | } 74 | }, 3500) 75 | } 76 | 77 | 78 | } 79 | } 80 | }); 81 | }; 82 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client, config) => { 2 | client.on('ready', () => { 3 | console.log('(!) ' + client.user.tag + ' olarak oturum açıldı!'); 4 | client.user.setStatus('idle'); 5 | client.user.setActivity('lightbot.me | '+client.guilds.cache.size+' servers!', { 6 | type: 'LISTENING' 7 | }).then(() => { 8 | console.log('(!) Presence başarıyla ayarlandı!'); 9 | }); 10 | }); 11 | }; -------------------------------------------------------------------------------- /lang/en-GB.json: -------------------------------------------------------------------------------- 1 | { 2 | "$package": { 3 | "flag": ":flag_gb:", 4 | "name": "English" 5 | }, 6 | "bal": { 7 | "daily": "Daily Reward", 8 | "none": "None", 9 | "system": "System", 10 | "+": "``{coin}`` **|** ``{user}`` added by**!** *(Reason: {reason})*", 11 | "-": "``{coin}`` **|** ``{user}`` removed by**!** *(Reason: {reason})*", 12 | "bulunuyor": ":coin: You have **{amount}** coins in your account.", 13 | "geçmiş": "> <:lpi:844336401389715516> Account History:", 14 | "geçmişyok": "> :x: No history of your account was found.", 15 | "promocode": "Promotional Code", 16 | "coinflip": "Heads Or Tails", 17 | "added": "Added Command" 18 | }, 19 | "noPerm": "> :x: **|** You must have ``{y} to use the ``{x}`` command**!**", 20 | "commandDisabled": "> :x: **|** The command ``{x}`` has been disabled by the developers**!**", 21 | "yardim": { 22 | "title": "Light Partner - Help", 23 | "footer": "Page {currentPage}/{maxPage}", 24 | "delete": ":x: **|** This message will clear after **5 seconds!**", 25 | "language": "> __Language__ **»** :flag_gb: `English`", 26 | "prefix": "> __Prefix__ **»** ``{prefix}``", 27 | "loading": ":gear: **|** Loading emojis**,** please wait**...**", 28 | "noReq": "Anyone can use it.", 29 | "ileri": "Next", 30 | "geri": "Previous", 31 | "sil": "💥ᅠDeleteᅠ💥", 32 | "siliniyor": "Deleting" 33 | }, 34 | "istatistik": { 35 | "title": "Light Partner - Statistics", 36 | "dev": "Developer Team", 37 | "totalPartner": "Total Partnership", 38 | "generalDatas": "General Datas", 39 | "pingDatas": "Ping Datas", 40 | "softwareDatas": "Software Information", 41 | "uptime": "Uptime Time" 42 | }, 43 | "bot": { 44 | "header_error": "❌ There is something wrong ...", 45 | "header_success": "✅ Nice!", 46 | "header_quest": "❔ Are you sure?", 47 | "karaliste": "You can't use a command because you're blacklisted.", 48 | "bakim": "Maintenance mode is turned on by bot developers. Commands cannot be used while maintenance mode is on.", 49 | "days": "day(s)", 50 | "seconds": "second(s)", 51 | "min": "minute(s)", 52 | "hour": "hour(s)", 53 | "links": "Links;", 54 | "davetMesaj": "> :wave: Hi, **{author}** I'm glad you used this command, don't forget to invite me, I'm wondering about the server :)", 55 | "perm": "Perm", 56 | "perms": "(s)", 57 | "website": "Website", 58 | "invite": "Invite", 59 | "support": "Support Server", 60 | "unlimited": "Unlimited", 61 | "cooldown": "You have wait **{sure}** to use this command.\n`As soon as this message is deleted, you can use the command.`", 62 | "aylar": { 63 | "ocak": "January", 64 | "subat": "February", 65 | "mart": "March", 66 | "nisan": "April", 67 | "mayis": "May", 68 | "haziran": "June", 69 | "temmuz": "July", 70 | "agustos": "Augst", 71 | "eylül": "September", 72 | "ekim": "October", 73 | "kasim": "November", 74 | "aralik": "December" 75 | } 76 | }, 77 | "ayarlar": { 78 | "args": { 79 | "dil": "language", 80 | "prefix": "prefix" 81 | }, 82 | "language": { 83 | "selectLang": "Please select a language.", 84 | "activeLangs": "Available Languages", 85 | "success": "The server language was successfully changed to {language}.", 86 | "invalidLang": "Please enter a valid language." 87 | }, 88 | "hataFooter": "Using Language: {language}", 89 | "sifirla": "Reset", 90 | "prefixgir": "Please specify a prefix.", 91 | "prefixerr": "Server prefixes can be 5 to 1 characters long.", 92 | "prefixayarlaonce": "You must first set a prefix.", 93 | "prefixdegisti": "The prefix has been successfully changed.", 94 | "prefixsifirlandi": "The prefix has been reset successfully.", 95 | "argss": "> Where argument? \n **Arguments;** \n `language`, `prefix`" 96 | }, 97 | "partner": { 98 | "url": { 99 | "urlbelirt": "You must specify a special invite code.\n`(Length; maximum: 32, minimum: 3) `", 100 | "quest": "Are you sure you want to buy the **60** coin `{url}` invitation code? `(yes/no)`\n**:exclamation: | Your old custom url code will be canceled and your new url code will be activated.**", 101 | "maxerr": "You can get an invitation code of up to 32 characters.", 102 | "minerr": "You can get an invitation code of at least 3 characters.", 103 | "aldin": ":white_check_mark: You have successfully purchased the money for the `{url}` invite****.\n:timer: Your invite group will expire after **{time}**.\n:globe_with_meridians: URL; https://ligthbot.me/i/{url}", 104 | "mevcut": "The **{url}** invitation code you are trying to get is being used by another server.", 105 | "yetersizBakiye": "You do not have enough coins in your account.", 106 | "invalid": "Custom URL can only contain english letters!" 107 | }, 108 | "info": { 109 | "notFound": "Not set.", 110 | "staff": "Staff", 111 | "log": "Log", 112 | "channel": "Channel", 113 | "text": "Article", 114 | "status": "Status", 115 | "active": "Active", 116 | "deactive": "Closed", 117 | "url": "Invite code", 118 | "urlSüre": "Invite code time" 119 | }, 120 | "args": { 121 | "authorizationRole": "staff", 122 | "set": "set", 123 | "status": "status", 124 | "info": "information", 125 | "close": "close", 126 | "open": "open", 127 | "channel": "channel", 128 | "reset": "reset", 129 | "postPartner": "send", 130 | "partnerLimit": "limit" 131 | }, 132 | "limited": "Partner letter can be minimum 1, maximum 1950 characters!", 133 | "invalidArgs[1]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `staff` » You set up the role of **authorized** to accept/reject partner requests.\n> • `text` » You'll arrange the partnership letter.\n> • `status` » Enables / disables your partner requests.\n> • `reset` » You delete your partner data.\n> • `channel` » You set the partner channel and partner log channels.\n> • `send` » You send a partnership request by entering the code of the server you want.\n> • `url` » You will get custom url for your server.\n> • `limit` » It is the user limit of the server that will send the affiliate request.", 134 | "invalidArgs[2]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `set` » User role to approve affiliate requests.\n> • `reset` » Resets the co-principal role you set. ", 135 | "invalidArgs[3]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `set` » You set your partner article.\n> • `reset` » You reset your partner article.", 136 | "invalidArgs[4]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `open` » You open the partner status.\n> • `close` » You close the partner status.", 137 | "invalidArgs[5]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `log` » When making a partner, you set the channel where the log will drop.\n> • `partner` » It is the channel to be partnered.", 138 | "invalidArgs[6]": "> You haven't entered a invite code, this command cannot be used without entering a invite code.\n**Example Usage;** » `{prefix}partner send `", 139 | "invalidArgs[7]": "> You did not enter an argument, this command cannot be used without entering an argument.\n\n> **• Arguments;**\n> • `open [limit]` » You open your partner limit.\n> • `close` » You close your partner limit.", 140 | "tagRole": "> This command cannot be performed without role tagging. How about a role tag?", 141 | "partnerurlyanlis": "> A server for the partner code you entered could not be found. Try again or check the code.", 142 | "partnerGönderildi": "> The Partner request was sent successfully. Please wait until an official checks.", 143 | "partnerGonderilmis": "> You already have an active partner request on this server", 144 | "kanaliKapali": "I can't write a message to the partner channel set up on the server where you are requesting a Partner. So I canceled the procedure.", 145 | "kanalKapali": "I can't send a message to the partner channel set up on this server. So I canceled the procedure.", 146 | "partneroldu": "A partnership was **established** with the server named `{name}`, which has `{memberCount}` members. \n`Approving Authority: {yetkili}`", 147 | "partnerolmadi": "Partnership **could not be established** with the server named `{name}`, which has `{memberCount}` members. \n`Rejecting Authority: {yetkili}`", 148 | "partnerMesaj": "The `{sunucuAdi}` server wants to be a partner with you.\n\n> » Invite Code: `{inviteCode}`\n> » Server Owner: `{sahip}`\n> » Authorized: `{yetkili}`\n> » Member Count: `{memberCount}`\n> » Invite URL: [lightpartner.xyz/i/{inviteCode}](https://lightpartner.xyz/i/{inviteCode})\n> » Server Creation Date: `{opendate}`\n> » Total Partnership: `{partnerCount}`", 149 | "staffRoleSaved": "The partner manager role has been set up successfully.", 150 | "staffRoleError[1]": ":x: Responsible role is already deactivated, please try again after setting roles.", 151 | "staffRoleQuest[1]": "Are you sure you want to reset the responsible role? `(yes/no)`", 152 | "staffRoleReseted": "The reset request has been performed successfully.", 153 | "textChanged": "You have successfully set up the partner text.\n\nPreview: ```{text}```", 154 | "writeText": ":x: To execute this command, you must enter a text.", 155 | "textDeActive": ":x: It seems that the Affiliate post is deactivated, please try again after setting a post.", 156 | "partnerTextQuest": "Are you sure you want to reset the partner article? `(yes/no)`", 157 | "successReset": "You have successfully performed the reset request.", 158 | "yetkiyok": "On a server, I do not have `{yetki}`. That's why I canceled the process.", 159 | "thisYourServer": "You cannot partner with your own server.", 160 | "statusActive": "You have successfully activated the partnership system.", 161 | "statusAlreadyDeActive": ":x: Partnership status seems to be closed.", 162 | "statusQuest": "Are you sure you want to shut down the affiliate system? `(yes/no)`\n**:exclamation: | Do you have a special invite code? This is bad! As soon as you turn off the system, your special invitation code will be reset.**", 163 | "statusAlreadyActive": "The partnership system seems to be active.", 164 | "partnerReseted": "You have successfully closed the partnership system.", 165 | "notTaggedChannel": ":x: This command cannot be used without tagging a channel. Tag a channel and try again.", 166 | "channelChanged[1]": "You have successfully set up the partner channel. (<#{kanal}>)", 167 | "channelChanged[2]": "You have successfully set up the log channel. (<#{kanal}>)", 168 | "resetAll?": "Are you sure you want to reset all set partner data? `(yes/no)`", 169 | "datasDeleted": "All your partner data has been reset.", 170 | "textWrite": "You have to adjust the settings to open the partner status.", 171 | "statusActiveNotChange": "You cannot perform this action while the partner status is active.", 172 | "durumDeaktif": "Your partner status is deactivated. That's why you can't buy a custom invite link.", 173 | "gecersizSart": "Please enter a user limit.", 174 | "sartAyarlandi": "The minimum number of users of servers that can send Partners is set to **{limit}**.", 175 | "sartKapali": "The partnership limit is already closed, so this transaction has been canceled.", 176 | "sartSoru": "Are you sure you want to close the partnership limit? `(yes / no)`", 177 | "sartKapandi": "The partnership limit was successfully closed.", 178 | "yetersizLimit": "That's too bad! The minimum user limit of this server is set to **{limit}**, so I couldn't send a partnership request.", 179 | "fazlaRakam": "I canceled the operation because the user limit you entered is **greater than the number of users of this server**.", 180 | 181 | 182 | "kurulumTamamlandi": "Installation was done successfully by {author}.", 183 | "sonradanDuzenle": "Use the `{p}partner` command to edit the information later.", 184 | "textFull": "Click for the full article!", 185 | "gecersizArgüman": "You entered an invalid argument.", 186 | "taggRole": "Label a staff role.", 187 | "writePartnerText": "Write a partner article.", 188 | "tagPartnerChannel": "Tag a partner channel.", 189 | "tagLogChannel": "Tag a partner log channel.", 190 | "durumuAccanmi": "Would you like to open the partnership status? - `(yes/no)`", 191 | "durumEvet": "yes", 192 | "durumHayır": "no", 193 | "kurulumYapilmiski": "Since the installation has been done before, it cannot be done again.", 194 | 195 | "search": { 196 | "members": "User", 197 | "title": "Light Partner - Partner System", 198 | "footer": "Servers with active partnership status are listed.", 199 | "serverNotFound": ":pleading_face: This is very bad! There is no server you can partner with." 200 | } 201 | }, 202 | "quest": { 203 | "commandCanceled": ":x: The command has been aborted.", 204 | "timeout": ":x: The command timed out.", 205 | "yes": "yes", 206 | "no": "no" 207 | }, 208 | "commands": { 209 | "ayarlar": { 210 | "name": "settings", 211 | "desc": "It is used to change the server settings." 212 | }, 213 | "istatistik": { 214 | "name": "statistics", 215 | "desc": "Shows the bot's statistics." 216 | }, 217 | "partner": { 218 | "name": "partner", 219 | "desc": "Allows you to make partnership settings." 220 | }, 221 | "partner-bul": { 222 | "name": "find-partner", 223 | "desc": "Lists the servers whose partnership status is open." 224 | }, 225 | "günlük-ödül": { 226 | "name": "daily-reward", 227 | "desc": "You get your daily reward." 228 | }, 229 | "pay": { 230 | "name": "pay", 231 | "desc": "You send a coin to a person." 232 | }, 233 | "bal": { 234 | "name": "account", 235 | "desc": "Shows account information." 236 | }, 237 | "bug-bildir": { 238 | "name": "bug-report", 239 | "desc": "You report the bug you found in the bot." 240 | }, 241 | "top": { 242 | "name": "top", 243 | "desc": "You look at the top 10 people in the coin ranking." 244 | }, 245 | "ekledim": { 246 | "name": "added", 247 | "desc": "Earn coins by adding the bot to your server." 248 | }, 249 | "coinflip": { 250 | "name": "coinflip", 251 | "desc": "You flip a coin." 252 | }, 253 | "kullanicibilgi": { 254 | "name": "userinfo", 255 | "desc": "You get information about the user." 256 | }, 257 | "sunucubilgi": { 258 | "name": "serverinfo", 259 | "desc": "You get information about the server." 260 | }, 261 | "ptb": { 262 | "name": "ptb", 263 | "desc": "It is a game where you can earn coins by doing the given task." 264 | }, 265 | "snake": { 266 | "name": "snake", 267 | "desc": "Coin is a snake game where you can win coins." 268 | }, 269 | "kurulum": { 270 | "name": "install", 271 | "desc": "It allows you to set up partner settings in a simple way." 272 | } 273 | }, 274 | "coin": { 275 | "limit": "You can transfer up to 9999 coins!", 276 | "gecersizMiktar": "The amount you want to trade is not valid!", 277 | "günlük": { 278 | "alindi": ":moneybag: **|** **{miktar}** has been added to your account.\n:timer: **|** You have to wait **{time}** to get the daily reward again.", 279 | "suregecmeli": ":timer: **|** You have to wait **{time}** to get the daily reward again." 280 | }, 281 | "gönderilecek": "You must specify the amount of coins you will transfer.", 282 | "üyebelirt": "You must label the user to whom the coin will be transferred.", 283 | "gönderdi": "The coin {gönderilcek} has been transferred to {user}.", 284 | "auhorerr": "You cannot transfer coins to yourself.", 285 | "boterr": "You cannot transfer coins to bot accounts.", 286 | "sendeyok": "You do not have {gönderilecek} coins in your account." 287 | }, 288 | "bugbildir": { 289 | "belirt": "You must indicate the bug you will report!", 290 | "bildirdi": "I successfully passed the bug to my **developer** team! \n If the bug is fixed, 25 coins will be added to your account." 291 | }, 292 | "code": { 293 | "args": { 294 | "bozdur": "exchange" 295 | }, 296 | "invalidArgs[0]": ":x: You must enter a code that I can exchange." 297 | }, 298 | "coinflip": { 299 | "args[0]": "You must enter a bet amount.", 300 | "args[1]": "You must enter a valid bet amount.", 301 | "args[2]": "You must enter a valid bet amount.", 302 | "args[3]": "The amount of your bet must be a minimum of 3 and a maximum of 50.", 303 | "args[4]": "You do not have **{coin}** coins in your account.", 304 | "flipping": ":coin: **|** Coin flip...", 305 | "youLost": ":x: **|** **{coin}** you lost coins**!**", 306 | "nothing": ":white_circle: **|** You haven't won or lost anything**!**", 307 | "youWon": ":white_check_mark: **|** **{coin}** you won coins, congratulations**!**" 308 | }, 309 | "ekledim": { 310 | "100ekle": "To use this command, you need to add me to **2 servers** with **100+ members**.\nNumber of servers you added; **{count}**", 311 | "kullandin": "Thanks for adding me to 2 servers, **{coin}** amount of coins has been added to your account.", 312 | "kullanmissin": "You can only use this command **1** time." 313 | }, 314 | "sunucub": { 315 | "swadı": "Server Name:", 316 | "swsahib": "Server Owner:", 317 | "swüye": "Member Count", 318 | "kanal": "Channels Count:", 319 | "ektahrih": "Date Added:", 320 | "partner": "Total Number of Partnership:", 321 | "premium": "Premium", 322 | "presüre": "Premium Time", 323 | "deactive": "DeActive", 324 | "active": "Active" 325 | }, 326 | "kullanıcıb": { 327 | "kid": "User ID:", 328 | "kadi": "Username:", 329 | "ktag": "User Discriminator:", 330 | "kacilis": "Account Opening Date", 331 | "kekledigi": "Number ff Servers the Bot Adds", 332 | "premium": "Premium", 333 | "presüre": "Premium Time", 334 | "deactive": "DeActive", 335 | "active": "Active" 336 | }, 337 | "premium": { 338 | "writeCode": "You must enter a premium activation code.", 339 | "invalidCode": "The activation code you entered is invalid.", 340 | "premiumActive": "The Premium system is defined on the server **{serverName}**. And **1 month** premium user package defined to server owner.\n\n> • **Guild ID**: {serverID}\n> • **Premium Time**: 1 Ay\n> • **Guild Owner**: {ownerName}" 341 | } 342 | } -------------------------------------------------------------------------------- /lang/tr-TR.json: -------------------------------------------------------------------------------- 1 | { 2 | "$package": { 3 | "flag": ":flag_tr:", 4 | "name": "Türkçe" 5 | }, 6 | "bal": { 7 | "daily": "Günlük Ödül", 8 | "none": "Yok", 9 | "system": "Sistem", 10 | "+": "``{coin}`` **|** ``{user}`` tarafından eklendi**!** *(Sebep: {reason})*", 11 | "-": "``{coin}`` **|** ``{user}`` tarafından çıkarıldı**!** *(Sebep: {reason})*", 12 | "bulunuyor": ":coin: Hesabınızda **{amount}** coin bulunuyor.", 13 | "geçmiş": "> <:lpi:844336401389715516> Hesap Geçmişi:", 14 | "geçmişyok": "> :x: Hesabınızın bir geçmişi bulunamadı.", 15 | "promocode": "Promosyon Kodu", 16 | "coinflip": "Yazı Tura", 17 | "added": "Ekledim Komutu" 18 | }, 19 | "noPerm": "> :x: **|** ``{x}`` komutunu kullanabilmek için ``{y} sahip olmanız gereklidir**!**", 20 | "commandDisabled": "> :x: **|** ``{x}`` komutu geliştiriciler tarafından devre dışı bırakılmıştır**!**", 21 | "yardim": { 22 | "title": "Light Partner - Yardım", 23 | "footer": "Sayfa {currentPage}/{maxPage}", 24 | "delete": ":x: **|** Bu mesaj **5 saniye** sonra silinecek**!**", 25 | "language": "> __Dil__ **»** :flag_tr: `Türkçe`", 26 | "prefix": "> __Prefix__ **»** ``{prefix}``", 27 | "loading": ":gear: **|** Emojiler yükleniyor**,** lütfen bekleyin**...**", 28 | "noReq": "Herkes kullanabilir.", 29 | "ileri": "İleri", 30 | "geri": "Geri", 31 | "sil": "💥ᅠSilᅠ💥", 32 | "siliniyor": "Siliniyor" 33 | }, 34 | "istatistik": { 35 | "title": "Light Partner - İstatistik", 36 | "dev": "Geliştirici Takımımız", 37 | "totalPartner": "Toplam Partnerlik", 38 | "generalDatas": "Genel Veriler", 39 | "pingDatas": "Gecikme Verileri", 40 | "softwareDatas": "Yazılım Bilgileri", 41 | "uptime": "Uptime Süresi" 42 | }, 43 | "bot": { 44 | "header_error": "❌ Bir terslik var...", 45 | "header_success": "✅ Mükemmel!", 46 | "header_quest": "❔ Emin misin?", 47 | "karaliste": "Karalisteye alındığın için komut kullanamassın.", 48 | "bakim": "Bakım modu, bot geliştiricileri tarafından açık. Bakım modu açık iken komutlar kullanılamaz.", 49 | "days": "gün", 50 | "seconds": "saniye", 51 | "min": "dakika", 52 | "hour": "saat", 53 | "links": "Bağlantılar;", 54 | "davetMesaj": "> :wave: Merhaba, **{author}** bu komutu kullandığına sevindim, sakın beni davet etmeyi unutma sunucunu merak ediyorum :)", 55 | "perm": "Yetki", 56 | "perms": "ler", 57 | "website": "Website", 58 | "invite": "Davet Et", 59 | "support": "Destek Sunucusu", 60 | "unlimited": "Sınırsız", 61 | "cooldown": "Bu komutu kullanmak için **{sure}** beklemelisin.\n`Bu mesaj silindiği anda komut kullanabilirsiniz.`", 62 | "aylar": { 63 | "ocak": "Ocak", 64 | "subat": "Şubat", 65 | "mart": "Mart", 66 | "nisan": "Nisan", 67 | "mayis": "Mayıs", 68 | "haziran": "Haziran", 69 | "temmuz": "Temmuz", 70 | "agustos": "Ağustos", 71 | "eylül": "Eylül", 72 | "ekim": "Ekim", 73 | "kasim": "Kasım", 74 | "aralik": "Aralık" 75 | } 76 | }, 77 | "ayarlar": { 78 | "args": { 79 | "dil": "dil", 80 | "prefix": "prefix" 81 | }, 82 | "language": { 83 | "selectLang": "Lütfen bir dil seçiniz.", 84 | "activeLangs": "Mevcut Diller", 85 | "success": "Sunucu dili, başarılı bir şekilde {language} olarak değiştirildi.", 86 | "invalidLang": "Lütfen geçerli bir dil giriniz." 87 | }, 88 | "hataFooter": "Kullanılan Dil: {language}", 89 | "sifirla": "sıfırla", 90 | "prefixgir": "Lütfen bir prefix belirtiniz.", 91 | "prefixerr": "Sunucu prefixi, 5 ila 1 karakter uzunluğunda olabilir.", 92 | "prefixayarlaonce": "Önce bir prefix ayarlamalısın.", 93 | "prefixdegisti": "Başarıyla prefix değiştirildi.", 94 | "prefixsifirlandi": "Başarıyla prefix sıfırlandı.", 95 | "argss": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `dil` » Sunucunuzun dilini değiştirirsiniz.\n> • `prefix` » Sunucunuzun prefixini değiştirirsiniz." 96 | }, 97 | "partner": { 98 | "url": { 99 | "urlbelirt": "Bir özel davet kodu belirtmelisin.\n`(Uzunluk; maksimum: 32, minimum: 3)`", 100 | "quest": "**60** coin karşılığında `{url}` davet kodunu satın almak istediğinizden emin misiniz? `(evet/hayır)`\n**:exclamation: | Eski özel url kodunuz iptal edilip, yeni url kodunuz devreye girecektir.**", 101 | "maxerr": "Maksimum 32 karakterlik bir davet kodu alabilirsin.", 102 | "minerr": "Minimum 3 karakterlik bir davet kodu alabilirsin.", 103 | "aldin": ":white_check_mark: Başarıyla `{url}` davet kodunu **{miktar}** coin karşılığında satın aldınız.\n:timer: Davet kodunuz **{time}** sonra sona ericek.\n:globe_with_meridians: Bağlantı; https://lightpartner.xyz/i/{url}", 104 | "mevcut": "Almaya çalıştığın **{url}** davet kodu başka bir sunucu tarafından kullanılıyor.", 105 | "yetersizBakiye": "Hesabınızda yeterli coin bulunmuyor.", 106 | "invalid": "Özel URL sadece ingiliz harflerini içerebilir!" 107 | }, 108 | "info": { 109 | "notFound": "Ayarlanmamış.", 110 | "staff": "Sorumlu", 111 | "log": "Log", 112 | "channel": "Kanal", 113 | "text": "Yazı", 114 | "status": "Durum", 115 | "active": "Aktif", 116 | "deactive": "Kapalı", 117 | "url": "Davet Kodu", 118 | "urlSüre": "Davet Kodu Süresi" 119 | }, 120 | "args": { 121 | "authorizationRole": "sorumlu", 122 | "set": "ayarla", 123 | "status": "durum", 124 | "info": "bilgi", 125 | "close": "kapat", 126 | "open": "aç", 127 | "channel": "kanal", 128 | "reset": "sıfırla", 129 | "postPartner": "ol", 130 | "partnerLimit": "limit" 131 | }, 132 | "limited": "Partner yazısı minumum 1, maksimum 1950 karakter olabilir!", 133 | "invalidArgs[1]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `sorumlu` » Partnerlik isteklerini kabul/reddedecek **yetkili** rolünü ayarlarsınız.\n> • `text` » Partnerlik yazınızı ayarlarsınız.\n> • `durum` » Partnerlik isteklerinizi açar/kapatır.\n> • `sıfırla` » Partnerlik verilerinizi silersiniz.\n> • `kanal` » Partner kanal ve partner log kanallarını ayarlarsınız.\n> • `ol` » İstediğiniz sunucunun kodunu girerek partnerlik isteği gönderirsiniz.\n> • `url` » Sunucunuz için özel url alırsınız.\n> • `limit` » Partnerlik isteği gönderecek sunucunun kullanıcı limitidir.", 134 | "invalidArgs[2]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `ayarla` » Partnerlik isteklerini onaylayacak kullanıcı rolüdür.\n> • `sıfırla` » Ayarladığınız partner sorumlusu rolünü sıfırlar.", 135 | "invalidArgs[3]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `ayarla` » Partner yazınızı ayarlarsınız.\n> • `sıfırla` » Partner yazınızı sıfırlarsınız.", 136 | "invalidArgs[4]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `aç` » Partner durumunu açarsınız.\n> • `kapat` » Partner durumunu kapatırsınız.", 137 | "invalidArgs[5]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `log` » Partner yaparken log düşecek kanalı ayarlarsınız.\n> • `partner` » Partnerlik yapılacak kanaldır.", 138 | "invalidArgs[6]": "> Bir partner kodu girmedin, bu komut partner kodu girmeden kullanılamaz.\n**Komut örneği** » `{prefix}partner ol `", 139 | "invalidArgs[7]": "> Bir argüman girmedin, argüman girmeden bu komut kullanılamaz.\n\n> **• Argümanlar;**\n> • `aç [limit]` » Partner limitinizi açarsınız.\n> • `kapat` » Partner limitinizi kapatırsınız.", 140 | "tagRole": "> Bu komut, rol etiketlemeden gerçekleştirilemez. Bir rol etiketlemeye ne dersin?", 141 | "partnerurlyanlis": "> Girdiğiniz partner koduna ait bir sunucu bulunamadı. Tekrar deneyin veya kodu kontrol edin.", 142 | "partnerGönderildi": "> Partner isteği başarılı bir şekilde gönderildi. Lütfen bir yetkili kontrol edene kadar bekleyin.", 143 | "partnerGonderilmis": "> Bu sunucuda aktif bir partner isteğiniz zaten mevcut.", 144 | "kanaliKapali": "Partner isteğinde bulunduğunuz sunucunun ayarlanılan partner kanalına mesaj yazamıyorum. Bu yüzden işlemi iptal ettim.", 145 | "kanalKapali": "Bu sunucuda ayarlanan partner kanalına mesaj gönderemiyorum. Bu yüzden işlemi iptal ettim.", 146 | "partneroldu": "`{name}` isimli `{memberCount}` üyeye sahip sunucu ile partnerlik başarıyla **gerçekleştirildi.** `Onaylayan Yetkili: {yetkili}`", 147 | "partnerolmadi": "`{name}` isimli `{memberCount}` üyeye sahip sunucu ile partnerlik **gerçekleştirilemedi.** `Reddeden Yetkili: {yetkili}`", 148 | "partnerMesaj": "`{sunucuAdi}` sunucusu sizinle partner olmak istiyor.\n\n> » Davet Kodu: `{inviteCode}`\n> » Sunucu Sahibi: `{sahip}`\n> » Yetkili: `{yetkili}`\n> » Kullanıcı Sayısı: `{memberCount}`\n> » Davet Bağlantısı: [lightpartner.xyz/i/{inviteCode}](https://lightpartner.xyz/i/{inviteCode})\n> » Sunucunun Oluşturulma Tarihi: `{opendate}`\n> » Sunucunun Toplam Partnerliği: `{partnerCount}`", 149 | "staffRoleSaved": "Partner sorumlusu rolü başarıyla ayarlandı.", 150 | "staffRoleError[1]": ":x: Sorumlu rolü zaten deaktif durumda, lütfen rol ayarladıktan sonra tekrar deneyiniz.", 151 | "staffRoleQuest[1]": "Sorumlu rolünü sıfırlamak istediğinizden emin misiniz? `(evet/hayır)`", 152 | "staffRoleReseted": "Sıfırlama isteği başarılı bir şekilde gerçekleştirildi.", 153 | "textChanged": "Partner yazısını başarılı bir şekilde ayarladınız.\n\nÖnizleme:```{text}```", 154 | "writeText": ":x: Bu komutu gerçekleştirebilmek için, bir yazı girmelisiniz.", 155 | "textDeActive": ":x: Partner yazısı deaktif durumdaymış gibi gözüküyor, lütfen bir yazı ayarladıktan sonra tekrar deneyiniz.", 156 | "partnerTextQuest": "Partner yazısını sıfırlamak istediğinizden emin misiniz? `(evet/hayır)`", 157 | "successReset": "Sıfırlama isteğini başarılı bir şekilde gerçekleştirdiniz.", 158 | "yetkiyok": "Bir sunucuda, {yetki} sahip değilim. Bu yüzden işlemi iptal ettim.", 159 | "thisYourServer": "Kendi sunucunuz ile partner olamazsınız.", 160 | "statusActive": "Partnerlik sistemini başarılı bir şekilde aktif hale getirdiniz.", 161 | "statusAlreadyDeActive": ":x: Partner durumu kapalı durumdaymış gibi gözüküyor.", 162 | "statusQuest": "Partnerlik sistemini kapatmak istediğinizden emin misiniz? `(evet/hayır)`\n**:exclamation: | Özel davet kodunuz mu var? Bu kötü! Sistemi kapattığınız anda özel davet kodunuz sıfırlanacaktır.**", 163 | "statusAlreadyActive": "Partnerlik sistemi aktif durumdaymış gibi gözüküyor.", 164 | "partnerReseted": "Partnerlik sistemini başarılı bir şekilde kapattınız..", 165 | "notTaggedChannel": ":x: Bu komut, bir kanal etiketlemeden kullanılamaz. Bir kanal etiketleyin ve tekrar deneyin.", 166 | "channelChanged[1]": "Partner kanalını başarılı bir şekilde ayarladınız. (<#{kanal}>)", 167 | "channelChanged[2]": "Log kanalını başarılı bir şekilde ayarladınız. (<#{kanal}>)", 168 | "resetAll?": "Ayarlanmış olan tüm partner datalarını sıfırlamak istediğinizden emin misiniz? `(evet/hayır)`", 169 | "datasDeleted": "Tüm partner verileriniz sıfırlandı.", 170 | "textWrite": "Partner durumunu açmak için ayarları yapmalısın.", 171 | "statusActiveNotChange": "Partner durumu aktifken bu işlemi gerçekleştiremezsiniz.", 172 | "durumDeaktif": "Partner durumunuz deaktif. Bu yüzden özel bir davet bağlantısı satın alamazsınız.", 173 | "gecersizSart": "Lütfen bir kullanıcı limiti giriniz.", 174 | "sartAyarlandi": "Partnerlik gönderebilecek sunucuların minimum kullanıcı sayısı **{limit}** olarak ayarlandı.", 175 | "sartKapali": "Partnerlik limit zaten kapalı durumda bu yüzden bu işlem iptal edildi.", 176 | "sartSoru": "Partnerlik limitini kapatmak istediğinizden emin misiniz? `(evet/hayır)`", 177 | "sartKapandi": "Partnerlik limiti başarıyla kapatıldı.", 178 | 179 | "kurulumTamamlandi": "Kurulum {author} tarafından başarıyla tamamlandı.", 180 | "sonradanDuzenle": "Bilgileri sonradan düzenlemek için `{p}partner` komudunu kullanın.", 181 | "textFull": "Yazının tam hali için tıkla!", 182 | "gecersizArgüman": "Geçersiz bir argüman girdiniz.", 183 | "taggRole": "Bir sorumlu rolü etiketleyiniz.", 184 | "writePartnerText": "Bir partner yazısı yazın.", 185 | "tagPartnerChannel": "Bir partner kanalı etiketleyin.", 186 | "tagLogChannel": "Bir log kanalı etiketleyin.", 187 | "durumuAccanmi": "Partnerlik durumunu açmak ister misiniz? - `(evet/hayır)`", 188 | "durumEvet": "evet", 189 | "durumHayır": "hayır", 190 | "aMinute": "Bir dakikadan az.", 191 | "kurulumYapilmiski": "Kurulum daha önceden yapıldığı için tekrar yapılamaz.", 192 | 193 | "yetersizLimit": "Bu çok kötü! Bu sunucunun minimum kullanıcı limiti **{limit}** olarak ayarlı, bu yüzden partnerlik isteği gönderemedim.", 194 | "fazlaRakam": "Girdiğiniz kullanıcı limiti **bu sunucunun kullanıcı sayısından büyük** olduğu için işlemi iptal ettim.", 195 | "search": { 196 | "members": "Kullanıcı", 197 | "title": "Light Partner - Partnerlik Sistemi", 198 | "footer": "Partnerlik durumu aktif olan sunucular listeleniyor.", 199 | "serverNotFound": ":pleading_face: Bu çok kötü! Partnerlik yapabileceğiniz bir sunucu bulunmuyor." 200 | } 201 | }, 202 | "quest": { 203 | "commandCanceled": ":x: Komut iptal edildi.", 204 | "timeout": ":x: Komut zaman aşımına uğradı.", 205 | "yes": "evet", 206 | "no": "hayır" 207 | }, 208 | "commands": { 209 | "ayarlar": { 210 | "name": "ayarlar", 211 | "desc": "Sunucu ayarlarını değiştirmenize yarar." 212 | }, 213 | "istatistik": { 214 | "name": "istatistik", 215 | "desc": "Botun istatistiğini gösterir." 216 | }, 217 | "partner": { 218 | "name": "partner", 219 | "desc": "Partnerlik ayarlarını yapmanızı sağlar." 220 | }, 221 | "partner-bul": { 222 | "name": "partner-bul", 223 | "desc": "Partnerlik durumu açık olan sunucuları listeler." 224 | }, 225 | "günlük-ödül": { 226 | "name": "günlük-ödül", 227 | "desc": "Günlük ödülünüzü alırsınız." 228 | }, 229 | "pay": { 230 | "name": "pay", 231 | "desc": "Bir kişiye coin gönderirsiniz." 232 | }, 233 | "bal": { 234 | "name": "hesap", 235 | "desc": "Hesap bilgilerinizi gösterir." 236 | }, 237 | "bug-bildir": { 238 | "name": "bug-bildir", 239 | "desc": "Botta bulduğunuz bug'u bildirirsiniz." 240 | }, 241 | "top": { 242 | "name": "top", 243 | "desc": "Coin sıralamasında ilk 10 kişiye bakarsınız." 244 | }, 245 | "ekledim": { 246 | "name": "ekledim", 247 | "desc": "Botu sunucunuza ekleyerek coin kazanın." 248 | }, 249 | "coinflip": { 250 | "name": "coinflip", 251 | "desc": "Yazı tura atarsınız." 252 | }, 253 | "kullanicibilgi": { 254 | "name": "kullanıcıbilgi", 255 | "desc": "Kullanıcı hakkında bilgi alırsınız." 256 | }, 257 | "sunucubilgi": { 258 | "name": "sunucubilgi", 259 | "desc": "Sunucu hakkında bilgi alırsınız." 260 | }, 261 | "ptb": { 262 | "name": "ptb", 263 | "desc": "Verilen görevi yaparak coin kazanabileceğiniz oyundur." 264 | }, 265 | "snake": { 266 | "name": "snake", 267 | "desc": "Coin kazanabileceğiniz yılan oyunudur." 268 | }, 269 | "kurulum": { 270 | "name": "kurulum", 271 | "desc": "Daha basit bir şekilde partner ayarlarını yapmanızı sağlar." 272 | } 273 | }, 274 | "coin": { 275 | "limit": "Maksimum 9999 coin transfer yapabilirsiniz!", 276 | "gecersizMiktar": "İşlem yapmak istediğiniz miktar geçerli değil!", 277 | "günlük": { 278 | "alindi": ":moneybag: **|** Hesabınıza **{miktar}** coin başarıyla eklendi.\n:timer: **|** Tekrar günlük ödül almak için **{time}** beklemelisin.", 279 | "suregecmeli": ":timer: **|** Tekrar günlük ödül almak için **{time}** beklemelisin." 280 | }, 281 | "gönderilecek": "Transfer edeceğiniz coin miktarını belirtmelisiniz.", 282 | "üyebelirt": "Coin transfer edilecek kullanıcıyı etiketlemelisiniz.", 283 | "gönderdi": "{user} adlı kullanıcıya {gönderilcek} coin transfer edildi.", 284 | "auhorerr": "Kendinize coin transfer edemezsiniz.", 285 | "boterr": "Bot hesaplara coin transfer edemezsiniz.", 286 | "sendeyok": "Hesabınızda {gönderilcek} coin bulunmuyor." 287 | }, 288 | "bugbildir": { 289 | "belirt": "Bildireceğin bug'u belirtmelisin!", 290 | "bildirdi": "Başarıyla bugu **Geliştirici** ekibime ilettim! \n Eğer bug düzeltilirse hesabınıza 25 coin eklenecektir." 291 | }, 292 | "code": { 293 | "args": { 294 | "bozdur": "bozdur" 295 | }, 296 | "invalidArgs[0]": ":x: Bozdurabileceğim bir kod girmelisin." 297 | }, 298 | "coinflip": { 299 | "args[0]": "Bir bahis miktarı girmelisin.", 300 | "args[1]": "Geçerli bir bahis miktarı girmelisin.", 301 | "args[2]": "Geçerli bir bahis miktarı girmelisin.", 302 | "args[3]": "Bahsinizin miktarı minimum 3 maksimum 50 olmalıdır.", 303 | "args[4]": "Hesabınızda **{coin}** coin bulunmuyor.", 304 | "flipping": ":coin: **|** Yazı tura atılıyor...", 305 | "youLost": ":x: **|** **{coin}** coin kaybettin**!**", 306 | "nothing": ":white_circle: **|** Hiçbir şey kazanmadın veya kaybetmedin**!**", 307 | "youWon": ":white_check_mark: **|** **{coin}** coin kazandın, tebrikler**!**" 308 | }, 309 | "ekledim": { 310 | "100ekle": "Bu komutu kullanmak için beni **100+** üyesi bulunan **2 sunucuya** eklemelisin.\nSenin eklediğin sunucusu sayısı; **{count}**", 311 | "kullandin": "Beni 2 sunucuya eklediğin için teşekkürler, hesabına **{coin}** miktar coin eklendi.", 312 | "kullanmissin": "Bu komutu yalnızca **1** defa kullanabilirsin." 313 | }, 314 | "sunucub": { 315 | "swadı": "Sunucu Adı:", 316 | "swsahib": "Sunucu Sahibi:", 317 | "swüye": "Sunucuda Bulunan Üye Sayısı", 318 | "kanal": "Kanal Sayısı:", 319 | "ektahrih": "Eklenme Tarihim:", 320 | "partner": "Toplam Partner Sayısı:", 321 | "premium": "Premium", 322 | "presüre": "Premium Süresi", 323 | "deactive": "DeAktif", 324 | "active": "Aktif" 325 | }, 326 | "kullanıcıb": { 327 | "kid": "Kullanıcı ID:", 328 | "kadi": "Kullanıcı Adı:", 329 | "ktag": "Kullanıcı Etiketi:", 330 | "kacilis": "Hesap Açılış Tarihi", 331 | "kekledigi": "Botu Eklediği Sunucu Sayısı", 332 | "premium": "Premium", 333 | "presüre": "Premium Süresi", 334 | "deactive": "DeAktif", 335 | "active": "Aktif" 336 | }, 337 | "premium": { 338 | "writeCode": "Bir premium aktivasyon kodu girmelisin.", 339 | "invalidCode": "Girdiğin aktivasyon kodu geçersiz.", 340 | "premiumActive": "Premimum sistemi **{serverName}** sunucusuna tanımlandı. Ve sunucu sahibine **1 aylık** premium kullanıcı pakedi tanımlandı.\n\n> • **Sunucu ID**: {serverID}\n> • **Premium Süresi**: 1 Ay\n> • **Sunucu Sahibi**: {ownerName}" 341 | } 342 | } -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | /*=======================================================================================*/ 2 | 3 | const Discord = require('discord.js'); 4 | const config = require('./config.js'); 5 | const client = new Discord.Client(); 6 | const moment = require('moment'); 7 | const express = require('express'); 8 | const router = express(); 9 | const fs = require('fs'); 10 | require('./reply.js') 11 | require('dotenv').config(); 12 | 13 | /*=======================================================================================*/ 14 | 15 | /** 16 | * Client'i siteye tanımlar. 17 | */ 18 | client.on('ready', () => { 19 | if (!global.client) { 20 | global.client = client; 21 | }; 22 | }); 23 | 24 | /*=======================================================================================*/ 25 | 26 | /** 27 | * Dil'e göre mesajları yükleme fonksiyonu. 28 | */ 29 | client.locale = lang => { 30 | try { 31 | return require('./lang/' + lang + '.json'); 32 | } catch { 33 | return require('./lang/tr-TR.json'); 34 | } 35 | }; 36 | 37 | /*=======================================================================================*/ 38 | 39 | /** 40 | * API'yi çalıştırır. 41 | */ 42 | require('./$_API/server.js')( 43 | Discord, 44 | client 45 | ); 46 | 47 | /*=======================================================================================*/ 48 | 49 | /** 50 | * @params {Array} names 51 | */ 52 | function loadUtils(names) { 53 | names.forEach(name => { 54 | require('./util/' + name + '.js')(Discord, client, config); 55 | }); 56 | }; 57 | 58 | /*=======================================================================================*/ 59 | 60 | /** 61 | * Sistem dosyalarını yükler. 62 | */ 63 | loadUtils([ 64 | "permissions", 65 | "shortcut", 66 | "commands", 67 | "events" 68 | ]); 69 | 70 | /*=======================================================================================*/ 71 | 72 | /** 73 | * Komut yenileme sistemi. 74 | */ 75 | client.reload = command => { 76 | return new Promise((resolve, reject) => { 77 | try { 78 | delete require.cache[require.resolve(`./commands/${command}`)]; 79 | let cmd = require(`./commands/${command}`); 80 | client.commands.delete(command); 81 | client.aliases.forEach((cmd, alias) => { 82 | if (cmd === command) client.aliases.delete(alias); 83 | }); 84 | client.commands.set(command, cmd); 85 | cmd.config.aliases.forEach(alias => { 86 | client.aliases.set(alias, cmd.config.name); 87 | }); 88 | resolve('"' + command + '" komutu başarıyla yüklendi!'); 89 | } catch (e) { 90 | reject(e.toString().includes('Cannot find module') ? 'Geçersiz komut adı yazdınız!': e); 91 | } 92 | }); 93 | }; 94 | 95 | /*=======================================================================================*/ 96 | 97 | /** 98 | * Database bağlanır. 99 | */ 100 | require('./database/connect.js')( 101 | client 102 | ); 103 | 104 | /*=======================================================================================*/ 105 | 106 | client.login(config.token).then(() => { 107 | console.log('(!) Token doğrulandı, giriş yapılıyor...'); 108 | }).catch(() => { 109 | console.error('(!) Token hatalı, kontrol ediniz...'); 110 | }); 111 | 112 | /*=======================================================================================*/ 113 | /** 114 | * Günlük ödülün süresi bitince kullanıcıya ait süreyi sıfırlar. 115 | */ 116 | const süreler = require('./database/models/süre.js') 117 | client.on('ready', async () => { 118 | setInterval(async () => { 119 | let datalar = await süreler.find() 120 | if(datalar.length <= 0) return 121 | datalar.forEach(async a => { 122 | let süre = a.ms - (Date.now() - a.Date) 123 | if(süre > 0) return 124 | await süreler.findOneAndDelete({ user: a.user }) 125 | }) 126 | }, 1500000) 127 | }) 128 | 129 | /*=======================================================================================*/ 130 | /** 131 | * 7 günlük özel davet kodu sistemidir. 132 | */ 133 | const sürelerr = require('./database/models/url-süre.js') 134 | const serverData = require('./database/models/server.js') 135 | client.on('ready', async () => { 136 | setInterval(async () => { 137 | let datalar = await sürelerr.find() 138 | if(datalar.length <= 0) return 139 | datalar.forEach(async a => { 140 | let süre = a.ms - (Date.now() - a.Date) 141 | if(süre > 0) return 142 | await serverData.updateOne({ guildID: a.guild }, {$set: { partner_inviteURL: idCreate(5) }}, {upsert: true}); 143 | await sürelerr.findOneAndDelete({ guild: a.guild }) 144 | }) 145 | }, 60000) 146 | function idCreate(length) { 147 | var result = ''; 148 | var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; 149 | var charactersLength = characters.length; 150 | for ( var i = 0; i < length; i++ ) { 151 | result += characters.charAt(Math.floor(Math.random() * charactersLength)); 152 | } 153 | return result; 154 | } 155 | }) 156 | 157 | /*=======================================================================================*/ 158 | /** 159 | * 30 günlük premium(sunucu) sistemidir. 160 | */ 161 | const timess = require('./database/models/server.js') 162 | client.on('ready', async () => { 163 | setInterval(async () => { 164 | let datalar = await timess.find({ premium_durum: "Aktif" }) 165 | if(datalar.length <= 0) return 166 | datalar.forEach(async a => { 167 | let süre = a.premium_ms - (Date.now() - a.premium_Date) 168 | if(süre > 0) return 169 | await timess.updateOne({ guildID: a.guild }, {$set: { premium_durum: null, premium_davetkodu: null }}, {upsert: true}); 170 | }) 171 | }, 1500000) 172 | }) 173 | 174 | 175 | /*=======================================================================================*/ 176 | /** 177 | * 30 günlük premium(kullanıcı) sistemidir. 178 | */ 179 | const times = require('./database/models/pre.js') 180 | client.on('ready', async () => { 181 | setInterval(async () => { 182 | let datalar = await times.find() 183 | if(datalar.length <= 0) return 184 | datalar.forEach(async a => { 185 | let süre = a.ms - (Date.now() - a.Date) 186 | if(süre > 0) return 187 | await times.findOneAndDelete({ user: a.user }) 188 | }) 189 | }, 1500000) 190 | }) 191 | 192 | 193 | /*=======================================================================================*/ 194 | 195 | /** 196 | * Easter Egg Messages 197 | */ 198 | client.on("message", message => { 199 | // ÇöpPartner'e Gönderme 200 | let engelliNames = [ 'bilaltim', 'bilaltım', 'bilaltm' ] 201 | if (engelliNames.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 202 | message.react("♿"); 203 | }; 204 | // 31 SJSJ 205 | if (message.content == "31") { 206 | message.inlineReply("Ne komik şeysin lan sen öyle :)") 207 | }; 208 | // Lord of the Rings'e Gönderme 209 | let lotr = [ 'mellon', 'mellonn', 'mellonnn' ]; 210 | if (lotr.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 211 | message.react("🧝"); 212 | }; 213 | 214 | // HP'ye Gönderme 215 | let hp = [ 'leviosa', 'wingardium' ]; 216 | if(message.content === "sunday") { 217 | message.inlineReply("> No mail on Sundays.") 218 | }; 219 | if(message.content === "eyes") { 220 | message.inlineReply("> You have your mother's eyes.") 221 | } 222 | if(message.content === "friends") { 223 | message.inlineReply("> What a lovely place to be with friends!") 224 | }; 225 | if (hp.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 226 | message.react("🪶"); 227 | }; 228 | 229 | // V'e Gönderme 230 | let v = [ "why won't you die", "why wont you die" ]; 231 | if (v.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 232 | message.inlineReply('> Beneath this mask there is more than flesh. Beneath this mask there is an idea, Mr. ' + message.author.username + ', and ideas are bulletproof.') 233 | }; 234 | 235 | // Terminatör'e Gönderme 236 | let terminator = [ 'terminatör', 'terminator' ]; 237 | if (terminator.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 238 | message.react("👍"); 239 | }; 240 | 241 | // Atatürk 242 | let atatürk = [ '1938', '1881', 'atam', 'atatürk', 'mka', 'm.k.a' ]; 243 | if (atatürk.some(a => message.content.toLowerCase().includes(a.toLowerCase()))) { 244 | message.react("♾️"); 245 | }; 246 | }); 247 | 248 | /*=======================================================================================*/ 249 | 250 | /** 251 | * Server Join/Leave Datas 252 | */ 253 | const webhook = new Discord.WebhookClient("841769902322614293","oPugzkSD3Gb2BYFmXJ84quBZpkDKvBIRiuLFRknOAGc8wTmu_rP0oA0xfjWP4ajMCEQ4"); 254 | 255 | client.on('guildDelete', async guild => { 256 | const dbmodel = require("./database/models/server.js"); 257 | let found = await dbmodel.findOne({guildID: guild.id}); 258 | if(found) { 259 | await dbmodel.updateOne({ guildID: message.guild.id}, {$set: { partner_durum: "DeAktif", partner_inviteURL: null } }); 260 | } 261 | const embed = new Discord.MessageEmbed(); 262 | embed.setTitle("Olamaz, bir sunucdan atıldım.") 263 | embed.setAuthor(guild.name, guild.iconURL({dynamic: true})) 264 | embed.setThumbnail(client.user.avatarURL()) 265 | embed.addField("Sunucu Adı", guild.name) 266 | embed.addField("Sunucunun Kullanıcı Sayısı", guild.memberCount) 267 | embed.setColor("RED") 268 | webhook.send(embed) 269 | }) 270 | 271 | client.on('guildCreate', async guild => { 272 | const embed = new Discord.MessageEmbed(); 273 | embed.setTitle("Heyyo, bir sunucuya eklendim.") 274 | embed.setAuthor(guild.name, guild.iconURL({dynamic: true})) 275 | embed.setThumbnail(client.user.avatarURL()) 276 | embed.addField("Sunucu Adı", guild.name) 277 | embed.addField("Sunucunun Kullanıcı Sayısı", guild.memberCount) 278 | embed.setColor("GREEN") 279 | webhook.send(embed) 280 | }) 281 | 282 | var days = ['Pazar', 'Pazartesi', 'Sali', 'Carsamba', 'Persembe', 'Cuma', 'Cumartesi']; 283 | client.on('guildMemberAdd', async member => { 284 | let model = require("./database/models/stockDatas.js"); 285 | let gün = days[new Date().getDay()].toLowerCase(); 286 | await model.findOneAndUpdate({ 287 | guild: member.guild.id 288 | }, { 289 | $inc: { 290 | [`${gün}.+`]: 1 291 | } 292 | }, { upsert: true }); 293 | }); 294 | 295 | client.on('guildMemberRemove', async member => { 296 | let model = require("./database/models/stockDatas.js"); 297 | let gün = days[new Date().getDay()].toLowerCase(); 298 | await model.findOneAndUpdate({ 299 | guild: member.guild.id 300 | }, { 301 | $inc: { 302 | [`${gün}.-`]: 1 303 | } 304 | }, { upsert: true }); 305 | }) 306 | 307 | const { CronJob } = require('cron') 308 | const database = require('./database/models/stockDatas.js'); 309 | client.on('ready', async () => { 310 | var resetStats = new CronJob('00 00 00 * * 1', async function() { 311 | let x = await database.find() 312 | await x.forEach(async a => { 313 | await database.deleteOne({ guild: a.guild }); 314 | }) 315 | }, null, true, 'Europe/Istanbul'); 316 | resetStats.start(); 317 | }) 318 | 319 | /*=======================================================================================*/ 320 | 321 | 322 | /*=======================================================================================*/ 323 | 324 | /** 325 | * Partner Post System 326 | */ 327 | const ppdata = require("./database/models/partner-ol.js"); 328 | const pdata = require("./database/models/server.js"); 329 | let cData = require("./database/models/coin.js"); 330 | let cGecmis = require("./database/models/coin-geçmişi.js"); 331 | client.on("clickButton", async (button) => { 332 | button.defer(); 333 | let findServer = await ppdata.findOne({ message: button.message.id }); 334 | if(!findServer) return; 335 | if(button.clicker.user.bot) return; 336 | let serverOne = client.guilds.cache.get(findServer.guildID); 337 | let serverTwo = client.guilds.cache.get(findServer.karsiSunucu); 338 | let serverDataOne = await pdata.findOne({ guildID: findServer.guildID }); 339 | let serverDataTwo = await pdata.findOne({ guildID: findServer.karsiSunucu }); 340 | let langOne = client.locale(`${serverDataOne.language}`)['partner']; 341 | let langTwo = client.locale(`${serverDataTwo.language}`)['partner']; 342 | if(button.id === "kabul") { 343 | if(!serverOne.me.hasPermission('MENTION_EVERYONE')) { 344 | client.channels.cache.get(serverDataOne.partner_log).error(langOne['yetkiyok'].replace("{yetki}", "`MENTION_EVERYONE`")); 345 | client.channels.cache.get(serverDataTwo.partner_log).error(langTwo['yetkiyok'].replace("{yetki}", "`MENTION_EVERYONE`")); 346 | return; 347 | } 348 | if(!serverTwo.me.hasPermission('MENTION_EVERYONE')) { 349 | client.channels.cache.get(serverDataOne.partner_log).error(langOne['yetkiyok'].replace("{yetki}", "`MENTION_EVERYONE`")); 350 | client.channels.cache.get(serverDataTwo.partner_log).error(langTwo['yetkiyok'].replace("{yetki}", "`MENTION_EVERYONE`")); 351 | return; 352 | } 353 | if(!serverOne.me.hasPermission('SEND_MESSAGE')) { 354 | client.channels.cache.get(serverDataOne.partner_log).error(langOne['yetkiyok'].replace("{yetki}", "`SEND_MESSAGE`")); 355 | client.channels.cache.get(serverDataTwo.partner_log).error(langTwo['yetkiyok'].replace("{yetki}", "`SEND_MESSAGE`")); 356 | return; 357 | } 358 | if(!serverTwo.me.hasPermission('SEND_MESSAGE')) { 359 | client.channels.cache.get(serverDataOne.partner_log).error(langOne['yetkiyok'].replace("{yetki}", "`SEND_MESSAGE`")); 360 | client.channels.cache.get(serverDataTwo.partner_log).error(langTwo['yetkiyok'].replace("{yetki}", "`SEND_MESSAGE`")); 361 | return; 362 | } 363 | let everyone; 364 | if (serverDataOne.partner_text.includes('@' + 'everyone')) everyone = true 365 | else false; 366 | let everyone2; 367 | if (serverDataTwo.partner_text.includes('@' + 'everyone')) everyone2 = true 368 | else false; 369 | if(everyone === true){ 370 | client.channels.cache.get(serverDataOne.partner_kanal).send(serverDataTwo.partner_text).catch(() => {}); 371 | } else { 372 | client.channels.cache.get(serverDataOne.partner_kanal).send(serverDataTwo.partner_text + '\n@everyone & @here').catch(() => {}); 373 | } 374 | if(everyone2 === true){ 375 | client.channels.cache.get(serverDataTwo.partner_kanal).send(serverDataOne.partner_text).catch(() => {}); 376 | } else { 377 | client.channels.cache.get(serverDataTwo.partner_kanal).send(serverDataOne.partner_text + '\n@everyone & @here').catch(() => {}); 378 | } 379 | await cData.findOneAndUpdate({userID: findServer.author }, {$inc: {amount: 3 }}, { upsert: true }) 380 | await cData.findOneAndUpdate({userID: button.clicker.user.id }, {$inc: {amount: 3 }}, { upsert: true }) 381 | await pdata.findOneAndUpdate({guildID: serverDataOne.guildID }, {$inc: { partner_partnerCount: 1 }}, { upsert: true }) 382 | await pdata.findOneAndUpdate({guildID: serverDataTwo.guildID }, {$inc: { partner_partnerCount: 1 }}, { upsert: true }) 383 | await cGecmis.findOneAndUpdate({userID: button.clicker.user.id }, {$push: {gecmis: { count: 3, user: "{system}", reason: 'Partner', Date: Date.now() } }}, { upsert: true}); 384 | await cGecmis.findOneAndUpdate({userID: findServer.author }, {$push: {gecmis: { count: 3, user: "{system}", reason: 'Partner', Date: Date.now() } }}, { upsert: true}); 385 | client.channels.cache.get(serverDataTwo.partner_log).messages.fetch(button.message.id).then(message => message.delete()) 386 | const successOne = new Discord.MessageEmbed() 387 | .setDescription(`${langOne['partneroldu'].replace(`{memberCount}`, serverTwo.memberCount).replace(`{name}`, serverTwo.name).replace(`{yetkili}`, button.clicker.user.username)}`) 388 | .setColor("GREEN") 389 | .setAuthor(client.locale(`${serverDataOne.language}`)['bot']['header_success']); 390 | client.channels.cache.get(serverDataOne.partner_log).send({ embed: successOne, buttons: [] }) 391 | const successTwo = new Discord.MessageEmbed() 392 | .setDescription(`${langTwo['partneroldu'].replace(`{memberCount}`, serverOne.memberCount).replace(`{name}`, serverOne.name).replace(`{yetkili}`, button.clicker.user.username)}`) 393 | .setColor("GREEN") 394 | .setAuthor(client.locale(`${serverDataTwo.language}`)['bot']['header_success']); 395 | client.channels.cache.get(serverDataTwo.partner_log).send({ embed: successTwo, buttons: [] }) 396 | await ppdata.deleteOne({ message: findServer.message, author: findServer.author, guildID: findServer.guildID, karsiSunucu: findServer.karsiSunucu }); 397 | 398 | } else if(button.id === "red") { 399 | client.channels.cache.get(serverDataTwo.partner_log).messages.fetch(button.message.id).then(message => message.delete()) 400 | const errorOne = new Discord.MessageEmbed() 401 | .setDescription(`${langOne['partnerolmadi'].replace(`{memberCount}`, serverTwo.memberCount).replace(`{name}`, serverTwo.name).replace(`{yetkili}`, button.clicker.user.username)}`) 402 | .setColor("RED") 403 | .setAuthor(client.locale(`${serverDataOne.language}`)['bot']['header_error']); 404 | client.channels.cache.get(serverDataOne.partner_log).send({ embed: errorOne, buttons: [] }) 405 | const errorTwo = new Discord.MessageEmbed() 406 | .setDescription(`${langTwo['partnerolmadi'].replace(`{memberCount}`, serverOne.memberCount).replace(`{name}`, serverOne.name).replace(`{yetkili}`, button.clicker.user.username)}`) 407 | .setColor("RED") 408 | .setAuthor(client.locale(`${serverDataTwo.language}`)['bot']['header_error']); 409 | client.channels.cache.get(serverDataTwo.partner_log).send({ embed: errorTwo, buttons: [] }) 410 | await ppdata.deleteOne({ message: findServer.message, author: findServer.author, guildID: findServer.guildID, karsiSunucu: findServer.karsiSunucu }); 411 | 412 | } 413 | }) 414 | /*=======================================================================================*/ 415 | 416 | require('discord-buttons')(client); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "light-partner", 3 | "version": "0.0.1", 4 | "description": "Light Partner - Discord Bot", 5 | "main": "main.js", 6 | "scripts": { 7 | "start": "node main.js" 8 | }, 9 | "dependencies": { 10 | "body-parser": "^1.19.0", 11 | "cheerio": "^1.0.0-rc.9", 12 | "connect-redis": "^5.2.0", 13 | "cors": "^2.8.5", 14 | "cron": "^1.8.2", 15 | "crypto-js": "^4.0.0", 16 | "discord-buttons": "^2.4.1", 17 | "discord.js": "^12.5.3", 18 | "dotenv": "^10.0.0", 19 | "ejs": "^3.1.5", 20 | "express": "^4.17.1", 21 | "express-session": "^1.17.1", 22 | "moment": "^2.29.1", 23 | "moment-duration-format": "^2.3.2", 24 | "moment-timezone": "^0.5.31", 25 | "mongoose": "^5.12.7", 26 | "node-fetch": "^2.6.1", 27 | "parse-ms": "^3.0.0", 28 | "passport": "^0.4.1", 29 | "passport-discord": "^0.1.4", 30 | "redis": "^3.1.2", 31 | "request": "^2.88.2", 32 | "socket.io": "^4.1.2", 33 | "socket.io-client": "^4.1.2" 34 | }, 35 | "engines": { 36 | "node": "12.x" 37 | }, 38 | "repository": { 39 | "url": "https://github.com/clqu/light" 40 | }, 41 | "license": "GPL-2.0", 42 | "keywords": [ 43 | "light", 44 | "partner" 45 | ], 46 | "author": "Swoth & Loiren & Clqu" 47 | } 48 | -------------------------------------------------------------------------------- /reply.js: -------------------------------------------------------------------------------- 1 | const { APIMessage, Structures } = require("discord.js"); 2 | 3 | class Message extends Structures.get("Message") { 4 | async inlineReply(content, options) { 5 | const mentionRepliedUser = typeof ((options || content || {}).allowedMentions || {}).repliedUser === "undefined" ? true : ((options || content).allowedMentions).repliedUser; 6 | delete ((options || content || {}).allowedMentions || {}).repliedUser; 7 | 8 | const apiMessage = content instanceof APIMessage ? content.resolveData() : APIMessage.create(this.channel, content, options).resolveData(); 9 | Object.assign(apiMessage.data, { message_reference: { message_id: this.id } }); 10 | 11 | if (!apiMessage.data.allowed_mentions || Object.keys(apiMessage.data.allowed_mentions).length === 0) 12 | apiMessage.data.allowed_mentions = { parse: ["users", "roles", "everyone"] }; 13 | if (typeof apiMessage.data.allowed_mentions.replied_user === "undefined") 14 | Object.assign(apiMessage.data.allowed_mentions, { replied_user: mentionRepliedUser }); 15 | 16 | if (Array.isArray(apiMessage.data.content)) { 17 | return Promise.all(apiMessage.split().map(x => { 18 | x.data.allowed_mentions = apiMessage.data.allowed_mentions; 19 | return x; 20 | }).map(this.inlineReply.bind(this))); 21 | } 22 | 23 | const { data, files } = await apiMessage.resolveFiles(); 24 | return this.client.api.channels[this.channel.id].messages 25 | .post({ data, files }) 26 | .then(d => this.client.actions.MessageCreate.handle(d).message); 27 | } 28 | } 29 | 30 | Structures.extend("Message", () => Message); -------------------------------------------------------------------------------- /shard.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const client = new Discord.Client(); 3 | const config = require("./config.js"); 4 | const express = require('express'); 5 | const router = express(); 6 | 7 | const LightPartner = new Discord.ShardingManager('./main.js', { 8 | totalShards: 2, 9 | token: config.token 10 | }); 11 | 12 | LightPartner.on('shardCreate', shard => { 13 | console.log(`(!) Shard başlatıldı: #${shard.id+1}`) 14 | shard.on('ready', () => { 15 | console.log(`(!) Shard hazır: #${shard.id+1}`); 16 | }) 17 | shard.on('disconnect', (a, b) => { 18 | console.log(`(!) Shard bağlantısı koptu: #${shard.id+1}`); 19 | }) 20 | shard.on('reconnecting', (a, b) => { 21 | console.log(`(!) Shard yeniden bağlanıyor: #${shard.id+1}`); 22 | }) 23 | shard.on('death', (a, b) => { 24 | console.log(`(!) Shard çöktü: #${shard.id+1}`); 25 | }) 26 | }); 27 | 28 | LightPartner.spawn(); -------------------------------------------------------------------------------- /start.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | color a 3 | title Light Partner 4 | :a 5 | node main.js 6 | goto a -------------------------------------------------------------------------------- /util/commands.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client, config) => { 2 | client.commands = new Discord.Collection(); 3 | client.aliases = new Discord.Collection(); 4 | 5 | require('fs').readdir('./commands', (err, files) => { 6 | if (files) { 7 | let loadedCommands = 0; 8 | console.log(`[Light Partner] ${files.length} adet komut bulundu, yükleniyor...`); 9 | files.forEach(file => { 10 | loadedCommands++ 11 | let command = require(`${process.cwd()}/${'./commands'}/${file}`); 12 | 13 | function kill() { 14 | throw new Error('[HATA] Komut dosyası yapısında hata mevcut!'); 15 | }; 16 | 17 | if (!command || typeof command != 'object') return kill(); 18 | if (!command.run || !command.config) return kill(); 19 | if (typeof command.run != 'function') return kill(); 20 | if (typeof command.config != 'object') return kill(); 21 | if (typeof command.config.name != 'string') return kill(); 22 | if (!['array', 'object'].includes(typeof command.config.aliases)) return kill(); 23 | if (!['array', 'object'].includes(typeof command.config.perms)) return kill(); 24 | if (typeof command.config.enabled != 'boolean') return kill(); 25 | 26 | client.commands.set(command.config.name, command); 27 | command.config.aliases.forEach(alias => client.aliases.set(alias, command.config.name)); 28 | if (loadedCommands == files.length) console.log(`[Light Partner] Komutlar başarıyla yüklendi! (${files.length})`); 29 | }); 30 | }; 31 | }); 32 | }; -------------------------------------------------------------------------------- /util/events.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client, config) => { 2 | require('fs').readdir('./events', (err, files) => { 3 | if (files) { 4 | let loadedEvents = 0; 5 | console.log(`[Light Partner] ${files.length} adet event bulundu, yükleniyor...`); 6 | files.forEach(file => { 7 | loadedEvents++ 8 | require(`${process.cwd()}/${'./events'}/${file}`)(Discord, client, config); 9 | if (loadedEvents == files.length) console.log(`[Light Partner] Eventlar başarıyla yüklendi! (${files.length})`); 10 | }); 11 | }; 12 | }); 13 | }; -------------------------------------------------------------------------------- /util/permissions.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client, config) => { 2 | client.permission = (message, perms) => { 3 | let s = true; 4 | if (!message.guild || !['object', 'array'].includes(typeof perms)) return; 5 | let userPerms = new Discord.Permissions(message.member.permissions || 0).toArray(); 6 | 7 | for (let i = 0; i < perms.length; i++) { 8 | if (perms[i] == 'DEVELOPER') { 9 | if (!config.developers.includes(message.author.id)) s = false; 10 | } else if (perms[i] == 'OWNER') { 11 | if (message.guild.ownerID != message.author.id) s = false; 12 | } else { 13 | if (!userPerms.includes(perms[i])) s = false; 14 | }; 15 | }; 16 | 17 | return s; 18 | }; 19 | }; -------------------------------------------------------------------------------- /util/shortcut.js: -------------------------------------------------------------------------------- 1 | module.exports = (Discord, client, config) => { 2 | const { MessageEmbed } = require("discord.js") 3 | 4 | const embedd = new MessageEmbed(); 5 | Discord.Channel.prototype.embed = function (mesaj, { color, title, author, fields, footer, image, thumbnail, timestamp}) { 6 | if(timestamp) embedd.setTimestamp(); 7 | if(color) embedd.setColor(color) 8 | if(title) embedd.setTitle(title) 9 | if(author) embedd.setAuthor(author[0], author[1]) 10 | if(footer) embedd.setFooter(footer[0], footer[1]) 11 | if(image) embedd.setImage(image) 12 | if(thumbnail) embedd.setThumbnail(thumbnail) 13 | if(mesaj) embedd.setDescription(mesaj) 14 | return this.send(embedd); 15 | }; 16 | 17 | const embed = new MessageEmbed(); 18 | Discord.Channel.prototype.error = function (mesaj) { 19 | embed.setDescription(mesaj) 20 | embed.setColor("RED") 21 | embed.setAuthor(client.locale(client[`serverData_${this.guild.id}`].language)['bot']['header_error']) 22 | return this.send(embed); 23 | }; 24 | 25 | Discord.Channel.prototype.success = function (mesaj) { 26 | embed.setDescription(mesaj) 27 | embed.setColor("GREEN") 28 | embed.setAuthor(client.locale(client[`serverData_${this.guild.id}`].language)['bot']['header_success']) 29 | return this.send(embed) 30 | }; 31 | Discord.Channel.prototype.areYouSure = function (mesaj) { 32 | embed.setDescription(mesaj) 33 | embed.setColor("BLUE") 34 | embed.setAuthor(client.locale(client[`serverData_${this.guild.id}`].language)['bot']['header_quest']) 35 | return this.send(embed); 36 | }; 37 | 38 | }; -------------------------------------------------------------------------------- /watch.json: -------------------------------------------------------------------------------- 1 | { 2 | "install": { 3 | "include": [ 4 | "^package\\.json$", 5 | "^\\.env$" 6 | ] 7 | }, 8 | "restart": { 9 | "exclude": [ 10 | "^public/", 11 | "^dist/", 12 | "\\.js$", 13 | "\\.coffee$", 14 | "\\.json" 15 | ] 16 | } 17 | } --------------------------------------------------------------------------------