From 5618e2470f1a7dbd99c59396e2b44b9ee3833a8d Mon Sep 17 00:00:00 2001
From: loicbersier <loic.bersier1@gmail.com>
Date: Sat, 13 Oct 2018 11:22:55 +0200
Subject: [PATCH 1/4] show despacito album

---
 commands/fun/despacito.js | 23 +++++++++++++++++++----
 package.json              |  1 +
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/commands/fun/despacito.js b/commands/fun/despacito.js
index 05ce15de..11d8d982 100644
--- a/commands/fun/despacito.js
+++ b/commands/fun/despacito.js
@@ -1,5 +1,8 @@
 const { Command } = require('discord.js-commando');
 const responseObject = require("../../json/despacito.json");
+const { createCanvas, loadImage, getContext } = require('canvas')
+const superagent = require('superagent')
+const Discord = require('discord.js');
 module.exports = class DespacitoCommand extends Command {
     constructor(client) {
         super(client, {
@@ -11,7 +14,7 @@ module.exports = class DespacitoCommand extends Command {
                 {
                     key: 'user',
                     prompt: 'What do you want me to say',
-                    type: 'member',
+                    type: 'user',
                     default: ''
                 }
             ]
@@ -19,6 +22,15 @@ module.exports = class DespacitoCommand extends Command {
     }
 
     async run(message, { user }) {
+        const canvas = createCanvas(660, 660);
+        const ctx = canvas.getContext('2d');
+        const background = await loadImage(user.avatarURL);
+        ctx.drawImage(background, 5, 12, canvas.width, canvas.height);
+        const { body: buffer } = await superagent.get('https://image.noelshack.com/fichiers/2018/41/6/1539381851-untitled.png');
+        const bg = await loadImage(buffer);
+        ctx.drawImage(bg, 0, 0, canvas.width, canvas.height);
+        const attachment = new Discord.Attachment(canvas.toBuffer(), 'despacito.png');
+
         if (!user) {
         const number = Object.keys(responseObject).length;
         const despacitoNumber = Math.floor (Math.random() * (number - 1 + 1)) + 1;
@@ -28,8 +40,11 @@ module.exports = class DespacitoCommand extends Command {
            return message.say(`Did you just try to despacitoad yourself?`);
         } else if (user.id === this.client.user.id) {
             return message.say('Nice try but you wont get me :^)');
-        } else
+        } else {
         message.delete();
-        message.say(`${user}, you have been despacitoad`);
-        } 
+        message.say(`${user}, you have been despacitoad`, attachment);
+    }
+
+        
+} 
 };
\ No newline at end of file
diff --git a/package.json b/package.json
index 3f4c3945..b08549fc 100644
--- a/package.json
+++ b/package.json
@@ -18,6 +18,7 @@
   },
   "homepage": "https://gitlab.com/loicbersier/discordbot#readme",
   "dependencies": {
+    "canvas": "^2.0.0-alpha.18",
     "discord.js": "^11.4.2",
     "discord.js-commando": "^0.10.0",
     "faceapp": "^0.4.4",

From 8d271be6a34f9f8f7562bb870f77b110635e48db Mon Sep 17 00:00:00 2001
From: loicbersier <loic.bersier1@gmail.com>
Date: Sat, 13 Oct 2018 12:13:38 +0200
Subject: [PATCH 2/4] fixed despacito normal behaviour

---
 commands/fun/despacito.js | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/commands/fun/despacito.js b/commands/fun/despacito.js
index 11d8d982..cd62ac5b 100644
--- a/commands/fun/despacito.js
+++ b/commands/fun/despacito.js
@@ -22,25 +22,24 @@ module.exports = class DespacitoCommand extends Command {
     }
 
     async run(message, { user }) {
-        const canvas = createCanvas(660, 660);
-        const ctx = canvas.getContext('2d');
-        const background = await loadImage(user.avatarURL);
-        ctx.drawImage(background, 5, 12, canvas.width, canvas.height);
-        const { body: buffer } = await superagent.get('https://image.noelshack.com/fichiers/2018/41/6/1539381851-untitled.png');
-        const bg = await loadImage(buffer);
-        ctx.drawImage(bg, 0, 0, canvas.width, canvas.height);
-        const attachment = new Discord.Attachment(canvas.toBuffer(), 'despacito.png');
-
         if (!user) {
         const number = Object.keys(responseObject).length;
         const despacitoNumber = Math.floor (Math.random() * (number - 1 + 1)) + 1;
-        if (!user)
-            return message.channel.send({files: [responseObject[despacitoNumber]]});
-          } else if (user.id === message.author.id) {
+        return message.channel.send({files: [responseObject[despacitoNumber]]});
+        } else if (user.id === message.author.id) {
            return message.say(`Did you just try to despacitoad yourself?`);
         } else if (user.id === this.client.user.id) {
             return message.say('Nice try but you wont get me :^)');
         } else {
+            const canvas = createCanvas(660, 660);
+            const ctx = canvas.getContext('2d');
+            const background = await loadImage(user.avatarURL);
+            ctx.drawImage(background, 5, 12, canvas.width, canvas.height);
+            const { body: buffer } = await superagent.get('https://image.noelshack.com/fichiers/2018/41/6/1539381851-untitled.png');
+            const bg = await loadImage(buffer);
+            ctx.drawImage(bg, 0, 0, canvas.width, canvas.height);
+            const attachment = new Discord.Attachment(canvas.toBuffer(), 'despacito.png');
+            
         message.delete();
         message.say(`${user}, you have been despacitoad`, attachment);
     }

From 841b70f2b21a0bbee303eddd1202e429bcac408e Mon Sep 17 00:00:00 2001
From: loicbersier <loic.bersier1@gmail.com>
Date: Sat, 13 Oct 2018 15:36:01 +0200
Subject: [PATCH 3/4] made it shorter

---
 commands/utility/avatar.js | 23 +++++++++++++++--------
 1 file changed, 15 insertions(+), 8 deletions(-)

diff --git a/commands/utility/avatar.js b/commands/utility/avatar.js
index 8c261ef8..68eeeb90 100644
--- a/commands/utility/avatar.js
+++ b/commands/utility/avatar.js
@@ -6,16 +6,23 @@ module.exports = class AvatarCommand extends Command {
             group: 'utility',
             memberName: 'avatar',
             description: 'Send the avatar of the mentionned user.',
+            memberName: 'say',
+            description: `Repeat the text you send`,
+            args: [
+                {
+                    key: 'user',
+                    prompt: 'What do you want me to say',
+                    type: 'user',
+                    default: ''
+                }
+            ]
         });
     }
 
-    async run(message) {
-        if (!message.mentions.users.size)
-            return message.channel.send(`Your avatar: ${message.author.displayAvatarURL}`);
-
-        const avatarList = message.mentions.users.map(user => {
-            return `${user.username}'s avatar: ${user.displayAvatarURL}`;
-        });
-        message.channel.send(avatarList);
+    async run(message, { user }) {
+        if (!user)
+            return message.say(`Your avatar:\n${message.author.displayAvatarURL}`);
+        else
+            return message.say(`${user.username}'s avatar:\n${user.displayAvatarURL}`);
     }
 };
\ No newline at end of file

From a1eef3ae308ec5b2d4bb3071b80c36d70a12dd82 Mon Sep 17 00:00:00 2001
From: loicbersier <loic.bersier1@gmail.com>
Date: Sun, 14 Oct 2018 11:51:35 +0200
Subject: [PATCH 4/4] edups

---
 commands/fun/idubbbz.js | 69 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)
 create mode 100644 commands/fun/idubbbz.js

diff --git a/commands/fun/idubbbz.js b/commands/fun/idubbbz.js
new file mode 100644
index 00000000..68929d4a
--- /dev/null
+++ b/commands/fun/idubbbz.js
@@ -0,0 +1,69 @@
+const { Command } = require('discord.js-commando');
+const Discord = require('discord.js');
+const { createCanvas, loadImage, getContext } = require('canvas')
+const superagent = require('superagent')
+
+
+module.exports = class idubbbzCommand extends Command {
+    constructor(client) {
+        super(client, {
+            name: 'idubbbz',
+            aliases: ['idubbz', 'edups'],
+            group: 'fun',
+            memberName: 'idubbbz',
+            description: `Put the text you send in idubbbz piece of paper`,
+            args: [
+                {
+                    key: 'text',
+                    prompt: 'What do you the paper to say?',
+                    type: 'string',
+                    default: 'Nigger Faggot'
+                }
+            ]
+        });
+    }
+
+    async run(message, { text }) {
+        let Attachment = (message.attachments).array();
+        let image = null
+        if (!Attachment[0])
+            image = message.author.displayAvatarURL
+        else 
+            image = Attachment[0].url
+
+            const applyText = (canvas, text) => {
+                const ctx = canvas.getContext('2d');
+            
+                // Declare a base size of the font
+                let fontSize = 50;
+            
+                do {
+                    // Assign the font to the context and decrement it so it can be measured again
+                    ctx.font = `${fontSize -= 10}px sans-serif`;
+                    // Compare pixel width of the text to the canvas minus the approximate avatar size
+                } while (ctx.measureText(text).width > canvas.width - 300);
+            
+                // Return the result to use in the actual canvas
+                return ctx.font;
+            };
+
+        const canvas = createCanvas(1281, 627)
+        const ctx = canvas.getContext('2d')
+        const background = await loadImage(image);
+        ctx.drawImage(background, 620, 100, 200, 200);
+        const { body: buffer } = await superagent.get('https://image.noelshack.com/fichiers/2018/41/7/1539510207-untitled.png');
+        const bg = await loadImage(buffer);
+        ctx.drawImage(bg, 0, 0, canvas.width, canvas.height);
+        ctx.font = applyText(canvas, text)
+        //ctx.font = '40px sans-serif';
+    // Select the style that will be used to fill the text in
+        ctx.fillStyle = '#000000';
+    // Actually fill the text with a solid color
+        ctx.fillText(text, canvas.width / 2.1, canvas.height / 1.5);
+
+        const attachment = new Discord.Attachment(canvas.toBuffer(), 'test.png');
+
+        message.say(attachment);
+
+          }
+};
\ No newline at end of file