Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const {
- readFile,
- readFileSync
- } = require('fs-nextra');
- const cnvs = require("canvas");
- const {
- get
- } = require('snekfetch');
- let inv = JSON.parse(fs.readFileSync("./userD.json", "UTF8"))
- const invs = JSON.parse(fs.readFileSync("./invites.json", "UTF8"))
- const wait = require('util').promisify(setTimeout);
- client.on('ready', () => {
- wait(1000);
- client.guilds.forEach(g => {
- if (g.members.get(client.user.id).hasPermission("MANAGE_GUILD"))
- g.fetchInvites().then(guildInvites => {
- invs[g.id] = guildInvites;
- });
- });
- });
- client.on('guildMemberAdd', member => {
- member.guild.fetchInvites().then(guildInvites => {
- const ei = invs[member.guild.id];
- invs[member.guild.id] = guildInvites;
- const invite = guildInvites.find(i => ei.get(i.code).uses < i.uses);
- const inviter = client.users.get(invite.inviter.id);
- inv[member.user.id + member.guild.id].inviter = invite.inviter.id;
- fs.writeFile("./invites.json", JSON.stringify(inv), function (err) {
- if (err) throw err;
- });
- });
- });
- client.on('message', async message => {
- if (message.content.startsWith(prefix + "user")) {
- let mem = message.mentions.members.first() || message.member;
- let auth = message.mentions.users.first() || message.author;
- const imageUrlRegex = /\?size=2048$/g;
- const name = mem.displayName.length > 10 ? mem.displayName.substring(0, 11) + "..." : mem.displayName;
- const {
- body: ava
- } = await get(auth.displayAvatarURL.replace(imageUrlRegex, "?size=128"));
- const img = await readFile('./user1.png');
- const millis = new Date().getTime() - auth.createdAt.getTime();
- const now = new Date();
- const createdAt = millis / 1000 / 60 / 60 / 24;
- const millisj = new Date().getTime() - mem.joinedAt.getTime();
- const nowj = new Date();
- const joinedAt = millisj / 1000 / 60 / 60 / 24;
- if (!inv[mem.id + message.guild.id]) inv[mem.id + message.guild.id] = {
- inviter: "Not stored in database",
- totalSecs: 0
- }
- fs.writeFile("./userD.json", JSON.stringify(inv), function (err) {
- if (err) throw err;
- });
- // Invites
- const guildInvites = await message.guild.fetchInvites();
- let invites = 0;
- guildInvites.forEach(i => {
- if (i.inviter.id === auth.id) {
- invites += i.uses;
- }
- let inviter = client.users.get(inv[mem.id + message.guild.id].inviter);
- const {
- body: bot
- } = await get(message.guild.iconURL.replace(imageUrlRegex, "?size=128"));
- let cnvs = require("canvas-constructor");
- let canvas = new cnvs.Canvas(417, 181)
- canvas.addImage(img, 0, 0, 417, 181)
- canvas.addRoundImage(bot, 7, 1, 29, 29, 25)
- canvas.setShadowColor("rgba(22, 22, 22, 1)") // This is a nice colour for a shadow.
- canvas.setShadowOffsetY(3) // Drop the shadow by 5 pixels.
- canvas.setShadowBlur(3) // Blur the shadow by 10.
- canvas.save()
- .addRoundImage(ava, 320, 55, 78, 78, 39)
- .setTextAlign("center")
- .setTextFont("8pt Cairo")
- canvas.setColor((mem.highestRole.hexColor === "#000000") ? "#ffffff" : mem.highestRole.hexColor)
- canvas.addText(name, 360, 162)
- canvas.setColor("#FFFFFF")
- canvas.addText(createdAt.toFixed(), 192, 77)
- canvas.addText((joinedAt.toFixed().length >= 3) ? joinedAt.toFixed() : joinedAt.toFixed() + " يوم", 257.5, 77)
- canvas.addText("0", 195, 130)
- canvas.addText("0", 258, 130)
- canvas.addText(`${inv[mem.id+message.guild.id].totalSecs} ثانية`, 205, 163)
- canvas.addText((invites === 1 || invites === 0) ? invites + " عضو" : invites + " أعضاء", 120, 128)
- canvas.addText((inviter) ? inviter.username : "لم يتم تحديدة", 110, 77)
- if (inviter) {
- const {
- body: buffer
- } = await get(inviter.avatarURL.replace(imageUrlRegex, "?size=128"))
- canvas.addRoundImage(buffer, 14, 59, 30, 30, 15)
- }
- message.channel.send({
- file: canvas.toBuffer()
- })
- }
- })
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement