diff --git a/commands/close.js b/commands/close.js
index fa3a036..873e757 100755
--- a/commands/close.js
+++ b/commands/close.js
@@ -58,18 +58,18 @@ module.exports = {
.addField("Reason", reason);
message.channel.messages.fetch({ limit: 100 }).then( msgs => {
- let txt = '';
+ let html = '';
msgs = msgs.sort( ( a, b ) => a.createdTimestamp - b.createdTimestamp );
- txt += `${message.guild.name}\n`;
- txt += `#${ticketChannel.name}\n`;
- txt += `${msgs.size} messages\n\n\n`;
+ html += `Server Name: ${message.guild.name}
`;
+ html += `Ticket: ${ticketChannel.name}
`;
+ html += `Message: ${msgs.size} Messages
`;
msgs.forEach( msg => {
if ( msg.content ) {
- txt += `----- ${msg.author.tag} at ${msg.createdAt}\n`;
- txt += `${msg.content}\n`;
- txt += `-----\n\n`;
+ html += `User: ${msg.author.tag}
`;
+ html += `Message: ${msg.content}
`;
+ html += `-----
`;
}
});
@@ -77,7 +77,7 @@ module.exports = {
message.reply(err)
})
- logChannel.send( new Discord.MessageAttachment( Buffer.from( txt ), `${name}.txt` ) );
+ logChannel.send( new Discord.MessageAttachment( Buffer.from( html ), `${name}.html` ) );
message.channel.delete();
@@ -112,18 +112,18 @@ module.exports = {
.addField("Reason", reason);
message.channel.messages.fetch({ limit: 100 }).then( msgs => {
- let txt = '';
+ let html = '';
msgs = msgs.sort( ( a, b ) => a.createdTimestamp - b.createdTimestamp );
- txt += `${message.guild.name}\n`;
- txt += `#${ticketChannel.name}\n`;
- txt += `${msgs.size} messages\n\n\n`;
+ html += `Server Name: ${message.guild.name}
`;
+ html += `Ticket: ${ticketChannel.name}
`;
+ html += `Message: ${msgs.size} Messages
`;
msgs.forEach( msg => {
if ( msg.content ) {
- txt += `----- ${msg.author.tag} at ${msg.createdAt}\n`;
- txt += `${msg.content}\n`;
- txt += `-----\n\n`;
+ html += `User: ${msg.author.tag}
`;
+ html += `Message: ${msg.content}
`;
+ html += `-----
`;
}
});
@@ -131,7 +131,7 @@ module.exports = {
message.reply(err)
})
- logChannel.send( new Discord.MessageAttachment( Buffer.from( txt ), `${name}.txt` ) );
+ logChannel.send( new Discord.MessageAttachment( Buffer.from( html ), `${name}.html` ) );
message.channel.delete();
diff --git a/commands/newticket.js b/commands/newticket.js
deleted file mode 100755
index 715817a..0000000
--- a/commands/newticket.js
+++ /dev/null
@@ -1,281 +0,0 @@
-// SupportBot, Created by Emerald Services
-// Ticket Command
-
-
-const Discord = require("discord.js");
-const bot = new Discord.Client()
-
-const fs = require("fs")
-const yaml = require('js-yaml');
-
-const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
-const TicketNumberID = require('../utils/TicketNumber.js');
-
-const reacted = [];
-
-module.exports = {
- name: supportbot.NewTicket,
- description: supportbot.NewTicketDesc,
-
- execute(message, args) {
- if (!message.channel.name === supportbot.ReactionChannel || !message.channel.id === supportbot.ReactionChannel) {
- if (supportbot.DeleteMessages) message.delete();
- }
-
- let reactionUser = message.guild.members.cache.get(message.author.id)
-
- if (reactionUser.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || reactionUser.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)) {
- return message.channel.send(`<@${message.author.id}> ${supportbot.TicketBlackListMessage}`).then(msg => {
- msg.delete({timeout: 3500})
- })
- }
-
-
- // Ticket ID
- let ticketNumberID = TicketNumberID.pad(message.guild.id);
-
- // Ticket Subject
- const TicketSubject = args || supportbot.NoTicketSubject;
-
- // Ticket Exists
- const TicketExists = new Discord.MessageEmbed()
- .setTitle("Ticket Exists!")
- .setDescription(`${supportbot.TicketExists}`)
- .setColor(supportbot.WarningColour)
-
- if (message.guild.channels.cache.find(SupportTicket => SupportTicket.name === `${supportbot.TicketChannel}-${ticketNumberID}`))
- return message.channel.send({ embed: TicketExists });
-
- message.guild.channels.create(`${supportbot.TicketChannel}-${ticketNumberID}`, {
- type: "text",
- permissionOverwrites: [
- {
- id: message.guild.roles.everyone,
- deny: ['VIEW_CHANNEL'],
- }
- ]
- }).then(SupportTicket => {
-
- let AllUsers = message.guild.roles.cache.find(everyone => everyone.name === '@everyone')
- let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) || message.guild.roles.cache.find(SupportTeam => SupportTeam.id === supportbot.Staff)
- let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) || message.guild.roles.cache.find(AdminUser => AdminUser.id === supportbot.Admin)
-
- let DeptRole1 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_1}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_1}`)
- let DeptRole2 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_2}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_2}`)
- let DeptRole3 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_3}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_3}`)
-
- SupportTicket.updateOverwrite(message.author, {
- VIEW_CHANNEL: true,
- READ_MESSAGES: true,
- SEND_MESSAGES: true,
- })
-
- SupportTicket.updateOverwrite(SupportStaff, {
- VIEW_CHANNEL: true,
- READ_MESSAGES: true,
- SEND_MESSAGES: true,
- })
-
- SupportTicket.updateOverwrite(Admins, {
- VIEW_CHANNEL: true,
- READ_MESSAGES: true,
- SEND_MESSAGES: true,
- })
-
- SupportTicket.updateOverwrite(AllUsers, {
- VIEW_CHANNEL: false
- })
-
-
-
- // Ticket Category
- let TicketCategory = message.guild.channels.cache.find(category => category.name === supportbot.TicketCategory) || message.guild.channels.cache.find(category => category.id === supportbot.TicketCategory)
-
- if (TicketCategory) {
- SupportTicket.setParent(TicketCategory.id)
- }
-
- // Ticket Created, Message Sent
-
- if (supportbot.AllowTicketMentions) {
- SupportTicket.send(`<@${message.author.id}>`)
- }
-
- const TicketMessage = new Discord.MessageEmbed()
- .setTitle(supportbot.Ticket_Title.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username))
- .setDescription(supportbot.TicketMessage.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username))
- .setColor(supportbot.EmbedColour)
-
- if (supportbot.TicketSubject === "embed") {
-
- if (TicketSubject != 'No Reason Provided.') {
- TicketMessage.addFields({ name: 'Reason', value: TicketSubject })
- }
-
- }
-
- if (supportbot.TicketSubject === "description") {
-
- if (TicketSubject != 'No Reason Provided.') {
- SupportTicket.setTopic(`Reason: ${TicketSubject} - User ID: ${message.author.id} - Ticket: ${SupportTicket.name}`)
- }
-
- }
-
- if (supportbot.TicketDepartments) {
- TicketMessage.addFields({ name: 'Departments', value: `${supportbot.DepartmentEmoji_1} **${supportbot.DepartmentTitle_1}**\n${supportbot.DepartmentEmoji_2} **${supportbot.DepartmentTitle_2}**\n${supportbot.DepartmentEmoji_3} **${supportbot.DepartmentTitle_3}**` })
- }
-
- SupportTicket.send({ embed: TicketMessage }).then( async function(msg) {
-
- const Emoji_1 = supportbot.DepartmentEmoji_1;
- const Emoji_2 = supportbot.DepartmentEmoji_2;
- const Emoji_3 = supportbot.DepartmentEmoji_3;
-
- reacted[ticketNumberID] = false;
-
- if (supportbot.TicketDepartments) {
- await msg.react(Emoji_1);
- await msg.react(Emoji_2);
- await msg.react(Emoji_3);
- let filter = (reaction, user) => {
- if (user.id !== message.author.id) return;
- if (typeof reacted[ticketNumberID] !== "boolean") return;
- delete reacted[ticketNumberID];
- if (reaction.emoji.name === Emoji_1) {
- SupportTicket.updateOverwrite(message.author.id, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(DeptRole1, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
-
- if (supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- if (!supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- const Department1 = new Discord.MessageEmbed()
- .setTitle(`> Thank for reaching out to the **${supportbot.DepartmentTitle_1} Department**. Please provide us information regarding your query.`)
- .setColor(supportbot.EmbedColour)
- SupportTicket.send({ embed: Department1 });
-
- if (supportbot.AllowTicketMentions) {
- SupportTicket.send(`@here`)
- }
-
- }
-
- if (reaction.emoji.name === Emoji_2) {
- SupportTicket.updateOverwrite(message.author.id, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(DeptRole2, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
-
- if (supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- if (!supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- const Department2 = new Discord.MessageEmbed()
- .setTitle(`> Thank for reaching out to the **${supportbot.DepartmentTitle_2} Department**. Please provide us information regarding your query.`)
- .setColor(supportbot.EmbedColour)
- SupportTicket.send({ embed: Department2 });
-
- if (supportbot.AllowTicketMentions) {
- SupportTicket.send(`@here`)
- }
-
- }
-
- if (reaction.emoji.name === `${Emoji_3}`) {
- SupportTicket.updateOverwrite(message.author.id, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(DeptRole3, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
-
- if (supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- if (!supportbot.AllowStaff) {
- SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
- }
-
- const Department3 = new Discord.MessageEmbed()
- .setTitle(`> Thank for reaching out to the **${supportbot.DepartmentTitle_3} Department**. Please provide us information regarding your query.`)
- .setColor(supportbot.EmbedColour)
- SupportTicket.send({ embed: Department3 });
-
- if (supportbot.AllowTicketMentions) {
- SupportTicket.send(`@here`)
- }
-
- }
- return [Emoji_1, Emoji_2, Emoji_3].includes(reaction.emoji.name) && user.id !== message.author.id;
- }
- msg.awaitReactions(filter, {
- max: 4,
- time: 60000,
- errors: ['time']
- }).then(async collected => {
- });
-
- setTimeout(async function() {
- if (typeof reacted[ticketNumberID] == "boolean") {
- delete reacted[ticketNumberID];
- //delete channel because didn't react in a minute
- }
- }, 60000);
-
- }
-
- });
-
- if (message.channel.name === supportbot.ReactionChannel || message.channel.id === supportbot.ReactionChannel) {
- const CreatedTicket = new Discord.MessageEmbed()
- .setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username))
- .setColor(supportbot.EmbedColour)
- message.channel.send({embed: CreatedTicket}).then((r) => {
- r.delete({ timeout:5000 })
- })
- } else {
- const CreatedTicket = new Discord.MessageEmbed()
- .setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username))
- .setColor(supportbot.EmbedColour)
- message.channel.send({embed: CreatedTicket});
- }
- fs.writeFileSync("./storage/SupportTickets.json", '{\n "ticket": "' + SupportTicket.name + '", \n "id":' + message.author.id + "\n}", (err) => {
- if (!err) return;
- console.error(err)
- })
-
- // Ticket Logs
-
- const errornochannel = new Discord.MessageEmbed()
- .setTitle("SupportBot Error!")
- .setDescription(`:x: **Error!** Channel not Found, This command cannot be executed proberbly as their is no channel within this server.\nThis is configurable via **supportbot-config.yml**\n\nChannel Required: \`${supportbot.TicketLog}\`\n\nError Code: \`SB-03\``)
- .setColor(supportbot.ErrorColour);
-
- const TicketLogs = new Discord.MessageEmbed()
- .setTitle("Ticket Log")
- .setThumbnail(supportbot.Ticket_Thumbnail)
- .addFields(
- { name: 'Ticket', value: `<#${SupportTicket.id}>` },
- { name: 'User', value: `<@${message.author.id}>` },
- )
- .setColor(supportbot.EmbedColour)
- .setFooter(supportbot.EmbedFooter)
-
- let locateChannel = message.guild.channels.cache.find(LocateChannel => LocateChannel.name === supportbot.TicketLog) || message.guild.channels.cache.find(LocateChannel => LocateChannel.id === supportbot.TicketLog)
-
- if(!locateChannel) return message.channel.send({ embed: errornochannel });
-
- locateChannel.send({ embed: TicketLogs });
- })
-
- }
-
-};
diff --git a/commands/ticket.js b/commands/ticket.js
new file mode 100644
index 0000000..dbeb1d7
--- /dev/null
+++ b/commands/ticket.js
@@ -0,0 +1,230 @@
+// SupportBot, Created by Emerald Services
+// Ticket Command
+
+const Discord = require("discord.js");
+const bot = new Discord.Client()
+
+const fs = require("fs")
+const yaml = require('js-yaml');
+
+const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
+const TicketNumberID = require('../utils/TicketNumber.js');
+
+module.exports = {
+ name: supportbot.NewTicket,
+ description: supportbot.NewTicketDesc,
+
+ async execute(message, args) {
+ if (!message.channel.name === supportbot.ReactionChannel || !message.channel.id === supportbot.ReactionChannel) {
+ if (supportbot.DeleteMessages) message.delete();
+ }
+
+ let reactionUser = message.guild.members.cache.get(message.author.id)
+
+ if (reactionUser.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || reactionUser.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)) {
+ return message.channel.send(`<@${message.author.id}> ${supportbot.TicketBlackListMessage}`).then(msg => {
+ msg.delete({timeout: 3500})
+ })
+ }
+
+ // Ticket ID
+ let ticketNumberID = TicketNumberID.pad(message.guild.id);
+
+ // Ticket Subject
+ const TicketSubject = args || supportbot.NoTicketSubject;
+
+ const channel = await message.guild.channels.create(`${supportbot.TicketChannel}-${ticketNumberID}`);
+
+ if (message.channel.name === supportbot.ReactionChannel || message.channel.id === supportbot.ReactionChannel) {
+ const CreatedTicket = new Discord.MessageEmbed()
+ .setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, channel.id).replace(/%ticketusername%/g, message.author.username))
+ .setColor(supportbot.EmbedColour)
+ message.channel.send({embed: CreatedTicket}).then((r) => {
+ r.delete({ timeout:5000 })
+ })
+ } else {
+ const CreatedTicket = new Discord.MessageEmbed()
+ .setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, channel.id).replace(/%ticketusername%/g, message.author.username))
+ .setColor(supportbot.EmbedColour)
+ message.channel.send({embed: CreatedTicket});
+ }
+
+ // Ticket Category
+ let TicketCategory = message.guild.channels.cache.find(category => category.name === supportbot.TicketCategory) || message.guild.channels.cache.find(category => category.id === supportbot.TicketCategory)
+
+ // Locate Roles
+ let StaffMember = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) || message.guild.roles.cache.find(SupportTeam => SupportTeam.id === supportbot.Staff)
+ let ServerAdmins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) || message.guild.roles.cache.find(AdminUser => AdminUser.id === supportbot.Admin)
+
+ if (TicketCategory) {
+ channel.setParent(TicketCategory.id)
+ }
+
+ channel.updateOverwrite(message.guild.id, {
+ SEND_MESSAGES: false,
+ VIEW_CHANNEL: false
+ })
+
+ channel.updateOverwrite(message.author, {
+ SEND_MESSAGES: true,
+ VIEW_CHANNEL: true
+ })
+
+ channel.updateOverwrite(StaffMember, {
+ SEND_MESSAGES: true,
+ VIEW_CHANNEL: true
+ })
+
+ channel.updateOverwrite(ServerAdmins, {
+ SEND_MESSAGES: true,
+ VIEW_CHANNEL: true
+ })
+
+ // Ticket Created, Message Sent
+
+ if (supportbot.AllowTicketMentions) {
+ channel.send(`<@${message.author.id}>`)
+ }
+
+ const TicketMessage = new Discord.MessageEmbed()
+ .setTitle(supportbot.Ticket_Title.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, channel.id).replace(/%ticketusername%/g, message.author.username))
+ .setDescription(supportbot.TicketMessage.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, channel.id).replace(/%ticketusername%/g, message.author.username))
+ .setColor(supportbot.EmbedColour)
+
+ if (supportbot.TicketSubject === "embed") {
+
+ if (TicketSubject != 'No Reason Provided.') {
+ TicketMessage.addFields({ name: 'Reason', value: TicketSubject })
+ }
+
+ }
+
+ if (supportbot.TicketSubject === "description") {
+
+ if (TicketSubject != 'No Reason Provided.') {
+ channel.setTopic(`Reason: ${TicketSubject} - User ID: ${message.author.id} - Ticket: ${channel.name}`)
+ }
+
+ }
+
+ const reactionMessage = await channel.send({
+ embed: TicketMessage
+ }).then( async function(ticketmsg) {
+ await ticketmsg.react(supportbot.TicketLockReaction)
+ await ticketmsg.react(supportbot.TicketDeleteReaction)
+
+ const collector = ticketmsg.createReactionCollector(
+ (reaction, user) => message.guild.roles.cache.find((staff) => staff.name === supportbot.Staff),
+ { dispose: true }
+ );
+
+ collector.on('collect', (reaction, user) => {
+ switch (reaction.emoji.name) {
+ case supportbot.TicketLockReaction:
+
+ channel.updateOverwrite(message.author, {
+ SEND_MESSAGES: false,
+ VIEW_CHANNEL: true
+ });
+
+ const LockTicketEmbed = new Discord.MessageEmbed()
+ .setDescription(supportbot.TicketLockMessage)
+ .setColor(supportbot.EmbedColour)
+ channel.send({embed: LockTicketEmbed})
+ break;
+
+ case supportbot.TicketDeleteReaction:
+ const DeleteTicketEmbed = new Discord.MessageEmbed()
+ .setDescription(supportbot.TicketDeleteMessage)
+ .setColor(supportbot.EmbedColour)
+ channel.send({embed: DeleteTicketEmbed})
+
+ let logChannel = message.guild.channels.cache.find(channel => channel.name === supportbot.TranscriptLog) || message.guild.channels.cache.find(channel => channel.id === supportbot.TranscriptLog)
+ let user = message.author;
+ let reason = args.join(" ") || "No Reason Provided.";
+
+ let name = message.channel.name;
+ let ticketChannel = message.channel;
+
+ message.channel.send(`**${supportbot.ClosingTicket}**`)
+
+ .then(() => {
+ const logEmbed = new Discord.MessageEmbed()
+ .setTitle(supportbot.TranscriptTitle)
+ .setColor(supportbot.EmbedColour)
+ .setFooter(supportbot.EmbedFooter)
+ .addField("Closed By", message.author.tag)
+ .addField("Reason", reason);
+
+ message.channel.messages.fetch({ limit: 100 }).then( msgs => {
+ let html = '';
+
+ msgs = msgs.sort( ( a, b ) => a.createdTimestamp - b.createdTimestamp );
+ html += `Server Name: ${message.guild.name}
`;
+ html += `Ticket: ${ticketChannel.name}
`;
+ html += `Message: ${msgs.size} Messages
`;
+
+ msgs.forEach( msg => {
+ if ( msg.content ) {
+ html += `User: ${msg.author.tag}
`;
+ html += `Message: ${msg.content}
`;
+ html += `-----
`;
+ }
+ });
+
+ logChannel.send(logEmbed).catch(err => {
+ message.reply(err)
+ })
+
+ const TranscriptSavedEmbed = new Discord.MessageEmbed()
+ .setDescription(supportbot.TranscriptSavedMessage)
+ .setColor(supportbot.SuccessColour)
+ channel.send({embed: TranscriptSavedEmbed})
+
+ logChannel.send( new Discord.MessageAttachment( Buffer.from( html ), `${name}.html` ) );
+ setTimeout(() => channel.delete(), supportbot.TicketDeleteTime);
+
+ })
+
+ }).catch( () => {
+ m.edit('The request to close the ticket has timed out.').then( m2 => m2.delete( 3000 ) );
+ });
+ break;
+
+ }
+ });
+
+ })
+
+ fs.writeFileSync("./storage/SupportTickets.json", '{\n "ticket": "' + channel.name + '", \n "id":' + message.author.id + "\n}", (err) => {
+ if (!err) return;
+ console.error(err)
+ })
+ // Ticket Logs
+
+ const errornochannel = new Discord.MessageEmbed()
+ .setTitle("SupportBot Error!")
+ .setDescription(`:x: **Error!** Channel not Found, This command cannot be executed proberbly as their is no channel within this server.\nThis is configurable via **supportbot-config.yml**\n\nChannel Required: \`${supportbot.TicketLog}\`\n\nError Code: \`SB-03\``)
+ .setColor(supportbot.ErrorColour);
+
+ const TicketLogs = new Discord.MessageEmbed()
+ .setTitle("Ticket Log")
+ .setThumbnail(supportbot.Ticket_Thumbnail)
+ .addFields(
+ { name: 'Ticket', value: `<#${channel.id}>` },
+ { name: 'User', value: `<@${message.author.id}>` },
+ )
+ .setColor(supportbot.EmbedColour)
+ .setFooter(supportbot.EmbedFooter)
+
+ let locateChannel = message.guild.channels.cache.find(LocateChannel => LocateChannel.name === supportbot.TicketLog) || message.guild.channels.cache.find(LocateChannel => LocateChannel.id === supportbot.TicketLog)
+
+ if(!locateChannel) return message.channel.send({ embed: errornochannel });
+
+ locateChannel.send({ embed: TicketLogs });
+
+
+ }
+
+}
+
diff --git a/events/ready.js b/events/ready.js
index e357995..67b683c 100644
--- a/events/ready.js
+++ b/events/ready.js
@@ -27,7 +27,7 @@ module.exports = async (bot) => {
console.log(` `)
console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
console.log(` `)
- console.log(`\u001b[33m`, `${supportbot.Bot_Name}`, `\u001b[36m`, `Connected to Discord`)
+ console.log(`\u001b[33m`, `${supportbot.Bot_Name} v${supportbot.SupportBot_Version}`, `\u001b[36m`, `Connected to Discord`)
console.log(`\u001b[33m`, `Documentation:`, `\u001b[36m`, `https://docs.emeraldsrv.dev`)
console.log(`\u001b[33m`, `Discord:`, `\u001b[36m`, `https://emeraldsrv.dev/discord`)
console.log(`\u001b[33m`, `Hosting:`, `\u001b[36m`, `https://emeraldsrv.dev/hosting`)
diff --git a/lang/SupportBot_ENG.yml b/lang/SupportBot_ENG.yml
index 3ab773d..83f31a1 100644
--- a/lang/SupportBot_ENG.yml
+++ b/lang/SupportBot_ENG.yml
@@ -9,13 +9,13 @@
#
# Discord Support: https://emeraldsrv.dev/discord
-SupportBot Version: "7.0"
+SupportBot_Version: "7.1 pre-1"
# -------------------------
# General Configuration
# -------------------------
-Token: "TOKEN HERE"
+Token: "BOT_TOKEN_HERE"
Prefix: "!!"
Bot_Name: "SupportBot"
@@ -71,7 +71,7 @@ TicketBlackListRole: "Blacklisted"
# --- General Config ---
# --- Start ---
-TicketCategory: "Support Tickets"
+TicketCategory: "▬▬ TICKETS ▬▬"
TicketChannel: "ticket"
TicketLog: "ticket-logs"
@@ -128,6 +128,15 @@ TicketCreatedAlert: ":ticket: Your support ticket has been created: <#%ticketid%
AddedUser: "👍 <@%user%> has been added to this ticket"
RemovedUser: "👍 <@%user%> has been removed from this ticket"
+
+TicketLockReaction: "🔒"
+TicketDeleteReaction: "⛔"
+
+TranscriptSavedMessage: "📝 **Transcript Saved!**"
+TicketLockMessage: "❌ **Ticket Locked!**"
+TicketDeleteMessage: "⚠ **Ticket Deleting!**" # Tickets deleting after 5 seconds by default.
+TicketDeleteTime: 5000 # Time must be set in miliseconds.
+
# --- Closing Config ---
# --- Start ---
diff --git a/package.json b/package.json
index 5fe958a..d701a53 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "supportbot",
- "version": "7.0.0",
+ "version": "7.1-pre-1",
"description": "SupportBot, a free open-source discord ticket application with ease of use.",
"main": "index.js",
"scripts": {
@@ -13,6 +13,7 @@
"license": "MIT",
"dependencies": {
"discord.js": "^12.5.3",
- "js-yaml": "^4.1.0"
+ "js-yaml": "^4.1.0",
+ "jsdom": "^16.7.0"
}
}
diff --git a/storage/SupportTickets.json b/storage/SupportTickets.json
index 9e26dfe..da23c3e 100755
--- a/storage/SupportTickets.json
+++ b/storage/SupportTickets.json
@@ -1 +1,4 @@
-{}
\ No newline at end of file
+{
+ "ticket": "ticket-0043",
+ "id":419821884431925260
+}
\ No newline at end of file
diff --git a/storage/TicketID.json b/storage/TicketID.json
index 9e26dfe..82b9089 100755
--- a/storage/TicketID.json
+++ b/storage/TicketID.json
@@ -1 +1,5 @@
-{}
\ No newline at end of file
+{
+ "854057237495676938": {
+ "id": 44
+ }
+}
\ No newline at end of file
diff --git a/storage/ticketreaction.yml b/storage/ticketreaction.yml
index 3372306..533e4a7 100644
--- a/storage/ticketreaction.yml
+++ b/storage/ticketreaction.yml
@@ -1 +1 @@
-ReactionMessage_ID: ''
+ReactionMessage_ID: '872499225110396958'
diff --git a/supportbot-config.yml b/supportbot-config.yml
index 3ab773d..83f31a1 100755
--- a/supportbot-config.yml
+++ b/supportbot-config.yml
@@ -9,13 +9,13 @@
#
# Discord Support: https://emeraldsrv.dev/discord
-SupportBot Version: "7.0"
+SupportBot_Version: "7.1 pre-1"
# -------------------------
# General Configuration
# -------------------------
-Token: "TOKEN HERE"
+Token: "BOT_TOKEN_HERE"
Prefix: "!!"
Bot_Name: "SupportBot"
@@ -71,7 +71,7 @@ TicketBlackListRole: "Blacklisted"
# --- General Config ---
# --- Start ---
-TicketCategory: "Support Tickets"
+TicketCategory: "▬▬ TICKETS ▬▬"
TicketChannel: "ticket"
TicketLog: "ticket-logs"
@@ -128,6 +128,15 @@ TicketCreatedAlert: ":ticket: Your support ticket has been created: <#%ticketid%
AddedUser: "👍 <@%user%> has been added to this ticket"
RemovedUser: "👍 <@%user%> has been removed from this ticket"
+
+TicketLockReaction: "🔒"
+TicketDeleteReaction: "⛔"
+
+TranscriptSavedMessage: "📝 **Transcript Saved!**"
+TicketLockMessage: "❌ **Ticket Locked!**"
+TicketDeleteMessage: "⚠ **Ticket Deleting!**" # Tickets deleting after 5 seconds by default.
+TicketDeleteTime: 5000 # Time must be set in miliseconds.
+
# --- Closing Config ---
# --- Start ---