thaldrin/DiscordModules/Roleplay/hold.js

66 lines
1.7 KiB
JavaScript

const Command = require('../../src/structures/Command');
const yiff = require('yiff');
const { MessageEmbed } = require('discord.js');
module.exports = class Hold extends Command {
constructor() {
super({
name: 'hold',
description: 'Hold a user',
aliases: [],
module: 'Roleplay',
cooldown: 2,
guildOnly: true,
developerOnly: false,
nsfw: false
});
}
async command(ctx) {
if (ctx.msg.mentions.members.size === 0) return ctx.send('please mention a user ;w;');
if (ctx.msg.mentions.members.first().id === ctx.client.user.id)
return ctx.send("Don't hold me! Hold someone else!");
if (ctx.msg.mentions.members.first().id === ctx.author.id)
return ctx.send(`Don't you want to hold someone other than yourself?`);
const Server = await ctx.db.servers.get(ctx.guild.id);
let Line;
if (Server.rp_text) {
const LineFromUtils = ctx.utils.int.hold[parseInt(Math.random() * ctx.utils.int.hold.length)];
Line = LineFromUtils.replace(/0/g, ctx.utils.format.bold(ctx.author.username)).replace(
/1/g,
ctx.utils.format.bold(ctx.msg.mentions.members.first().user.username)
);
} else {
Line = undefined;
}
let Settings;
if (Server === null) {
Settings = ctx.utils.db.defaults.server;
} else {
Settings = Server;
}
let req;
let Message;
await yiff.furrybot.sfw.hold().then((E) => (req = E));
if (Settings.embeds) {
Message = new MessageEmbed()
.setColor(ctx.config.color)
.setImage(req)
.setFooter(`${ctx.client.user.username} - Provided by furry.bot`, ctx.client.user.avatarURL());
if (Line) {
Message.setDescription(Line);
}
} else {
if (Line) {
Message = `${Line}\n${req}`;
} else {
Message = `${req}`;
}
}
ctx.send(Message);
}
};