Compare commits

...
33 Commits
Author SHA1 Message Date
ItzEmerald d416c2e421 Update README.md 2019-11-18 16:12:28 +00:00
ItzEmerald 6bc2e669e4 Update README.md 2019-11-18 16:12:13 +00:00
ItzEmerald 9accb65256 Update README.md 2019-11-18 16:11:23 +00:00
ItzEmerald d9212584ca Update README.md 2019-11-18 16:10:19 +00:00
ItzEmerald 1a7effb422 Update README.md 2019-11-18 16:09:37 +00:00
ItzEmerald 1480435f15 Update index.js 2019-11-18 15:53:02 +00:00
ItzEmerald 64c6a97657 Update index.js 2019-11-18 15:49:36 +00:00
ItzEmerald 7ae2ff9837 Update settings.json 2019-11-18 15:49:21 +00:00
ItzEmerald f19dec405d Updated settings.json 2019-11-18 15:29:33 +00:00
ItzEmerald bbd4e9d162 Update ticket.js 2019-11-17 22:24:05 +00:00
ItzEmerald 58deff0869 Updated close.js
Added ticket transcripts
2019-11-17 21:27:13 +00:00
ItzEmerald 628632f43e Update forceclose.js 2019-11-15 21:54:32 +00:00
ItzEmerald 436586117c Update close.js 2019-11-15 21:53:39 +00:00
ItzEmerald 7234ec728c Update close.js 2019-11-15 20:43:29 +00:00
ItzEmerald fc4d68be39 Update forceclose.js 2019-11-15 20:31:58 +00:00
ItzEmerald bcf2df4bff Update close.js 2019-11-15 20:27:10 +00:00
ItzEmerald 70a469a951 Update settings.json
Added settings for transcripts
2019-11-15 20:25:43 +00:00
ItzEmerald 981995cb32 Merge pull request #7 from iJosGCS/patch-1
Update close.js
2019-11-15 20:00:14 +00:00
Joseph Gonzalo 406c7d368b Update close.js 2019-11-15 13:58:24 -06:00
ItzEmerald 5c266d8b8d Update README.md 2019-11-01 20:27:24 +00:00
Joseph Gonzalo 4f5b94a491 Update README.md 2019-10-17 17:08:13 -06:00
ItzEmerald 284c83cc1d Update help.js 2019-09-28 17:30:57 +01:00
RedstoneGamez 23f06af202 Update README.md 2019-09-07 14:59:59 -03:00
Emerald 82be317595 Updated ticket.js
Support v4.2
2019-08-17 00:00:48 +01:00
ItzEmerald a43c76529f Delete temp.js 2019-08-16 23:54:13 +01:00
Emerald 26065c2a5c Merge remote-tracking branch 'origin/master' 2019-08-16 23:52:15 +01:00
ItzEmerald 6b1dfe01cf 4.2 2019-08-16 23:51:18 +01:00
ItzEmerald 72443fb7c6 Update README.md 2019-08-10 11:52:08 +01:00
ItzEmerald 28cad23746 Update README.md 2019-08-10 11:51:02 +01:00
Joseph Gonzalo ebc0d4b137 Update settings.json 2019-08-04 20:44:02 -06:00
Joseph Gonzalo 4b198acda7 Update README.md 2019-08-04 20:43:22 -06:00
Joseph Gonzalo b84c3c75a5 Bug fixes 2019-08-04 20:42:35 -06:00
ItzEmerald de0ec97d9b Update 4.0.1
Bug Fixes:

Announcements displaying “undefined” above the announcement message instead of a role.

Tickets not allowing users to talk
2019-08-04 00:12:49 +01:00
16 changed files with 598 additions and 151 deletions

No files matched your search

+11 -14
View File
@@ -1,10 +1,7 @@
<h1 align="center">SupportBot v4.0.0</h1> <h1 align="center">SupportBot v5</h1>
<h4 align="center">A Self Hosted discord application</h4> <h4 align="center">#1 Discord Support System</h4>
<p align="center"> <p align="center">
<a href="https://discord.gg/hmWgxdF">
<img src="https://discordapp.com/api/guilds/516345301985132552/widget.png?style=shield" alt="Discord Server">
</a>
<img src="https://img.shields.io/badge/Made%20with-NodeJS-blue.svg" alt="Made with NodeJS"> <img src="https://img.shields.io/badge/Made%20with-NodeJS-blue.svg" alt="Made with NodeJS">
<img src="https://img.shields.io/github/release/EmeraldRusher/SupportBot.svg" alt="GitHub release"> <img src="https://img.shields.io/github/release/EmeraldRusher/SupportBot.svg" alt="GitHub release">
<img src="https://img.shields.io/github/package-json/dependency-version/EmeraldRusher/SupportBot/discord.js.svg" alt="GitHub package.json dependency version (prod)"> <img src="https://img.shields.io/github/package-json/dependency-version/EmeraldRusher/SupportBot/discord.js.svg" alt="GitHub package.json dependency version (prod)">
@@ -18,7 +15,7 @@ SupportBot is a free & open source discord bot for your server that has the capa
| 2.x | 🚫 | Discontinued | | 2.x | 🚫 | Discontinued |
| 3.x | ✔️ | Supported | | 3.x | ✔️ | Supported |
| 4.x | ✔️ | Supported | | 4.x | ✔️ | Supported |
| Premium | ❌ | Not released yet | | 5.x | ✔️ | Supported |
# Getting Started # Getting Started
Firstly you will need to download the resource, Once you have downloaded the resource open a new tab in your browser and go to https://discordapp.com/developers/applications/. Create a new application and then open your app and select bot and then create your bot. Copy the bot token and paste it where it says ``"token": "BOT TOKEN HERE",`` in the ``settings.json`` file. Firstly you will need to download the resource, Once you have downloaded the resource open a new tab in your browser and go to https://discordapp.com/developers/applications/. Create a new application and then open your app and select bot and then create your bot. Copy the bot token and paste it where it says ``"token": "BOT TOKEN HERE",`` in the ``settings.json`` file.
@@ -61,7 +58,7 @@ Once you have setup your discord application such as invited the bot and added y
"category": "Tickets", "category": "Tickets",
"Ticket_Message": "Your support ticket has been opened successfully\nPlease allow us some time to reach out to you.", "Ticket_Message": "Your support ticket has been opened successfully\nPlease allow us some time to reach out to you.",
"Ticket_Logs": "ticket-logs", "Ticket_Logs": "ticket-logs",
"bot.settings.Default_Ticket_Reason": "No Subject", "Default_Ticket_Reason": "No Subject",
"Ticket_React_Message": ":mailbox: React to create your support ticket.", "Ticket_React_Message": ":mailbox: React to create your support ticket.",
"Commands_Log_Title": "SupportBot Logs", "Commands_Log_Title": "SupportBot Logs",
@@ -112,18 +109,18 @@ Once you have setup your discord application such as invited the bot and added y
``` ```
# Contributors List # Contributors List
<p>
<a href="https://github.com/iJosGCS">
<img src="https://cdn.discordapp.com/avatars/199237487648833556/cdd7d976b75698b19e3c6b64e1dcdceb.png?size=32" alt="iJosGCS Profile">
<strong>@iJosGCS</strong>
</a>
</p>
<p> <p>
<a href="https://github.com/RedstoneGamez"> <a href="https://github.com/RedstoneGamez">
<img src="https://cdn.discordapp.com/avatars/282610987801247744/9567e0674a5a6d371bb5d6efb956d57b.png?size=32" alt="RedstoneGamez Profile"> <img src="https://cdn.discordapp.com/avatars/282610987801247744/9567e0674a5a6d371bb5d6efb956d57b.png?size=32" alt="RedstoneGamez Profile">
<strong>@RedstoneGamez</strong> <strong>RedstoneGamez</strong>
</a> </a>
</p> </p>
# Donators List # Donators List
# Community
<p align="center">
<a href="https://discord.gg/tNt95Ba">
<img src="https://discordapp.com/api/guilds/516345301985132552/widget.png?style=banner1" alt="Discord Server">
</a>
</p>
+3 -3
View File
@@ -11,15 +11,15 @@ module.exports.run = async (bot, message, args) => {
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Add_Command}`) console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Add_Command}`)
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.support) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.staff)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.support}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!staffGroup) return message.reply({embed: rolemissing}); if (!staffGroup) return message.reply({embed: rolemissing});
const donothaverole = new Discord.RichEmbed() const donothaverole = new Discord.RichEmbed()
.setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.support}**`) .setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole}); if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole});
+5 -4
View File
@@ -6,7 +6,7 @@ const bot = new Discord.Client()
bot.settings = require("../settings.json"); bot.settings = require("../settings.json");
exports.run = (bot, message, args) => { exports.run = async(bot, message, args) => {
message.delete(); message.delete();
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`)
@@ -31,8 +31,9 @@ exports.run = (bot, message, args) => {
let ac = message.guild.channels.find(AnnounceChannel => AnnounceChannel.name === `${bot.settings.Announcement_Channel}`) let ac = message.guild.channels.find(AnnounceChannel => AnnounceChannel.name === `${bot.settings.Announcement_Channel}`)
if(!ac) return message.channel.send(`:x: Error! Could not find the logs channel **${bot.settings.Announcement_Channel}**`) if(!ac) return message.channel.send(`:x: Error! Could not find the logs channel **${bot.settings.Announcement_Channel}**`)
ac.send(embed) ac.send("@everyone").then((msg) => {
ac.send(`${bot.settings.Annuoncement_Tag_Role}`) ac.send(embed);
});
const SuggestionSuccessEmbed = new Discord.RichEmbed() const SuggestionSuccessEmbed = new Discord.RichEmbed()
.setDescription(`:white_check_mark: You have successfully created an announcement. <#${ac.id}>`) .setDescription(`:white_check_mark: You have successfully created an announcement. <#${ac.id}>`)
@@ -50,7 +51,7 @@ exports.run = (bot, message, args) => {
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
.setFooter(bot.settings.footer) .setFooter(bot.settings.footer)
let CommandLog = message.guild.channels.find(LogsChannel => LogsChannel === `${bot.settings.Command_Log_Channel}`); let CommandLog = message.guild.channels.find(LogsChannel => LogsChannel.name === `${bot.settings.Command_Log_Channel}`);
if(!CommandLog) return message.channel.send(`:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json```); if(!CommandLog) return message.channel.send(`:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json```);
CommandLog.send(CMDLog); CommandLog.send(CMDLog);
+104 -37
View File
@@ -1,58 +1,125 @@
// SupportBot // SupportBot
// Command: Close Ticket // Command: Close Ticket
const Discord = require("discord.js"); const Discord = require( "discord.js" );
const bot = new Discord.Client() const bot = new Discord.Client()
bot.settings = require("../settings.json"); bot.settings = require( "../settings.json" );
exports.run = (bot, message, args) => { /**
* @param {Discord.Message} message
*/
exports.run = ( bot, message, args ) => {
message.delete(); message.delete();
const outsideticket = new Discord.RichEmbed()
.setDescription(`:x: Cannot use this command becase you are outside a ticket channel.`)
.setColor(bot.settings.colour)
if (!message.channel.name.startsWith(`ticket-`)) return message.channel.send({embed: outsideticket});
const close1 = new Discord.RichEmbed()
.setDescription(`Looks like you have come to the end of your support ticket\nPlease confirm that you want to close your ticket by saying ||**confirm**||`)
.setFooter("Your request will be avoided in 20 seconds")
.setColor(bot.settings.colour)
message.channel.send({embed: close1}).then(m => {
message.channel.awaitMessages(response => response.content === `confirm`, {
max: 1,
time: 10000,
errors: ['time'],
}).then((collected) => { if ( !message.channel.name.startsWith( `ticket-` ) ) {
message.channel.delete(); const embed = new Discord.RichEmbed()
.setDescription( `:x: Cannot use this command becase you are outside a ticket channel.` )
.setColor( bot.settings.colour );
}).catch(() => { message.channel.send( embed );
m.edit('Close ticket request, timedout').then(m2 => { return;
m2.delete(); }
}, 3000);
}); const closeRequestEmbed = new Discord.RichEmbed()
}); .setDescription( `Looks like you have come to the end of your support ticket\nPlease confirm that you want to close your ticket by saying ||**confirm**||` )
.setFooter( "Your request will be avoided in 20 seconds" )
.setColor( bot.settings.colour )
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Close_Command}`)
message.channel.send( closeRequestEmbed ).then( m => {
message.channel.awaitMessages( response => response.content.toLowerCase() === `confirm`, {
max: 1,
time: 20 * 1000,
errors: [ 'time' ],
} ).then( collected => {
let logChannel = message.guild.channels.find( channel => channel.name === bot.settings.Transcript_Logs );
let user = message.author;
let reason = args.join( " " ) || "No reason provided.";
let name = message.channel.name;
let ticketChannel = message.channel;
message.channel.send( bot.settings.Ticket_Closing )
.then( () => {
const logEmbed = new Discord.RichEmbed()
.setTitle( bot.settings.Transcript_Title )
.setColor( bot.settings.colour )
.setFooter( bot.settings.footer )
.addField( "Ticket Author", user )
.addField( "Closed By", message.author.tag )
.addField( "Reason", reason );
message.channel.fetchMessages( { limit: 100 } )
.then( msgs => {
let txt = '';
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`;
msgs.forEach( msg => {
if ( msg.content ) {
txt += `----- ${msg.author.tag} at ${msg.createdAt}\n`;
txt += `${msg.content}\n`;
txt += `-----\n\n`;
}
} );
message.author.send( `A transcript has been generated for the ticket you closed.` );
message.author.send( new Discord.Attachment( Buffer.from( txt ), `${name}.txt` ) );
logChannel.send( logEmbed );
logChannel.send( new Discord.Attachment( Buffer.from( txt ), `${name}.txt` ) );
message.channel.delete();
// message.channel.fetchMessages( { limit: 100, before: msgs.last().id } )
// .then( msg => {
// const merged = msgs.concat( msg );
// 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;
// }, '' );
// log.send( { files: [ { attachment: Buffer.from( output, 'utf8' ), name: `${name}.txt` } ] } ).then( c.delete() ).catch( console.error ); // sends the file to logs
// return log.send( embed1 ).catch( console.error );
// } )
} );
} )
} ).catch( () => {
m.edit( 'The request to close the ticket has timed out.' ).then( m2 => m2.delete( 3000 ) );
} );
} );
console.log( `\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Close_Command}` )
const CMDLog = new Discord.RichEmbed() const CMDLog = new Discord.RichEmbed()
.setTitle(bot.settings.Commands_Log_Title) .setTitle( bot.settings.Commands_Log_Title )
.addField(`User`, `<@${message.author.id}>`) .addField( `User`, `<@${message.author.id}>` )
.addField(`Command`, bot.settings.Close_Command, true) .addField( `Command`, bot.settings.Close_Command, true )
.addField(`Channel`, message.channel, true) .addField( `Channel`, message.channel, true )
.addField(`Executed At`, message.createdAt, true) .addField( `Executed At`, message.createdAt, true )
.setColor(bot.settings.colour) .setColor( bot.settings.colour )
.setFooter(bot.settings.footer) .setFooter( bot.settings.footer )
let CommandLog = message.guild.channels.find(LogsChannel => LogsChannel.name === `${bot.settings.Command_Log_Channel}`); let CommandLog = message.guild.channels.find( LogsChannel => LogsChannel.name === `${bot.settings.Command_Log_Channel}` );
if(!CommandLog) return message.channel.send(`:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json```); if ( !CommandLog ) return message.channel.send( `:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json``` );
CommandLog.send(CMDLog); CommandLog.send( CMDLog );
} }
exports.help = { exports.help = {
name: bot.settings.Close_Command, name: bot.settings.Close_Command,
} }
+38 -5
View File
@@ -9,15 +9,15 @@ bot.settings = require("../settings.json");
exports.run = (bot, message, args) => { exports.run = (bot, message, args) => {
message.delete(); message.delete();
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.support}`) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.support}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!staffGroup) return message.reply({embed: rolemissing}); if (!staffGroup) return message.reply({embed: rolemissing});
const donothaverole = new Discord.RichEmbed() const donothaverole = new Discord.RichEmbed()
.setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.support}**`) .setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole}); if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole});
@@ -25,8 +25,41 @@ const outsideticket = new Discord.RichEmbed()
.setDescription(`:x: Cannot use this command becase you are outside a ticket channel.`) .setDescription(`:x: Cannot use this command becase you are outside a ticket channel.`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.channel.name.startsWith(`ticket-`)) return message.channel.send({embed: outsideticket}); if (!message.channel.name.startsWith(`ticket-`)) return message.channel.send({embed: outsideticket});
message.channel.delete(); const log = message.guild.channels.find(channel => channel.name === bot.settings.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(() => {
const embed1 = new Discord.RichEmbed()
.setTitle(bot.settings.Transcript_Title)
.setColor(bot.settings.colour)
.setFooter(bot.settings.footer)
.addField("Ticket Author", uID)
.addField("Closed By", message.author.tag)
.addField("Reason", reason)
message.channel.fetchMessages({ limit: 100 })
.then(msgs => {
message.channel.fetchMessages({ limit: 100, before: msgs.last().id })
.then(msg => {
const merged = msgs.concat(msg);
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;
}, '');
log.send({ files: [{ attachment: Buffer.from(output, 'utf8'), name: `${name}.txt` }] }).then(c.delete()).catch(console.error); // sends the file to logs
return log.send(embed1).catch(console.error);
})
});
})
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Forceclose_Command}`) console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Forceclose_Command}`)
const CMDLog = new Discord.RichEmbed() const CMDLog = new Discord.RichEmbed()
@@ -47,4 +80,4 @@ console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${
exports.help = { exports.help = {
name: bot.settings.Forceclose_Command, name: bot.settings.Forceclose_Command,
} }
+2
View File
@@ -15,6 +15,7 @@ exports.run = (bot, message, args) => {
userCommands += `**${bot.settings.prefix}${bot.settings.Ticket_Command} <reason>**: Create a support ticket\n`; userCommands += `**${bot.settings.prefix}${bot.settings.Ticket_Command} <reason>**: Create a support ticket\n`;
userCommands += `**${bot.settings.prefix}${bot.settings.Close_Command}**: Close your support ticket\n`; userCommands += `**${bot.settings.prefix}${bot.settings.Close_Command}**: Close your support ticket\n`;
userCommands += `**${bot.settings.prefix}${bot.settings.Suggest_Command} <suggestion>**: Create a server suggestion\n`; userCommands += `**${bot.settings.prefix}${bot.settings.Suggest_Command} <suggestion>**: Create a server suggestion\n`;
userCommands += `**${bot.settings.prefix}${bot.settings.Report_Command} <user> <reason>**: Create a server suggestion\n`;
let supportCommands = ""; let supportCommands = "";
supportCommands += `**${bot.settings.prefix}${bot.settings.Add_Command} <user>**: Adds a user to a ticket\n`; supportCommands += `**${bot.settings.prefix}${bot.settings.Add_Command} <user>**: Adds a user to a ticket\n`;
@@ -27,6 +28,7 @@ exports.run = (bot, message, args) => {
staffCommands += `**${bot.settings.prefix}${bot.settings.Say_Command} <message>**: Send a message as the bot\n`; staffCommands += `**${bot.settings.prefix}${bot.settings.Say_Command} <message>**: Send a message as the bot\n`;
staffCommands += `**${bot.settings.prefix}${bot.settings.Lockchat_Command}**: Lock the chat channel\n`; staffCommands += `**${bot.settings.prefix}${bot.settings.Lockchat_Command}**: Lock the chat channel\n`;
staffCommands += `**${bot.settings.prefix}${bot.settings.UnLockchat_Command}**: UnLock the chat channel\n`; staffCommands += `**${bot.settings.prefix}${bot.settings.UnLockchat_Command}**: UnLock the chat channel\n`;
staffCommands += `**${bot.settings.prefix}${bot.settings.Poll_Command}**: Create a poll\n`;
const embed = new Discord.RichEmbed() const embed = new Discord.RichEmbed()
.setTitle(bot.settings.botname) .setTitle(bot.settings.botname)
+3 -2
View File
@@ -10,7 +10,7 @@ exports.run = async(bot, message, args) => {
message.delete(); message.delete();
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`)
let everyoneRole = message.guild.roles.find(everyone => everyone.name === `${bot.settings.everyone}`) let lockedRole = message.guild.roles.find(lc => lc.name === `${bot.settings.locked_role}`)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
@@ -22,7 +22,8 @@ exports.run = async(bot, message, args) => {
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply(donothaverole) if (!message.member.roles.has(staffGroup.id)) return message.reply(donothaverole)
message.channel.overwritePermissions(everyoneRole, { READ_MESSAGES: false, SEND_MESSAGES: false }); message.channel.overwritePermissions(lockedRole, { READ_MESSAGES: false, SEND_MESSAGES: false });
message.channel.overwritePermissions(staffGroup, { READ_MESSAGES: true, SEND_MESSAGES: true });
const lockmsg = new Discord.RichEmbed() const lockmsg = new Discord.RichEmbed()
.setDescription(":white_check_mark: **Chat Locked**") .setDescription(":white_check_mark: **Chat Locked**")
+3 -3
View File
@@ -11,15 +11,15 @@ module.exports.run = async (bot, message, args) => {
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Add_Command}`) console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Add_Command}`)
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.support) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.staff)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.support}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!staffGroup) return message.reply({embed: rolemissing}); if (!staffGroup) return message.reply({embed: rolemissing});
const donothaverole = new Discord.RichEmbed() const donothaverole = new Discord.RichEmbed()
.setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.support}**`) .setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole}); if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole});
+3 -3
View File
@@ -9,15 +9,15 @@ bot.settings = require("../settings.json");
exports.run = (bot, message, args) => { exports.run = (bot, message, args) => {
message.delete(); message.delete();
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.support) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === bot.settings.staff)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.support}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!staffGroup) return message.reply({embed: rolemissing}); if (!staffGroup) return message.reply({embed: rolemissing});
const donothaverole = new Discord.RichEmbed() const donothaverole = new Discord.RichEmbed()
.setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.support}**`) .setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.staff}**`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole}); if (!message.member.roles.has(staffGroup.id)) return message.reply({embed: donothaverole});
+294
View File
@@ -0,0 +1,294 @@
const Discord = require("discord.js");
const bot = new Discord.Client()
bot.settings = require("../settings.json");
exports.run = async (bot, message, args) => {
if (message.guild.owner === message.member) {
message.delete(1000);
const embed = new Discord.RichEmbed()
.setTitle("SupportBot Setup Mode")
.setColor("#fff")
.setDescription(`${bot.settings.botname} is about to enter **Setup Mode**.\nThis means that all the roles & channels that are\nrequired to allow supportbot to work will be created.`)
.setFooter("Setup mode will expire in 60 seconds")
message.channel.send(embed).then((msg) => {
msg.react("✅");
const filter = (reaction, user) => reaction.emoji.name === "✅" && user.id === message.author.id;
msg.awaitReactions(filter, {
max: 1,
time: 60000,
errors: ["time"]
}).then(async (collected) => {
msg.clearReactions();
const embed1 = new Discord.RichEmbed()
.setTitle("SupportBot Setup Mode")
.setColor("#fff")
.setDescription(`${bot.settings.botname} has activated **Setup Mode**\nPlease allow a couple minutes for the process to be complete.`)
msg.edit(embed1).then((m) => {
m.delete(5000);
m.edit(":white_check_mark: **Success!** You\'r server is ready, thanks for using SupportBot by Emerald Services.");
});
const reaction = collected.first();
if (reaction.emoji.name === "✅") {
// Roles
let supportRole = bot.settings.support;
let staffRole = bot.settings.staff;
let autoRole = bot.settings.Auto_Role;
let Department_Role_1 = bot.settings.Department_Role_1
let Department_Role_2 = bot.settings.Department_Role_2
let Department_Role_3 = bot.settings.Department_Role_3
// Channels & Categories
let generalCategory = bot.settings.General_Category;
let informationCategory = bot.settings.InformationCategory;
let ticketCategory = bot.settings.category;
let staffCategory = bot.settings.StaffCategory;
let accessChannel = bot.settings.Access_Channel;
let announceChannel = bot.settings.Announcement_Channel;
let suggestChannel = bot.settings.Suggestion_Channel;
let reportsChannel = bot.settings.Report_Channel;
let ticketsChannel = bot.settings.Tickets_Channel;
let ticketsVoice1 = bot.settings.TicketsVoice1;
let ticketsVoice2 = bot.settings.TicketsVoice2;
let generalChannel = bot.settings.GeneralChannel;
let pollsChannel = bot.settings.Poll_Channel;
let botSpam = bot.settings.BotSpam_Channel;
let staffGeneral = bot.settings.StaffChat;
let staffCommands = bot.settings.StaffCmds;
let staffVoice = bot.settings.StaffVoice;
let ticketLogs = bot.settings.Ticket_Logs;
let commandLogs = bot.settings.Command_Log_Channel;
// Information Category
await message.guild.createChannel(`${informationCategory}`, {
type: "category",
position: 1
}).then(async (cat) => {
await message.guild.createChannel(`${accessChannel}`, {
type: "text",
position: 1,
topic: `${bot.settings.Access_Topic}`,
parent: cat
});
await message.guild.createChannel(`${announceChannel}`, {
type: "text",
position: 2,
topic: `${bot.settings.Announcement_Topic}`,
parent: cat
});
await message.guild.createChannel(`${pollsChannel}`, {
type: "text",
position: 3,
topic: `${bot.settings.Poll_Topic}`,
parent: cat
});
await message.guild.createChannel(`${suggestChannel}`, {
type: "text",
position: 4,
topic: `${bot.settings.Suggestion_Topic}`,
parent: cat
});
await message.guild.createChannel(`${reportsChannel}`, {
type: "text",
position: 5,
topic: `${bot.settings.Report_Topic}`,
parent: cat
});
});
// General Category
await message.guild.createChannel(`${generalCategory}`, {
type: "category",
position: 2
}).then(async (cat) => {
await message.guild.createChannel(`${generalChannel}`, {
type: "text",
position: 1,
topic: `${bot.settings.GeneralTopic}`,
parent: cat
});
await message.guild.createChannel(`${botSpam}`, {
type: "text",
position: 2,
topic: `${bot.settings.BotSpam_Topic}`,
parent: cat
});
});
// Support Category
await message.guild.createChannel(`${ticketCategory}`, {
type: "category",
position: 3
}).then(async (cat) => {
await message.guild.createChannel(`${ticketsChannel}`, {
type: "text",
position: 1,
topic: `${bot.settings.Tickets_Topic}`,
parent: cat
});
await message.guild.createChannel(`${ticketsVoice1}`, {
type: "voice",
position: 2,
parent: cat,
userLimit: 2,
speakable: true,
joineable: true
});
await message.guild.createChannel(`${ticketsVoice2}`, {
type: "voice",
position: 3,
parent: cat,
userLimit: 2,
speakable: true,
joineable: true
});
});
// Staff Category (Private)
await message.guild.createChannel(`${staffCategory}`, {
type: "category",
position: 4
}).then(async (cat) => {
await message.guild.createChannel(`${staffGeneral}`, {
type: "text",
position: 1,
parent: cat
});
await message.guild.createChannel(`${staffCommands}`, {
type: "text",
position: 2,
parent: cat
});
await message.guild.createChannel(`${staffVoice}`, {
type: "voice",
position: 3,
parent: cat,
joineable: true,
speakable: true
});
await message.guild.createChannel(`${ticketLogs}`, {
type: "text",
position: 4,
parent: cat
});
await message.guild.createChannel(`${commandLogs}`, {
type: "text",
position: 5,
parent: cat
});
await message.guild.createRole({
name: `${staffRole}`,
color: "#ff0000",
position: 1,
permissions: {
"MANAGE_CHANNELS": true,
"MANAGE_GUILD": true,
"MENTION_EVERYONE": true,
"CREATE_INSTANT_INVITE": true,
"KICK_MEMBERS": true,
"VIEW_AUDIT_LOG": true,
"MANAGE_NICKNAMES": true,
"CONNECT": true,
"SPEAK": true,
"USE_EXTERNAL_EMOJIS": true,
"MANAGE_MESSAGES": true,
"PRIORITY_SPEAKER": true
},
mentionable: true
});
await message.guild.createRole({
name: `${autoRole}`,
color: "#ffffff",
position: 2,
permissions: {
"MANAGE_CHANNELS": false,
"MANAGE_GUILD": false,
"MENTION_EVERYONE": false,
"CREATE_INSTANT_INVITE": true,
"KICK_MEMBERS": false,
"VIEW_AUDIT_LOG": false,
"MANAGE_NICKNAMES": false,
"CONNECT": true,
"SPEAK": true,
"USE_EXTERNAL_EMOJIS": true,
"MANAGE_MESSAGES": false,
"PRIORITY_SPEAKER": false
},
mentionable: false
});
await message.guild.createRole({
name: `${Department_Role_1}`,
color: "#ffffff",
position: 2,
permissions: {
"MANAGE_CHANNELS": false,
"MANAGE_GUILD": false,
"MENTION_EVERYONE": false,
"CREATE_INSTANT_INVITE": true,
"KICK_MEMBERS": true,
"VIEW_AUDIT_LOG": true,
"MANAGE_NICKNAMES": true,
"CONNECT": true,
"SPEAK": true,
"USE_EXTERNAL_EMOJIS": true,
"MANAGE_MESSAGES": true,
"PRIORITY_SPEAKER": true
},
mentionable: false
});
await message.guild.createRole({
name: `${Department_Role_2}`,
color: "#ffffff",
position: 2,
permissions: {
"MANAGE_CHANNELS": false,
"MANAGE_GUILD": false,
"MENTION_EVERYONE": false,
"CREATE_INSTANT_INVITE": true,
"KICK_MEMBERS": true,
"VIEW_AUDIT_LOG": true,
"MANAGE_NICKNAMES": true,
"CONNECT": true,
"SPEAK": true,
"USE_EXTERNAL_EMOJIS": true,
"MANAGE_MESSAGES": true,
"PRIORITY_SPEAKER": true
},
mentionable: false
});
await message.guild.createRole({
name: `${Department_Role_3}`,
color: "#ffffff",
position: 2,
permissions: {
"MANAGE_CHANNELS": false,
"MANAGE_GUILD": false,
"MENTION_EVERYONE": false,
"CREATE_INSTANT_INVITE": true,
"KICK_MEMBERS": true,
"VIEW_AUDIT_LOG": true,
"MANAGE_NICKNAMES": true,
"CONNECT": true,
"SPEAK": true,
"USE_EXTERNAL_EMOJIS": true,
"MANAGE_MESSAGES": true,
"PRIORITY_SPEAKER": true
},
mentionable: false
});
});
} else {
return;
}
});
});
} else {
message.channel.send(":x: **Error:** You don't have permissions to use this command.").then((msg) => {
msg.delete(5000);
});
}
}
exports.help = {
name: bot.settings.Setup_Command
}
+69 -50
View File
@@ -12,33 +12,6 @@ exports.run = (bot, message, args) => {
const ID = Math.floor(Math.random() * 10) + 2000; const ID = Math.floor(Math.random() * 10) + 2000;
const subject = args.join(" ") || `${bot.settings.Default_Ticket_Reason}`; const subject = args.join(" ") || `${bot.settings.Default_Ticket_Reason}`;
// Ticket Reactions
const reactembed = new Discord.RichEmbed()
.setColor(bot.settings.colour)
.setDescription(`${bot.settings.Ticket_React_Message}`);
message.channel.send(reactembed)
.then(function(msg) {
msg.react('✅').then(() => msg.react('❎'));
const filter = (reaction, user) => {
return ['✅', '❎'].includes(reaction.emoji.name) && user.id !== msg.author.id;
};
msg.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === '❎') {
const successEmbed = new Discord.RichEmbed()
.setDescription(`:tickets: <@${message.author.id}> You have canceled your support request.`)
.setColor(bot.settings.colour);
message.channel.send(successEmbed);
}
if (reaction.emoji.name === '✅') {
const alreadyopen = new Discord.RichEmbed() const alreadyopen = new Discord.RichEmbed()
.setDescription(`:x: Cannot create a ticket because **ticket-${message.author.username}** already exists.`) .setDescription(`:x: Cannot create a ticket because **ticket-${message.author.username}** already exists.`)
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
@@ -48,11 +21,17 @@ exports.run = (bot, message, args) => {
}).then(TicketChannel => { }).then(TicketChannel => {
// Roles // Roles
let staff = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.support}`) let staff = message.guild.roles.find(supportRole => supportRole.name === `${bot.settings.staff}`)
let everyone = message.guild.roles.find(everyoneRole => everyoneRole.name === `@everyone`) let everyone = message.guild.roles.find(everyoneRole => everyoneRole.name === "@everyone")
let department = message.guild.roles.find(DepartmentRole => DepartmentRole.name === `${bot.settings.Department_Role_1}`)
let department2 = message.guild.roles.find(DepartmentRole => DepartmentRole.name === `${bot.settings.Department_Role_2}`)
let department3 = message.guild.roles.find(DepartmentRole => DepartmentRole.name === `${bot.settings.Department_Role_3}`)
// Permissions // Permissions
TicketChannel.overwritePermissions(everyone, { SEND_MESSAGES: false, READ_MESSAGES: false }) TicketChannel.overwritePermissions(everyone, { SEND_MESSAGES: false, READ_MESSAGES: false })
TicketChannel.overwritePermissions(department, { SEND_MESSAGES: false, READ_MESSAGES: false })
TicketChannel.overwritePermissions(department2, { SEND_MESSAGES: false, READ_MESSAGES: false })
TicketChannel.overwritePermissions(department3, { SEND_MESSAGES: false, READ_MESSAGES: false })
TicketChannel.overwritePermissions(staff, { SEND_MESSAGES: true, READ_MESSAGES: true }) TicketChannel.overwritePermissions(staff, { SEND_MESSAGES: true, READ_MESSAGES: true })
TicketChannel.overwritePermissions(message.author, { SEND_MESSAGES: true, READ_MESSAGES: true }) TicketChannel.overwritePermissions(message.author, { SEND_MESSAGES: true, READ_MESSAGES: true })
TicketChannel.overwritePermissions(bot.user, { SEND_MESSAGES: true, READ_MESSAGES: true }) TicketChannel.overwritePermissions(bot.user, { SEND_MESSAGES: true, READ_MESSAGES: true })
@@ -68,23 +47,70 @@ exports.run = (bot, message, args) => {
} }
const ticketopened = new Discord.RichEmbed() const ticketopened = new Discord.RichEmbed()
.setDescription(`:white_check_mark: <@${message.author.id}> You ticket has been created <#${TicketChannel.id}>`) .setTitle(":white_check_mark: Support Ticket Created")
.setColor(bot.settings.colour) .setDescription(`<@${message.author.id}> your support ticket created successfully`)
.addField("Your Ticket:", `<#${TicketChannel.id}>`)
.setColor(bot.settings.Ticket_Colour)
message.channel.send({embed: ticketopened}); message.channel.send({embed: ticketopened});
// Ticket Message - ( Able to edit this message via the settings.json file ) // Ticket Message - ( Able to edit this message via the settings.json file )
const ticketMessage = `Hi! <@${message.author.id}>\n${bot.settings.Ticket_Message}`; const ticketMessage = `Hi! <@${message.author.id}>\n${bot.settings.Ticket_Message}`;
const TicketMessage = new Discord.RichEmbed() const Department_1 = bot.settings.Ticket_Department_1;
.setDescription(ticketMessage) const Department_2 = bot.settings.Ticket_Department_2;
.setColor(bot.settings.colour) const Department_3 = bot.settings.Ticket_Department_3;
.setFooter(bot.settings.footer)
TicketChannel.send({embed: TicketMessage}); const Emoji_1 = bot.settings.Ticket_Department_Emoji_1;
const Emoji_2 = bot.settings.Ticket_Department_Emoji_2;
const Emoji_3 = bot.settings.Ticket_Department_Emoji_3;
const TicketMessage = new Discord.RichEmbed()
.setDescription(ticketMessage, true)
.addField("Available Departments", `${Emoji_1} ${Department_1}\n${Emoji_2} ${Department_2}\n${Emoji_3} ${Department_3}`)
.setColor(bot.settings.Ticket_Colour)
.setFooter(bot.settings.footer)
if (subject != 'No Subject.') {
TicketChannel.setTopic(subject);
}
TicketChannel.send({embed: TicketMessage}).then(function(msg) {
msg.react(Emoji_1).then(() => msg.react(Emoji_2)).then(() => msg.react(Emoji_3));
const filter = (reaction, user) => {
return [Emoji_1, Emoji_2, Emoji_3].includes(reaction.emoji.name) && user.id !== msg.author.id;
};
msg.awaitReactions(filter, { max: 1, time: 60000, errors: ['time'] })
.then(collected => {
const reaction = collected.first();
if (reaction.emoji.name === `${Emoji_1}`) {
TicketChannel.overwritePermissions(staff, { SEND_MESSAGES: true, READ_MESSAGES: true })
TicketChannel.overwritePermissions(department, { SEND_MESSAGES: true, READ_MESSAGES: true })
msg.channel.send("You have contacted out " + department + "\nPlease wait patiently for somone to reach out to you.")
}
if (reaction.emoji.name === `${Emoji_2}`) {
TicketChannel.overwritePermissions(staff, { SEND_MESSAGES: true, READ_MESSAGES: true })
TicketChannel.overwritePermissions(department2, { SEND_MESSAGES: true, READ_MESSAGES: true })
msg.channel.send("You have contacted out " + department2 + "\nPlease wait patiently for somone to reach out to you.")
}
if (reaction.emoji.name === `${Emoji_3}`) {
TicketChannel.overwritePermissions(staff, { SEND_MESSAGES: true, READ_MESSAGES: true })
TicketChannel.overwritePermissions(department3, { SEND_MESSAGES: true, READ_MESSAGES: true })
msg.channel.send("You have contacted out " + department3 + "\nPlease wait patiently for somone to reach out to you.")
}
});
});
if (subject != 'No Subject.') {
TicketChannel.setTopic(subject);
}
// Ticket Logging // Ticket Logging
const logEmbed = new Discord.RichEmbed() const logEmbed = new Discord.RichEmbed()
.setTitle(":ticket: Logistics of your Ticket") .setTitle(":ticket: Logistics of your Ticket")
@@ -120,15 +146,8 @@ exports.run = (bot, message, args) => {
if(!CommandLog) return message.channel.send(`:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json```); if(!CommandLog) return message.channel.send(`:x: Error! Could not find the logs channel. **${bot.settings.Command_Log_Channel}**\nThis can be changed via ``settings.json```);
CommandLog.send(CMDLog); CommandLog.send(CMDLog);
}
}
})
})
};
exports.help = { exports.help = {
name: bot.settings.Ticket_Command, name: bot.settings.Ticket_Command,
} }
+3 -3
View File
@@ -10,7 +10,7 @@ exports.run = async(bot, message, args) => {
message.delete(); message.delete();
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`) let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`)
let everyoneRole = message.guild.roles.find(everyone => everyone.name === `${bot.settings.everyone}`) let lockedRole = message.guild.roles.find(lc => lc.name === `${bot.settings.locked_role}`)
const rolemissing = new Discord.RichEmbed() const rolemissing = new Discord.RichEmbed()
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`) .setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
@@ -22,8 +22,8 @@ exports.run = async(bot, message, args) => {
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
if (!message.member.roles.has(staffGroup.id)) return message.reply(donothaverole) if (!message.member.roles.has(staffGroup.id)) return message.reply(donothaverole)
message.channel.overwritePermissions(everyoneRole, { READ_MESSAGES: true, SEND_MESSAGES: true }); message.channel.overwritePermissions(lockedRole, { READ_MESSAGES: true, SEND_MESSAGES: true });
message.channel.overwritePermissions(staffGroup, { READ_MESSAGES: true, SEND_MESSAGES: true });
const lockmsg = new Discord.RichEmbed() const lockmsg = new Discord.RichEmbed()
.setDescription(":white_check_mark: **Chat Un-Locked**") .setDescription(":white_check_mark: **Chat Un-Locked**")
.setColor(bot.settings.colour) .setColor(bot.settings.colour)
+7 -9
View File
@@ -7,7 +7,7 @@
// Resource: SupportBot // Resource: SupportBot
// Developed by Emerald Services // Developed by Emerald Services
// Version: 4.0.0 // Version: 5.0.0
const Discord = require("discord.js"); const Discord = require("discord.js");
const fs = require("fs"); const fs = require("fs");
@@ -48,14 +48,12 @@ fs.readdir("./sb-addons/", (err, files) => {
bot.on("ready", async () => { bot.on("ready", async () => {
bot.user.setActivity(bot.settings.BotStatus, {type:"PLAYING"}); bot.user.setActivity(bot.settings.BotStatus, {type:"PLAYING"});
console.log(`\x1b[36m`, `=== [SupportBot] ===\n\nSupportBot - Created by Emerald Services\nInvite ${bot.user.username} to your server\nhttps://discordapp.com/api/oauth2/authorize?client_id=${bot.user.id}&permissions=8&scope=bot\n\n=== [SupportBot] ===`) console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`)
console.log(`\u001b[31m`, `------------[ SupportBot ]------------`) console.log(`\u001b[37m`, `Emerald Services has successfully connected to discord`)
console.log(`\u001b[32m`, `Thank you for using SupportBot\n If you have any issues\n contact our team and we will\n give you furthur instructions`) console.log(`\u001b[37m`, `Invite your bot with https://discordapp.com/api/oauth2/authorize?client_id=516372960110444574&permissions=8&scope=bot`)
console.log(`\u001b[31m`, `------------[ SupportBot ]------------`) console.log(`\u001b[37m`, `© ️SupportBot created by Emerald Services`)
console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`)
console.log(`\u001b[31m`, `\n\n------------[ SupportBot Stats ]------------`) console.log(`\u001b[43;1m \u001b[37m \u001b[1m`, `If you require any assistance you can contact us at discord, https://discord.gg/tNt95Ba`)
console.log(`\u001b[32m`, `Bot Username: ${bot.user.username}\nInvite Link: https://discordapp.com/api/oauth2/authorize?client_id=${bot.user.username}&permissions=8&scope=bot`)
console.log(`\u001b[31m`, `------------[ SupportBot Stats ]------------`)
}); });
+5
View File
@@ -0,0 +1,5 @@
{
"name": "SupportBot",
"version": "4.0",
"lockfileVersion": 1
}
+1 -1
View File
@@ -13,8 +13,8 @@
"npm": "6.9.0" "npm": "6.9.0"
}, },
"dependencies": { "dependencies": {
"discord.js": "^11.5.1",
"array-sort": "^1.0.0", "array-sort": "^1.0.0",
"discord.js": "^11.5.1",
"table": "^5.4.4" "table": "^5.4.4"
}, },
"repository": { "repository": {
+47 -17
View File
@@ -1,34 +1,55 @@
{ {
"SupportBot": "v4.0.0", "SupportBot": "v5.0",
"token": "BOT_TOKEN_HERE", "token": "BOT_TOKEN_HERE",
"prefix": "!", "prefix": "-",
"botname": "SupportBot", "botname": "SupportBot",
"colour": "#13bd2a", "colour": "#13bd2a",
"footer": "Support Bot, By Emerald Services", "footer": "Support Bot, By Emerald Services",
"BotStatus": "Support Bot", "BotStatus": "Support Bot",
"staff": "Staff", "staff": "Staff",
"support": "Support",
"locked_role": "@everyone",
"everyone": "@everyone", "everyone": "@everyone",
"Auto_Role": "Member", "Auto_Role": "Member",
"LINKS": { "Department_Role_1": "Support",
"Discord": "https://discord.gg/", "Department_Role_2": "Security",
"Twitter": "https://twitter.com/", "Department_Role_3": "Sales",
"Website": "https://example.com/",
"AddMore": "AddMoreIfYouWant"
},
"LINKS_TITLE": "SupportBot Links",
"category": "Tickets", "category": "Tickets",
"Ticket_Message": "Your support ticket has been opened successfully\nPlease allow us some time to reach out to you.", "Ticket_Message": "Your support ticket has been opened successfully\nPlease allow us some time to reach out to you.",
"Ticket_Logs": "ticket-logs", "Ticket_Logs": "ticket-logs",
"bot.settings.Default_Ticket_Reason": "No Subject", "Default_Ticket_Reason": "No Subject",
"Ticket_React_Message": ":mailbox: React to create your support ticket.",
"Ticket_Colour": "#000e42",
"Transcript_Logs": "ticket-data",
"Transcript_Title": "Support Transcript",
"Ticket_Closing": "Your ticket is currently closing",
"Ticket_Department_1": "Support",
"Ticket_Department_2": "Security",
"Ticket_Department_3": "Sales",
"Ticket_Department_Emoji_1": "🎧",
"Ticket_Department_Emoji_2": "🔐",
"Ticket_Department_Emoji_3": "💵",
"General_Category": "General",
"InformationCategory": "Information",
"StaffCategory": "Staff",
"Access_Channel": "welcome",
"GeneralChannel": "general",
"BotSpam_Channel": "bot-spam",
"Tickets_Channel": "open-a-ticket",
"StaffChat": "staff-chat",
"StaffCmds": "staff-commands",
"StaffVoice": "Staff Room",
"TicketsVoice1": "Support Lounge",
"TicketsVoice2": "Support Lounge",
"Commands_Log_Title": "SupportBot Logs", "Commands_Log_Title": "SupportBot Logs",
"Command_Log_Channel": "command-logs", "Command_Log_Channel": "command-logs",
@@ -55,6 +76,14 @@
"Report_Channel": "reports", "Report_Channel": "reports",
"Report_Title": "SupportBot Report", "Report_Title": "SupportBot Report",
"LINKS_TITLE": "SupportBot Links",
"LINKS": {
"Discord": "https://discord.gg/",
"Twitter": "https://twitter.com/",
"Website": "https://example.com/",
"AddMore": "AddMoreIfYouWant"
},
"Announcement_Command": "announce", "Announcement_Command": "announce",
"Say_Command": "say", "Say_Command": "say",
@@ -71,5 +100,6 @@
"Lockchat_Command": "lock", "Lockchat_Command": "lock",
"UnLockchat_Command": "unlock", "UnLockchat_Command": "unlock",
"Poll_Command": "poll", "Poll_Command": "poll",
"Report_Command": "report" "Report_Command": "report",
"Setup_Command": "setup"
} }