Added more commands, added an auto-delete mechanism for a 12-year-old's spam, various fixes

This commit is contained in:
TheEssem 2019-10-24 13:54:23 -05:00
parent 51c2547fd5
commit d78bb8dff7
9 changed files with 186 additions and 34 deletions

24
commands/tile.js Normal file
View 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
View 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
View 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
View 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"];