From c1fb18b5e0adc8f1b720ed509a123983ea3c1796 Mon Sep 17 00:00:00 2001 From: Daniel Odendahl Jr Date: Thu, 27 Apr 2017 21:11:06 +0000 Subject: [PATCH] Triggered Command --- commands/avataredit/triggered.js | 38 ++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 commands/avataredit/triggered.js diff --git a/commands/avataredit/triggered.js b/commands/avataredit/triggered.js new file mode 100644 index 00000000..98d056f4 --- /dev/null +++ b/commands/avataredit/triggered.js @@ -0,0 +1,38 @@ +const { Command } = require('discord.js-commando'); +const Jimp = require('jimp'); + +module.exports = class TriggeredCommand extends Command { + constructor(client) { + super(client, { + name: 'triggered', + group: 'avataredit', + memberName: 'triggered', + description: 'Put an avatar on a "Triggered" sign.', + args: [{ + key: 'user', + prompt: 'Which user would you like to edit the avatar of?', + type: 'user' + }] + }); + } + + async run(message, args) { + if (message.channel.type !== 'dm') + if (!message.channel.permissionsFor(this.client.user).has('ATTACH_FILES')) + return message.say('This Command requires the `Attach Files` Permission.'); + const { user } = args; + const userAvatar = user.displayAvatarURL.replace(/(png|jpg|jpeg|gif|webp)/, 'png'); + const blank = new Jimp(320, 371, 0xFFFFFF); + let images = []; + images.push(Jimp.read(userAvatar)); + images.push(Jimp.read('https://i.imgur.com/tF9yF62.png')); + const [avatar, triggered] = await Promise.all(images); + avatar.resize(320, 320); + blank.composite(avatar, 0, 0); + blank.composite(triggered, 0, 0); + blank.getBuffer(Jimp.MIME_PNG, (err, buff) => { + if (err) return message.say('An Unknown Error Occurred.'); + return message.channel.send({files: [{attachment: buff}]}); + }); + } +}; diff --git a/package.json b/package.json index e6d9135d..fe1b8e72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "xiaobot", - "version": "16.3.0", + "version": "16.4.0", "description": "A Discord Bot", "main": "shardingmanager.js", "scripts": {