├── json.sqlite ├── baslat.bat ├── ayarlar.json ├── util └── eventLoader.js ├── events ├── ready.js └── message.js ├── README.md └── server.js /json.sqlite: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /baslat.bat: -------------------------------------------------------------------------------- 1 | echo off 2 | color 0f 3 | cls 4 | :a 5 | node server.js 6 | goto a 7 | -------------------------------------------------------------------------------- /ayarlar.json: -------------------------------------------------------------------------------- 1 | { 2 | "prefix": ".", 3 | "sahip": "311184536379719680", 4 | "token": "SUPER_SECRET_TOKEN_HERE" 5 | } 6 | -------------------------------------------------------------------------------- /util/eventLoader.js: -------------------------------------------------------------------------------- 1 | const reqEvent = (event) => require(`../events/${event}`); 2 | module.exports = client => { 3 | client.on('ready', () => reqEvent('ready')(client)); 4 | client.on('message', reqEvent('message')); 5 | }; 6 | -------------------------------------------------------------------------------- /events/ready.js: -------------------------------------------------------------------------------- 1 | module.exports = client => { 2 | client.user.setPresence({activity: {name: "ern#2088 ❤️", type: "PLAYING"}, status: "dnd"}); 3 | }; 4 | 5 | //---------------------Burada sadece "name:" kısmını editle------------------------------ 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## discord.js-altyapı by ern#2088 2 | Discord.JS'ye yeni başlayanlar için boş altyapı (v12) 3 | 4 | # Önemli 5 | 6 | - Komut ekleyeceğiniz zaman "**komutlar**" adında bir klasör oluşturup onun içinde **komutadı.js** şeklinde js dosyası kurarak başlayabilirsiniz. 7 | 8 | - Events klasörünün içindeki **ready.js** dosyasının içinden Bot'un Durum'unu değiştirebilirsiniz. 9 | 10 | ================= 11 | 12 | Coded by ern#2088 13 | 14 | ================= 15 | -------------------------------------------------------------------------------- /events/message.js: -------------------------------------------------------------------------------- 1 | const ayarlar = require("../ayarlar.json"); 2 | module.exports = message => { 3 | let client = message.client; 4 | if (!message.content.startsWith(ayarlar.prefix)) return; 5 | let command = message.content.toLowerCase().split(" ")[0].slice(ayarlar.prefix.length) 6 | let params = message.content.split(" ").slice(1) 7 | let perms = client.elevation(message); 8 | let cmd; 9 | if (client.commands.has(command)) { 10 | cmd = client.commands.get(command); 11 | } else if (client.aliases.has(command)) { 12 | cmd = client.commands.get(client.aliases.get(command)); 13 | }; 14 | if (cmd) { 15 | if (perms < cmd.conf.permLevel) return; 16 | cmd.run(client, message, params, perms); 17 | }; 18 | }; 19 | 20 | //----------BURAYI KURCALAMA------------------ 21 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | const Discord = require('discord.js'); 2 | const client = new Discord.Client(); 3 | const ayarlar = require('./ayarlar.json'); 4 | const chalk = require('chalk'); 5 | const fs = require('fs'); 6 | const moment = require('moment'); 7 | require('./util/eventLoader.js')(client); 8 | var prefix = ayarlar.prefix; 9 | 10 | const log = message => { 11 | console.log(`${message}`); 12 | }; 13 | 14 | client.commands = new Discord.Collection(); 15 | client.aliases = new Discord.Collection(); 16 | fs.readdir('./komutlar/', (err, files) => { 17 | if (err) console.error(err); 18 | log(`${files.length} komut yüklenecek.`); 19 | files.forEach(f => { 20 | let props = require(`./komutlar/${f}`); 21 | log(`Yüklenen komut: ${props.help.name}.`); 22 | client.commands.set(props.help.name, props); 23 | props.conf.aliases.forEach(alias => { 24 | client.aliases.set(alias, props.help.name); 25 | }); 26 | }); 27 | }); 28 | 29 | 30 | 31 | 32 | client.reload = command => { 33 | return new Promise((resolve, reject) => { 34 | try { 35 | delete require.cache[require.resolve(`./komutlar/${command}`)]; 36 | let cmd = require(`./komutlar/${command}`); 37 | client.commands.delete(command); 38 | client.aliases.forEach((cmd, alias) => { 39 | if (cmd === command) client.aliases.delete(alias); 40 | }); 41 | client.commands.set(command, cmd); 42 | cmd.conf.aliases.forEach(alias => { 43 | client.aliases.set(alias, cmd.help.name); 44 | }); 45 | resolve(); 46 | } catch (e) { 47 | reject(e); 48 | } 49 | }); 50 | }; 51 | 52 | client.load = command => { 53 | return new Promise((resolve, reject) => { 54 | try { 55 | let cmd = require(`./komutlar/${command}`); 56 | client.commands.set(command, cmd); 57 | cmd.conf.aliases.forEach(alias => { 58 | client.aliases.set(alias, cmd.help.name); 59 | }); 60 | resolve(); 61 | } catch (e) { 62 | reject(e); 63 | } 64 | }); 65 | }; 66 | 67 | 68 | 69 | 70 | client.unload = command => { 71 | return new Promise((resolve, reject) => { 72 | try { 73 | delete require.cache[require.resolve(`./komutlar/${command}`)]; 74 | let cmd = require(`./komutlar/${command}`); 75 | client.commands.delete(command); 76 | client.aliases.forEach((cmd, alias) => { 77 | if (cmd === command) client.aliases.delete(alias); 78 | }); 79 | resolve(); 80 | } catch (e) { 81 | reject(e); 82 | } 83 | }); 84 | }; 85 | 86 | //---------------MESAJLARA GERİ CEVAP VERİYOR----------------------------------------- 87 | client.setMaxListeners(30) //10 dan fazla koyunca uyarı vermesini engelliyor. 88 | 89 | client.on("message", message => { 90 | if (message.author.bot || message.channel.tpye === "dm") return; 91 | if (message.content.toLowerCase() === "sa") { 92 | message.channel.send(`${message.author} as`); 93 | //${message.author} komutu kullanan kişiyi etiketliyor. message.reply yerine kullanabilirsin. 94 | }; 95 | }); 96 | 97 | //------------------------------------------------------------------------------------------ 98 | 99 | client.elevation = message => { 100 | if (!message.guild) { 101 | return; 102 | } 103 | let permlvl = 0; 104 | if (message.member.hasPermission("BAN_MEMBERS")) permlvl = 2; 105 | if (message.member.hasPermission("ADMINISTRATOR")) permlvl = 3; 106 | if (message.author.id === ayarlar.sahip) permlvl = 4; 107 | return permlvl; 108 | }; 109 | 110 | var regToken = /[\w\d]{24}\.[\w\d]{6}\.[\w\d-_]{27}/g; 111 | // client.on('debug', e => { 112 | // console.log(chalk.bgBlue.green(e.replace(regToken, 'that was redacted'))); 113 | // }); 114 | 115 | client.on('warn', e => { 116 | console.log(chalk.bgYellow(e.replace(regToken, 'that was redacted'))); 117 | }); 118 | 119 | client.on('error', e => { 120 | console.log(chalk.bgRed(e.replace(regToken, 'that was redacted'))); 121 | }); 122 | 123 | client.login(ayarlar.token); // tokeni ayarlar.json a yaz. 124 | --------------------------------------------------------------------------------