Added more commands, added an auto-delete mechanism for a 12-year-old's spam, various fixes
This commit is contained in:
parent
51c2547fd5
commit
d78bb8dff7
9 changed files with 186 additions and 34 deletions
24
commands/tile.js
Normal file
24
commands/tile.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
const gm = require("gm").subClass({
|
||||
imageMagick: true
|
||||
});
|
||||
const gmToBuffer = require("../utils/gmbuffer.js");
|
||||
const fetch = require("node-fetch");
|
||||
|
||||
exports.run = async (message) => {
|
||||
const image = await require("../utils/imagedetect.js")(message);
|
||||
if (image === undefined) return `${message.author.mention}, you need to provide an image to tile!`;
|
||||
message.channel.sendTyping();
|
||||
const imageData = await fetch(image.url);
|
||||
const imageBuffer = await imageData.buffer();
|
||||
gm(imageBuffer).command("montage").out("-duplicate").out(24).tile("5x5").geometry("+0+0").stream(async (error, output) => {
|
||||
if (error) console.error;
|
||||
const data = gm(output).resize("800x800>");
|
||||
const resultBuffer = await gmToBuffer(data);
|
||||
return message.channel.createMessage("", {
|
||||
file: resultBuffer,
|
||||
name: `tile.${image.type}`
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.aliases = ["wall2"];
|
25
commands/trump.js
Normal file
25
commands/trump.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
const gm = require("gm").subClass({
|
||||
imageMagick: true
|
||||
});
|
||||
const gmToBuffer = require("../utils/gmbuffer.js");
|
||||
const fetch = require("node-fetch");
|
||||
const fs = require("fs");
|
||||
|
||||
exports.run = async (message) => {
|
||||
const image = await require("../utils/imagedetect.js")(message);
|
||||
if (image === undefined) return `${message.author.mention}, you need to provide an image to make a Trump meme!`;
|
||||
message.channel.sendTyping();
|
||||
const template = "./assets/images/trump.png";
|
||||
const imageData = await fetch(image.url);
|
||||
const imageBuffer = await imageData.buffer();
|
||||
const path = require("tempy").file({
|
||||
extension: image.type
|
||||
});
|
||||
require("util").promisify(fs.writeFile)(path, imageBuffer);
|
||||
const command = gm(template).out("-background").out("none").out("-gravity").out("South").out("(").out("-clone").out("0").out("(").out(path).out("-virtual-pixel").out("transparent").out("-resize").out("365x179!").out("+distort").out("Perspective").out("0,0 207,268 365,0 548,271 365,179 558,450 0,179 193,450").out(")").out("-geometry").out("-25-1").out("-composite").out(")").out("+swap").out("-composite");
|
||||
const resultBuffer = await gmToBuffer(command);
|
||||
return message.channel.createMessage("", {
|
||||
file: resultBuffer,
|
||||
name: "trump.png"
|
||||
});
|
||||
};
|
49
commands/userinfo.js
Normal file
49
commands/userinfo.js
Normal file
|
@ -0,0 +1,49 @@
|
|||
const client = require("../utils/client.js");
|
||||
|
||||
exports.run = async (message, args) => {
|
||||
const getUser = message.mentions.length >= 1 ? message.mentions[0] : (args.length !== 0 ? client.users.get(args[0]) : message.author);
|
||||
const user = getUser !== undefined ? getUser : message.author;
|
||||
const member = message.channel.guild.members.get(user.id);
|
||||
const infoEmbed = {
|
||||
"embed": {
|
||||
"title": `${user.username}#${user.discriminator}`,
|
||||
"thumbnail": {
|
||||
"url": user.avatarURL
|
||||
},
|
||||
"color": 16711680,
|
||||
"fields": [
|
||||
{
|
||||
"name": "🔢 **ID:**",
|
||||
"value": user.id
|
||||
},
|
||||
{
|
||||
"name": "📛 **Nickname:**",
|
||||
"value": member.nick ? member.nick : "None"
|
||||
},
|
||||
{
|
||||
"name": "🤖 **Bot:**",
|
||||
"value": user.bot ? "Yes" : "No"
|
||||
},
|
||||
{
|
||||
"name": "🗓️ **Joined Discord on:**",
|
||||
"value": new Date(user.createdAt).toString()
|
||||
},
|
||||
{
|
||||
"name": "💬 **Joined this server on:**",
|
||||
"value": new Date(member.joinedAt).toString()
|
||||
},
|
||||
{
|
||||
"name": "ℹ️ **Status:**",
|
||||
"value": member.status
|
||||
},
|
||||
{
|
||||
"name": "🎮 **Playing:**",
|
||||
"value": member.activities ? member.activities[0].name : "Nothing"
|
||||
}
|
||||
]
|
||||
}
|
||||
};
|
||||
return message.channel.createMessage(infoEmbed);
|
||||
};
|
||||
|
||||
exports.aliases = ["user"];
|
37
commands/waaw.js
Normal file
37
commands/waaw.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
// really don't like this file
|
||||
|
||||
const gm = require("gm").subClass({
|
||||
imageMagick: true
|
||||
});
|
||||
const tempy = require("tempy");
|
||||
const fetch = require("node-fetch");
|
||||
|
||||
exports.run = async (message) => {
|
||||
const image = await require("../utils/imagedetect.js")(message);
|
||||
if (image === undefined) return `${message.author.mention}, you need to provide an image to mirror!`;
|
||||
message.channel.sendTyping();
|
||||
const imageData = await fetch(image.url);
|
||||
const imageBuffer = await imageData.buffer();
|
||||
const data = tempy.file({
|
||||
extension: image.type
|
||||
});
|
||||
const data2 = tempy.file({
|
||||
extension: image.type
|
||||
});
|
||||
gm(imageBuffer).gravity("East").crop("50%", 0).strip().write(data2, (error) => {
|
||||
if (error) console.error;
|
||||
gm(data2).flop().strip().write(data, async (error) => {
|
||||
if (error) console.error;
|
||||
gm(data).append(data2, true).toBuffer(image.type, (error, resultBuffer) => {
|
||||
if (error) console.error;
|
||||
return message.channel.createMessage("", {
|
||||
file: resultBuffer,
|
||||
name: `waaw.${image.type}`
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
exports.aliases = ["magik3", "mirror"];
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue