2019-06-09 23:52:41 +01:00
|
|
|
// SupportBot
|
2020-01-26 22:35:45 +00:00
|
|
|
// Created by © 2020 Emerald Services
|
|
|
|
|
// Command: Forceclose
|
2019-06-09 23:52:41 +01:00
|
|
|
|
|
|
|
|
const Discord = require("discord.js");
|
|
|
|
|
const bot = new Discord.Client()
|
|
|
|
|
|
2020-01-26 22:35:45 +00:00
|
|
|
const fs = require("fs")
|
|
|
|
|
const yaml = require('js-yaml');
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2020-01-26 22:35:45 +00:00
|
|
|
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2020-01-26 22:35:45 +00:00
|
|
|
exports.run = async (bot, message, args) => {
|
|
|
|
|
|
|
|
|
|
console.log(`\u001b[33m`, `[${supportbot.Bot_Name}] > `, `\u001b[31;1m`, `${message.author.tag}`, `\u001b[32;1m`, `has executed`, `\u001b[31;1m`, `${supportbot.Prefix}${supportbot.Forceclose_Command}`);
|
|
|
|
|
|
|
|
|
|
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${supportbot.StaffRole}`)
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2020-01-26 22:35:45 +00:00
|
|
|
const rolemissing = new Discord.RichEmbed()
|
|
|
|
|
.setDescription(`:x: Looks like this server doesn't have the role **${supportbot.StaffRole}**`)
|
|
|
|
|
.setColor(supportbot.EmbedColour)
|
|
|
|
|
if (!staffGroup) return message.reply({embed: rolemissing});
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2020-01-26 22:35:45 +00:00
|
|
|
const donothaverole = new Discord.RichEmbed()
|
|
|
|
|
.setDescription(`:x: Sorry! You cannot use this command with the role **${supportbot.StaffRole}**`)
|
|
|
|
|
.setColor(supportbot.EmbedColour)
|
|
|
|
|
if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole});
|
|
|
|
|
|
|
|
|
|
const outsideticket = new Discord.RichEmbed()
|
|
|
|
|
.setDescription(`:x: Cannot use this command becase you are outside a ticket channel.`)
|
|
|
|
|
.setColor(supportbot.EmbedColour)
|
|
|
|
|
if (!message.channel.name.startsWith(`${supportbot.Ticket_Channel_Name}-`)) return message.channel.send({embed: outsideticket});
|
|
|
|
|
|
|
|
|
|
const log = message.guild.channels.find(channel => channel.name === supportbot.Transcript_Logs)
|
|
|
|
|
const uID = message.author
|
|
|
|
|
const reason = args.join(" ") || "No Reason Provided.";
|
|
|
|
|
const name = message.channel.name;
|
|
|
|
|
const c = message.channel;
|
|
|
|
|
|
|
|
|
|
message.channel.send(`Your ticket is currently closing`)
|
|
|
|
|
|
|
|
|
|
.then(() => {
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2019-11-15 21:54:32 +00:00
|
|
|
const embed1 = new Discord.RichEmbed()
|
2020-01-26 22:35:45 +00:00
|
|
|
.setTitle(supportbot.Transcript_Title)
|
|
|
|
|
.setColor(supportbot.EmbedColour)
|
|
|
|
|
.setFooter(supportbot.EmbedFooter)
|
2019-11-15 21:54:32 +00:00
|
|
|
.addField("Ticket Author", uID)
|
|
|
|
|
.addField("Closed By", message.author.tag)
|
|
|
|
|
.addField("Reason", reason)
|
2019-11-15 20:31:58 +00:00
|
|
|
message.channel.fetchMessages({ limit: 100 })
|
2019-11-15 21:54:32 +00:00
|
|
|
|
2019-11-15 20:31:58 +00:00
|
|
|
.then(msgs => {
|
|
|
|
|
message.channel.fetchMessages({ limit: 100, before: msgs.last().id })
|
2019-11-15 21:54:32 +00:00
|
|
|
|
2019-11-15 20:31:58 +00:00
|
|
|
.then(msg => {
|
|
|
|
|
const merged = msgs.concat(msg);
|
2019-11-15 21:54:32 +00:00
|
|
|
const output = merged.reduce((out, msg) => {
|
|
|
|
|
out += `[${message.createdAt}] ${message.author.tag}: ${message.cleanContent ? message.cleanContent.replace(/\n/g, '\r\n') : ''}\r\n`;
|
|
|
|
|
return out;
|
|
|
|
|
}, '');
|
2019-06-09 23:52:41 +01:00
|
|
|
|
2019-11-15 20:31:58 +00:00
|
|
|
log.send({ files: [{ attachment: Buffer.from(output, 'utf8'), name: `${name}.txt` }] }).then(c.delete()).catch(console.error); // sends the file to logs
|
2019-11-15 21:54:32 +00:00
|
|
|
return log.send(embed1).catch(console.error);
|
2019-11-15 20:31:58 +00:00
|
|
|
})
|
|
|
|
|
});
|
2020-01-26 22:35:45 +00:00
|
|
|
});
|
2019-07-24 16:52:30 -06:00
|
|
|
|
2019-06-09 23:52:41 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
exports.help = {
|
2020-01-26 22:35:45 +00:00
|
|
|
name: supportbot.Forceclose_Command,
|
2019-11-15 20:31:58 +00:00
|
|
|
}
|