const Discord = require('discord.js'); const request = require('node-superfetch'); const db = require('quick.db'); const { stripIndents } = require('common-tags'); const snekfetch = require("snekfetch"); const ark = ["renk", "color"] const arm = ["resim", "image"] const reset = ['sıfırla', 'reset'] const saydam = ['saydamlaştır', 'saydam'] const award = ['ödül', 'ödüller', 'award', 'reward', 'prize'] exports.run = async (client, msg, args) => { if(ark.includes(args[0])) { if(reset.includes(args[1])) { if(!db.has(`${msg.author.id}.renk`)) { const embed = new Discord.RichEmbed() .setDescription("Renk değiştirilmemiş neyi sıfırlayacaksın!") .setColor("RANDOM") msg.channel.send({embed}) return } db.delete(`${msg.author.id}.renk`) const embed = new Discord.RichEmbed() .setDescription("Renk başarıyla sıfırlandı!") .setColor("RANDOM") msg.channel.send({embed}) return } if(!args[1]) { const embed = new Discord.RichEmbed() .setDescription("Bir renk kodu veya `sıfırla` yazmalısın!") .setFooter("Başına # koymayınız!") .setColor("RANDOM") msg.channel.send({embed}) return } if(args[1].length !== 6) { const embed = new Discord.RichEmbed() .setDescription("Renk kodları 6 hane olur!") .setFooter("Başına # koymayınız!") .setColor("RANDOM") msg.channel.send({embed}) return } db.set(`${msg.author.id}.renk`, args[1]) var Canvas = require('canvas') var canvas = Canvas.createCanvas(150, 150) var ctx = canvas.getContext('2d'); ctx.fillStyle = `#${args[1]}`; ctx.fill() ctx.fillRect(0, 0, 150, 150) const embed = new Discord.RichEmbed() .setAuthor("Ayarlanan Renk: #{renk}".replace("{renk}", args[1].toUpperCase())) .setImage(`attachment://renk.png`) .setColor("RANDOM") msg.channel.send({embed, files:[{attachment:canvas.toBuffer(),name:"renk.png"}]}) return } if(arm.includes(args[0])) { if(reset.includes(args[1])) { if(!db.has(`${msg.author.id}.resim`)) { const embed = new Discord.RichEmbed() .setDescription("Ayarlı bir resim yok neyi sıfırlayacaksın!") .setColor("RANDOM") msg.channel.send({embed}) return } db.delete(`${msg.author.id}.resim`) const embed = new Discord.RichEmbed() .setDescription("Resim başarıyla sıfırlandı!") .setColor("RANDOM") msg.channel.send({embed}) return } if(!args[1]) { const embed = new Discord.RichEmbed() .setDescription("Ayarlamak istediğiniz resmin linkini veya `sıfırla` yazınız!") .setFooter("NOT: Resim linki http veya https ile başlamalı!") .setColor("RANDOM") msg.channel.send({embed}) return } if(!args[1].startsWith('http')) { const embed = new Discord.RichEmbed() .setDescription("Resim linki http veya https ile başlamalı!") .setColor("RANDOM") msg.channel.send({embed}) return } db.set(`${msg.author.id}.resim`, args[1]) const embed = new Discord.RichEmbed() .setAuthor("Resim başarıyla ayarlandı!") .setImage(args[1]) .setColor("RANDOM") msg.channel.send({embed}) return } if (award.includes(args[0])) { if (!msg.member.hasPermission("MANAGE_ROLES")) { const embed = new Discord.RichEmbed() .setColor("RANDOM") .setDescription("Bu komutu kullanabilmek için **Rolleri Yönet** iznine sahip olmalısın!") msg.channel.send({embed}) return } if(reset.includes(args[1])) { if(!db.has(`roll_${msg.guild.id}`)) { if (!db.has(`rollss_${msg.guild.id}`)) { const embed = new Discord.RichEmbed() .setDescription("Rol ödülleri sistemi sıfırlanamıyor çünkü bu sistem aktif edilmemiş!") .setColor("RANDOM") msg.channel.send({embed}) return }} db.delete(`roll_${msg.guild.id}`) db.delete(`rollss_${msg.guild.id}`) const embed = new Discord.RichEmbed() .setDescription("Rol ödülleri sistemi başarıyla sıfırlandı!") .setColor("RANDOM") msg.channel.send({embed}) return } let r = msg.mentions.roles.first(); if (!r) { const embed = new Discord.RichEmbed() .setDescription("Bir rolü etiketleyiniz veya `sıfırla` yazınız!") .setColor("RANDOM") msg.channel.send({embed}) return } if (!args[2]) { const embed = new Discord.RichEmbed() .setDescription(`Lütfen **${r.name}** rolünü almak için kaçıncı seviyede olmak gerektiğini yazınız!`) .setFooter("Sayı biçiminde yazınız.") .setColor("RANDOM") msg.channel.send({embed}) return } if (isNaN(args[2])) { const embed = new Discord.RichEmbed() .setDescription(`Lütfen **${r.name}** rolünü almak için kaçıncı seviyede olmak gerektiğini sayı biçiminde yazınız!`) .setColor("RANDOM") msg.channel.send({embed}) return } db.set(`roll_${msg.guild.id}`, r.id) db.set(`rollss_${msg.guild.id}`, args[2]) const embed = new Discord.RichEmbed() .setDescription("Rol ödülleri sistemi başarıyla aktif edildi!") .setColor("RANDOM") msg.channel.send({embed}) return } let u = msg.mentions.users.first() || msg.author; if(u.bot === true) { const embed = new Discord.RichEmbed() .setDescription("Botların seviyesi bulunmamaktadır!") .setColor("RANDOM") msg.channel.send(embed) return } var g = "95" var Canvas = require('canvas') var canvas = Canvas.createCanvas(750, 300) var ctx = canvas.getContext('2d'); const avatarURL = u.displayAvatarURL const { body } = await request.get(avatarURL); const avatar = await Canvas.loadImage(body); if(db.has(`${u.id}.resim`)) { const rs = await request.get(db.fetch(`${u.id}.resim`)); const resim = await Canvas.loadImage(rs.body); ctx.drawImage(resim, 0, 0, 750, 300); var g = "55" } if(saydam.includes(args[0])) { if(reset.includes(args[1])) { if(!db.has(`${msg.author.id}.saydam`)) { const embed = new Discord.RichEmbed() .setDescription("Saydamlık zaten standart halinde!") .setColor("RANDOM") msg.channel.send({embed}) return } db.delete(`${msg.author.id}.saydam`) const embed = new Discord.RichEmbed() .setDescription("Saydamlık başarıyla sıfırlandı!") .setColor("RANDOM") msg.channel.send({embed}) return } if(!args[1]) { const embed = new Discord.RichEmbed() .setDescription("Ayarlamak istediğiniz dereceyi veya `sıfırla` yazınız! \n**Dereceler:** `1`, `2`, `3`, `4`, `5`") .setColor("RANDOM") msg.channel.send({embed}) return } if(isNaN(args[1])) { const embed = new Discord.RichEmbed() .setDescription("Ayarlamak istediğiniz dereceyi veya `sıfırla` yazınız! \n**Dereceler:** `1`, `2`, `3`, `4`, `5`") .setColor("RANDOM") msg.channel.send({embed}) return } if (args[1] > 5 || args[1] < 1) { const embed = new Discord.RichEmbed() .setDescription("Saydamlık derecesi için `5`ten fazla bir seçenek yok! \n**Dereceler:** `1`, `2`, `3`, `4`, `5`") .setColor("RANDOM") msg.channel.send({embed}) return }; db.set(`${msg.author.id}.saydam`, args[1]) const embed = new Discord.RichEmbed() .setDescription("Siyah katmanın saydamlığı başarıyla değiştirildi!") .setColor("RANDOM") msg.channel.send({embed}) return }; if (db.has(`${msg.author.id}.saydam`) === true) { if (db.fetch(`${msg.author.id}.saydam`) === "1") { var g = "40" }; if (db.fetch(`${msg.author.id}.saydam`) === "2") { var g = "30" }; if (db.fetch(`${msg.author.id}.saydam`) === "3") { var g = "20" }; if (db.fetch(`${msg.author.id}.saydam`) === "4") { var g = "10" }; if (db.fetch(`${msg.author.id}.saydam`) === "5") { var g = "0" }; }; ctx.fillStyle = "rgba(0, 0, 0, 0."+g+")"; ctx.fill() ctx.fillRect(25, 20, 700, 260) ctx.fillStyle = "rgba(0, 0, 0, 0.30)"; ctx.fill() ctx.fillRect(0, 0, 750, 300) var re = db.fetch(`${u.id}.renk`) || "FF0000" var xp = db.fetch(`puancik_${u.id + msg.guild.id}`); var lvl = db.fetch(`seviye_${u.id + msg.guild.id}`); let sira = '' const sorted = msg.guild.members.filter(u => !u.user.bot).array().sort((a, b) => { return db.fetch(`seviye_${b.user.id + msg.guild.id}`) - db.fetch(`seviye_${a.user.id + msg.guild.id}`) }); const top10 = sorted.splice(0, msg.guild.members.size) const mappedID = top10.map(s => s.user.id); for(var i = 0; i < msg.guild.members.size; i++) { if(mappedID[i] === u.id) { sira += `${i + 1}` } } var de = 1.6 ctx.beginPath() ctx.fillStyle = "#999999"; ctx.arc(257 + 18.5, 147.5 + 18.5 + 36.25, 18.5, 1.5 * Math.PI, 0.5 * Math.PI, true); ctx.fill(); ctx.fillRect(257 + 18.5, 147.5 + 36.15, 250 * de, 37.5); ctx.arc(257 + 18.5 + 250 * de, 147.5 + 18.5 + 36.25, 18.75, 1.5 * Math.PI, 0.5 * Math.PI, false); ctx.fill(); ctx.beginPath(); ctx.fillStyle = `#${re}`; ctx.arc(257 + 18.5, 147.5 + 18.5 + 36.25, 18.5, 1.5 * Math.PI, 0.5 * Math.PI, true); ctx.fill(); ctx.fillRect(257 + 18.5, 147.5 + 36.25, xp * de, 37.5); ctx.arc(257 + 18.5 + xp * de, 147.5 + 18.5 + 36.25, 18.75, 1.5 * Math.PI, 0.5 * Math.PI, false); ctx.fill(); ctx.fillStyle = `#${re}`; ctx.font = '28px Impact'; ctx.textAlign = "right"; ctx.fillText(`Sıralama #${sira} | Seviye ${lvl || 0}`, 670, 70); ctx.font = '20px Impact'; ctx.textAlign = "right"; ctx.fillText(`${xp || 0} / 150 XP`, 670, 100); ctx.fillStyle = `#bfbfbf`; ctx.font = '28px Impact'; ctx.textAlign = "left"; ctx.fillText(`${u.tag}`, 270, 150) ctx.beginPath(); ctx.lineWidth = 8; ctx.fill() ctx.lineWidth = 8; ctx.arc(55 + 80, 80 + 80, 80, 0, 2 * Math.PI, false); ctx.clip(); ctx.drawImage(avatar, 55, 80, 160, 160); msg.channel.send({files:[{attachment:canvas.toBuffer(),name:"seviye.png"}]}) }; exports.conf = { enabled: true, guildOnly: false, aliases: ["level", "rank", "xp", "puan"], permLevel: 0, kategori: "lvl" }; exports.help = { name: 'seviye', description: 'Seviyenizi ve XP\'nizi gösterir.', usage: 'seviye [@kullanıcı/renk/resim] [renk kodu/resim URLsi/sıfırla]' };