From 5618e2470f1a7dbd99c59396e2b44b9ee3833a8d Mon Sep 17 00:00:00 2001 From: loicbersier 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 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 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 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