Compare commits
70
Commits
SupportBot
..
5.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d416c2e421 | ||
|
|
6bc2e669e4 | ||
|
|
9accb65256 | ||
|
|
d9212584ca | ||
|
|
1a7effb422 | ||
|
|
1480435f15 | ||
|
|
64c6a97657 | ||
|
|
7ae2ff9837 | ||
|
|
f19dec405d | ||
|
|
bbd4e9d162 | ||
|
|
58deff0869 | ||
|
|
628632f43e | ||
|
|
436586117c | ||
|
|
7234ec728c | ||
|
|
fc4d68be39 | ||
|
|
bcf2df4bff | ||
|
|
70a469a951 | ||
|
|
981995cb32 | ||
|
|
406c7d368b | ||
|
|
5c266d8b8d | ||
|
|
4f5b94a491 | ||
|
|
284c83cc1d | ||
|
|
23f06af202 | ||
|
|
82be317595 | ||
|
|
a43c76529f | ||
|
|
26065c2a5c | ||
|
|
6b1dfe01cf | ||
|
|
72443fb7c6 | ||
|
|
28cad23746 | ||
|
|
ebc0d4b137 | ||
|
|
4b198acda7 | ||
|
|
b84c3c75a5 | ||
|
|
de0ec97d9b | ||
|
|
a8302cd276 | ||
|
|
35d8d77f15 | ||
|
|
f853394d9d | ||
|
|
500c01dd1f | ||
|
|
71bfccfb0c | ||
|
|
71e1b64818 | ||
|
|
2118a00a36 | ||
|
|
1c69c21f21 | ||
|
|
31c76fc1c0 | ||
|
|
d31cdf8af2 | ||
|
|
29b5fd2c6f | ||
|
|
aa32525f8c | ||
|
|
f6a67a3373 | ||
|
|
4f78858641 | ||
|
|
c7e70bdaf8 | ||
|
|
5479e0957b | ||
|
|
8500554cfb | ||
|
|
368727cece | ||
|
|
742faf3805 | ||
|
|
7d08cbed84 | ||
|
|
f413bb5f3c | ||
|
|
2b3edc7b45 | ||
|
|
83f982f8d2 | ||
|
|
890a1d41b1 | ||
|
|
996a2c26ca | ||
|
|
fadf042101 | ||
|
|
a819078d7f | ||
|
|
2c9b4c663d | ||
|
|
22e6803e14 | ||
|
|
61cecb112f | ||
|
|
0c18aff34d | ||
|
|
599649a97f | ||
|
|
45194b82da | ||
|
|
570d0985d3 | ||
|
|
5eae625b28 | ||
|
|
fcc5460ff2 | ||
|
|
07d45e50de |
No files matched your search
@@ -1,22 +1,21 @@
|
|||||||
<h1 align="center">SupportBot v3.4</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/package-json/dependency-version/EmeraldRusher/SupportBot/discord.js.svg" alt="GitHub package.json dependency version (prod)">
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
SupportBot is a free & open source discord bot for your server that has the capability to control & manage your servers support.
|
SupportBot is a free & open source discord bot for your server that has the capability to control & manage your servers support.
|
||||||
|
|
||||||
| Version | Supported | Type |
|
| Version | Supported | Status |
|
||||||
| ------- | ------------------ |--------------------|
|
| ------- | ------------------ |--------------------|
|
||||||
| 1.0.x | ❌ | None |
|
| 1.x | 🚫 | Discontinued |
|
||||||
| 2.0.x | ⚠ | Community |
|
| 2.x | 🚫 | Discontinued |
|
||||||
| 3.0.x | ✅ | Priority |
|
| 3.x | ✔️ | Supported |
|
||||||
| 4.0.x | ❌ | N/A |
|
| 4.x | ✔️ | Supported |
|
||||||
| Premium | ❌ | N/A |
|
| 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.
|
||||||
@@ -24,27 +23,50 @@ Firstly you will need to download the resource, Once you have downloaded the res
|
|||||||
# Invite the bot
|
# Invite the bot
|
||||||
Head back to discord developers portal where your application is and head into the ``OAuth`` tab and select bot and then below select ``Administrator`` then copy the link and paste into your browser and it should as your to invite the bot to a server.
|
Head back to discord developers portal where your application is and head into the ``OAuth`` tab and select bot and then below select ``Administrator`` then copy the link and paste into your browser and it should as your to invite the bot to a server.
|
||||||
|
|
||||||
|
# Help
|
||||||
|
If you don't understand something, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official [Emerald Services Server](https://discord.gg/u47MQJ).
|
||||||
|
|
||||||
# Configurating SupportBot
|
# Configurating SupportBot
|
||||||
Once you have setup your discord application such as invited the bot and added your bot token to the ``settings.json`` we can begin configurating your bot. Firstly open up the ``settings.json`` file and you will see loads of different things to config. You will see the following below:
|
Once you have setup your discord application such as invited the bot and added your bot token to the ``settings.json`` we can begin configurating your bot. Firstly open up the ``settings.json`` file and you will see loads of different things to config. You will see the following below:
|
||||||
|
|
||||||
```
|
```
|
||||||
|
{
|
||||||
|
"SupportBot": "v4.0.0",
|
||||||
|
|
||||||
|
"token": "BOT_TOKEN_HERE",
|
||||||
"prefix": "!",
|
"prefix": "!",
|
||||||
"botname": "SupportBot",
|
"botname": "SupportBot",
|
||||||
"colour": "#42f477",
|
"colour": "#13bd2a",
|
||||||
"footer": "Support Bot, By Emerald",
|
"footer": "Support Bot, By Emerald Services",
|
||||||
|
|
||||||
"BotStatus": "Support Bot",.
|
"BotStatus": "Support Bot",
|
||||||
|
|
||||||
"staff": "Staff",
|
"staff": "Staff",
|
||||||
"support": "Support Team",
|
"support": "Support",
|
||||||
"everyone": "@everyone",
|
"everyone": "@everyone",
|
||||||
|
"Auto_Role": "Member",
|
||||||
|
|
||||||
|
"LINKS": {
|
||||||
|
"Discord": "https://discord.gg/",
|
||||||
|
"Twitter": "https://twitter.com/",
|
||||||
|
"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",
|
||||||
|
"Default_Ticket_Reason": "No Subject",
|
||||||
|
"Ticket_React_Message": ":mailbox: React to create your support ticket.",
|
||||||
|
|
||||||
|
"Commands_Log_Title": "SupportBot Logs",
|
||||||
|
"Command_Log_Channel": "command-logs",
|
||||||
|
|
||||||
"Announcement_Title": "SupportBot Announcement",
|
"Announcement_Title": "SupportBot Announcement",
|
||||||
"Announcement_Channel": "announcements",
|
"Announcement_Channel": "announcements",
|
||||||
|
"Announcement_Tag_Role": "@everyone",
|
||||||
|
|
||||||
"Welcome_Message": "Welcome to the server!",
|
"Welcome_Message": "Welcome to the server!",
|
||||||
"Welcome_Channel": "welcome",
|
"Welcome_Channel": "welcome",
|
||||||
@@ -62,22 +84,17 @@ Once you have setup your discord application such as invited the bot and added y
|
|||||||
"suggestyes": "✅",
|
"suggestyes": "✅",
|
||||||
"suggestno": "❎",
|
"suggestno": "❎",
|
||||||
|
|
||||||
"LINK_1_NAME": "Discord",
|
"Report_Channel": "reports",
|
||||||
"LINK_2_NAME": "Twitter",
|
"Report_Title": "SupportBot Report",
|
||||||
"LINK_3_NAME": "Website",
|
|
||||||
|
|
||||||
"LINK_1": "https://dicord.gg/changemeinconfig",
|
|
||||||
"LINK_2": "https://twitter.com/changemeinconfig",
|
|
||||||
"LINK_3": "https://www.example.com/",
|
|
||||||
|
|
||||||
"LINKS_TITLE": "SupportBot Links",
|
"Announcement_Command": "announce",
|
||||||
|
|
||||||
"Ticket_Command": "ticket",
|
|
||||||
"Suggest_Command": "suggest",
|
|
||||||
"Say_Command": "say",
|
"Say_Command": "say",
|
||||||
|
"Suggest_Command": "suggest",
|
||||||
|
"Ping_Command": "ping",
|
||||||
|
"Ticket_Command": "ticket",
|
||||||
"Remove_Command": "remove",
|
"Remove_Command": "remove",
|
||||||
"Add_Command": "add",
|
"Add_Command": "add",
|
||||||
"Ping_Command": "ping",
|
|
||||||
"Close_Command": "close",
|
"Close_Command": "close",
|
||||||
"Forceclose_Command": "forceclose",
|
"Forceclose_Command": "forceclose",
|
||||||
"Rename_Command": "rename",
|
"Rename_Command": "rename",
|
||||||
@@ -85,10 +102,25 @@ Once you have setup your discord application such as invited the bot and added y
|
|||||||
"Link_Command": "links",
|
"Link_Command": "links",
|
||||||
"Lockchat_Command": "lock",
|
"Lockchat_Command": "lock",
|
||||||
"UnLockchat_Command": "unlock",
|
"UnLockchat_Command": "unlock",
|
||||||
"Poll_Command": "poll"
|
"Poll_Command": "poll",
|
||||||
|
"Report_Command": "report"
|
||||||
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
# Contributors List
|
# Contributors List
|
||||||
|
<p>
|
||||||
|
<a href="https://github.com/RedstoneGamez">
|
||||||
|
<img src="https://cdn.discordapp.com/avatars/282610987801247744/9567e0674a5a6d371bb5d6efb956d57b.png?size=32" alt="RedstoneGamez Profile">
|
||||||
|
<strong>RedstoneGamez</strong>
|
||||||
|
</a>
|
||||||
|
</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>
|
||||||
+18
-3
@@ -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});
|
||||||
|
|
||||||
@@ -53,6 +53,21 @@ const useradded = new Discord.RichEmbed()
|
|||||||
message.channel.send({embed: useradded});
|
message.channel.send({embed: useradded});
|
||||||
console.log(`\x1b[36m`, `${message.author} has successfully added ${rUser} to ${message.channel}`)
|
console.log(`\x1b[36m`, `${message.author} has successfully added ${rUser} to ${message.channel}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Add_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
let CommandLog = message.guild.channels.find(LogsChannel => LogsChannel === `${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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
// SupportBot
|
||||||
|
// Command: Say
|
||||||
|
|
||||||
|
const Discord = require("discord.js");
|
||||||
|
const bot = new Discord.Client()
|
||||||
|
|
||||||
|
bot.settings = require("../settings.json");
|
||||||
|
|
||||||
|
exports.run = async(bot, message, args) => {
|
||||||
|
message.delete();
|
||||||
|
|
||||||
|
let staffGroup = message.guild.roles.find(staffRole => staffRole.name === `${bot.settings.staff}`)
|
||||||
|
|
||||||
|
const rolemissing = new Discord.RichEmbed()
|
||||||
|
.setDescription(`:x: Looks like this server doesn't have the role **${bot.settings.staff}**`)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
if (!staffGroup) return message.reply(rolemissing).catch(err=>{console.error(err)})
|
||||||
|
|
||||||
|
const donothaverole = new Discord.RichEmbed()
|
||||||
|
.setDescription(`:x: Sorry! You cannot use this command with the role **${bot.settings.staff}**`)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
if (!message.member.roles.has(staffGroup.id)) return message.reply(donothaverole)
|
||||||
|
|
||||||
|
const embed = new Discord.RichEmbed()
|
||||||
|
.setTitle(`${bot.settings.Announcement_Title}`)
|
||||||
|
.setDescription(args.join(" "))
|
||||||
|
.setTimestamp()
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(`${message.author.username}#${message.author.discriminator}`, message.author.displayAvatarURL)
|
||||||
|
|
||||||
|
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}**`)
|
||||||
|
|
||||||
|
ac.send("@everyone").then((msg) => {
|
||||||
|
ac.send(embed);
|
||||||
|
});
|
||||||
|
|
||||||
|
const SuggestionSuccessEmbed = new Discord.RichEmbed()
|
||||||
|
.setDescription(`:white_check_mark: You have successfully created an announcement. <#${ac.id}>`)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
message.channel.send(SuggestionSuccessEmbed);
|
||||||
|
|
||||||
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Announcement_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Announcement_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
exports.help = {
|
||||||
|
name: bot.settings.Announcement_Command,
|
||||||
|
}
|
||||||
+94
-12
@@ -6,38 +6,120 @@ const bot = new Discord.Client()
|
|||||||
|
|
||||||
bot.settings = require( "../settings.json" );
|
bot.settings = require( "../settings.json" );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Discord.Message} message
|
||||||
|
*/
|
||||||
exports.run = ( bot, message, args ) => {
|
exports.run = ( bot, message, args ) => {
|
||||||
message.delete();
|
message.delete();
|
||||||
|
|
||||||
const outsideticket = new Discord.RichEmbed()
|
|
||||||
|
if ( !message.channel.name.startsWith( `ticket-` ) ) {
|
||||||
|
const embed = 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});
|
|
||||||
const close1 = new Discord.RichEmbed()
|
message.channel.send( embed );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
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**||` )
|
.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" )
|
.setFooter( "Your request will be avoided in 20 seconds" )
|
||||||
.setColor( bot.settings.colour )
|
.setColor( bot.settings.colour )
|
||||||
message.channel.send({embed: close1}).then(m => {
|
|
||||||
message.channel.awaitMessages(response => response.content === `confirm`, {
|
|
||||||
|
message.channel.send( closeRequestEmbed ).then( m => {
|
||||||
|
message.channel.awaitMessages( response => response.content.toLowerCase() === `confirm`, {
|
||||||
max: 1,
|
max: 1,
|
||||||
time: 10000,
|
time: 20 * 1000,
|
||||||
errors: [ 'time' ],
|
errors: [ 'time' ],
|
||||||
|
|
||||||
}).then((collected) => {
|
} ).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.delete();
|
||||||
|
|
||||||
}).catch(() => {
|
// message.channel.fetchMessages( { limit: 100, before: msgs.last().id } )
|
||||||
m.edit('Close ticket request, timedout').then(m2 => {
|
|
||||||
m2.delete();
|
|
||||||
}, 3000);
|
|
||||||
|
|
||||||
|
// .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}` )
|
console.log( `\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Close_Command}` )
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle( bot.settings.Commands_Log_Title )
|
||||||
|
.addField( `User`, `<@${message.author.id}>` )
|
||||||
|
.addField( `Command`, bot.settings.Close_Command, true )
|
||||||
|
.addField( `Channel`, message.channel, true )
|
||||||
|
.addField( `Executed At`, message.createdAt, true )
|
||||||
|
.setColor( bot.settings.colour )
|
||||||
|
.setFooter( bot.settings.footer )
|
||||||
|
|
||||||
|
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``` );
|
||||||
|
|
||||||
|
CommandLog.send( CMDLog );
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
name: bot.settings.Close_Command,
|
name: bot.settings.Close_Command,
|
||||||
}
|
}
|
||||||
+51
-4
@@ -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,10 +25,57 @@ 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()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Forceclose_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+18
-1
@@ -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`;
|
||||||
@@ -23,9 +24,11 @@ exports.run = (bot, message, args) => {
|
|||||||
supportCommands += `**${bot.settings.prefix}${bot.settings.Rename_Command}**: Rename a support ticket\n`;
|
supportCommands += `**${bot.settings.prefix}${bot.settings.Rename_Command}**: Rename a support ticket\n`;
|
||||||
|
|
||||||
let staffCommands = "";
|
let staffCommands = "";
|
||||||
staffCommands += `**${bot.settings.prefix}${bot.settings.Say_Command} <message>**: Create a bot announcement\n`;
|
staffCommands += `**${bot.settings.prefix}${bot.settings.Announcement_Command} <message>**: Create a bot announcement\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)
|
||||||
@@ -39,6 +42,20 @@ exports.run = (bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Help_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Help_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Help_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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`);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+26
-8
@@ -9,20 +9,38 @@ bot.settings = require("../settings.json");
|
|||||||
exports.run = ( bot, message, args ) => {
|
exports.run = ( bot, message, args ) => {
|
||||||
message.delete();
|
message.delete();
|
||||||
|
|
||||||
let BotLinks = "";
|
let botLinks = bot.settings.LINKS;
|
||||||
BotLinks += `[${bot.settings.LINK_1_NAME}](${bot.settings.LINK_1})\n`;
|
|
||||||
BotLinks += `[${bot.settings.LINK_2_NAME}](${bot.settings.LINK_2})\n`;
|
|
||||||
BotLinks += `[${bot.settings.LINK_3_NAME}](${bot.settings.LINK_3})\n`;
|
|
||||||
|
|
||||||
const links = new Discord.RichEmbed()
|
let links = '';
|
||||||
.setTitle(`${bot.settings.LINKS_TITLE}`)
|
|
||||||
.setDescription(BotLinks)
|
for ( let name in botLinks ) {
|
||||||
|
links += `[${name}](${botLinks[ name ]})\n`;
|
||||||
|
}
|
||||||
|
|
||||||
|
let embed = new Discord.RichEmbed()
|
||||||
|
.setTitle( bot.settings.LINKS_TITLE )
|
||||||
|
.setDescription( links )
|
||||||
.setColor( bot.settings.colour )
|
.setColor( bot.settings.colour )
|
||||||
.setFooter( bot.settings.footer )
|
.setFooter( bot.settings.footer )
|
||||||
message.channel.send(links)
|
|
||||||
|
message.channel.send( embed );
|
||||||
|
|
||||||
console.log( `\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Link_Command}` )
|
console.log( `\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Link_Command}` )
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Link_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+17
-2
@@ -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**")
|
||||||
@@ -31,6 +32,20 @@ exports.run = async(bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Lockchat_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Lockchat_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Lockchat_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -16,6 +16,20 @@ exports.run = (bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Ping_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Ping_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Ping_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -39,6 +39,20 @@ exports.run = (bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Poll_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Poll_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Close_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+17
-3
@@ -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});
|
||||||
|
|
||||||
@@ -53,6 +53,20 @@ const useradded = new Discord.RichEmbed()
|
|||||||
message.channel.send({embed: useradded});
|
message.channel.send({embed: useradded});
|
||||||
console.log(`\x1b[36m`, `${message.author} has successfully removed ${rUser} from ${message.channel}`)
|
console.log(`\x1b[36m`, `${message.author} has successfully removed ${rUser} from ${message.channel}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Remove_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+17
-3
@@ -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});
|
||||||
|
|
||||||
@@ -42,6 +42,20 @@ exports.run = (bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Rename_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Rename_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Rename_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -48,6 +48,21 @@ exports.run = (bot, message, args) => {
|
|||||||
} else {
|
} else {
|
||||||
rc.send(embed);
|
rc.send(embed);
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Report_Command}`);
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Report_Command}`);
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Report_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+14
-4
@@ -28,13 +28,23 @@ exports.run = (bot, message, args) => {
|
|||||||
.setColor(bot.settings.colour)
|
.setColor(bot.settings.colour)
|
||||||
.setFooter(`${message.author.username}#${message.author.discriminator}`, message.author.displayAvatarURL)
|
.setFooter(`${message.author.username}#${message.author.discriminator}`, message.author.displayAvatarURL)
|
||||||
|
|
||||||
let ac = message.guild.channels.find(AnnounceChannel => AnnounceChannel.name === `${bot.settings.Announcement_Channel}`)
|
message.channel.send(embed);
|
||||||
if(!ac) return message.channel.send(`:x: Error! Could not find the logs channel **${bot.settings.Announcement_Channel}**`)
|
|
||||||
|
|
||||||
ac.send(embed)
|
|
||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Say_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Say_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Say_Command, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
+23
-3
@@ -11,9 +11,10 @@ exports.run = async(bot, message, args) => {
|
|||||||
|
|
||||||
const SuggestionEmbed = new Discord.RichEmbed()
|
const SuggestionEmbed = new Discord.RichEmbed()
|
||||||
.setTitle(`${bot.settings.Suggestion_Title}`)
|
.setTitle(`${bot.settings.Suggestion_Title}`)
|
||||||
.setDescription(args.join(" "))
|
.setDescription(`\`\`\`${args.join(" ")}\`\`\`\nFrom <@${message.author.id}>`)
|
||||||
.setFooter(`Suggestion by ${message.author.username}`, message.author.displayAvatarURL)
|
.setFooter(`${bot.settings.footer}`, message.author.avatarURL)
|
||||||
.setColor(bot.settings.colour)
|
.setTimestamp(new Date())
|
||||||
|
.setColor(bot.settings.colour);
|
||||||
|
|
||||||
let sc = message.guild.channels.find(SuggestionChannel => SuggestionChannel.name === `${bot.settings.Suggestion_Channel}`);
|
let sc = message.guild.channels.find(SuggestionChannel => SuggestionChannel.name === `${bot.settings.Suggestion_Channel}`);
|
||||||
if(!sc) return message.channel.send(`:x: Error! Could not find the suggestion channel **${bot.settings.Suggestion_Channel}**`);
|
if(!sc) return message.channel.send(`:x: Error! Could not find the suggestion channel **${bot.settings.Suggestion_Channel}**`);
|
||||||
@@ -24,8 +25,27 @@ exports.run = async(bot, message, args) => {
|
|||||||
msg.react(bot.settings.suggestyes).then(() => msg.react(bot.settings.suggestno));
|
msg.react(bot.settings.suggestyes).then(() => msg.react(bot.settings.suggestno));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const SuggestionSuccessEmbed = new Discord.RichEmbed()
|
||||||
|
.setDescription(`:white_check_mark: You have successfully created your suggestion. <#${sc.id}>`)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
message.channel.send(SuggestionSuccessEmbed);
|
||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Suggest_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Suggest_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Suggest_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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}**`);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+79
-11
@@ -6,24 +6,32 @@ const bot = new Discord.Client()
|
|||||||
|
|
||||||
bot.settings = require("../settings.json");
|
bot.settings = require("../settings.json");
|
||||||
|
|
||||||
exports.run = async(bot, message, args) => {
|
exports.run = (bot, message, args) => {
|
||||||
message.delete();
|
message.delete();
|
||||||
|
|
||||||
const ID = Math.floor(Math.random() * 10) + 2000;
|
const ID = Math.floor(Math.random() * 10) + 2000;
|
||||||
const subject = args.join(" ") || "No Subject.";
|
const subject = args.join(" ") || `${bot.settings.Default_Ticket_Reason}`;
|
||||||
|
|
||||||
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)
|
||||||
if (message.guild.channels.find(TicketChannel => TicketChannel.name === 'ticket-' + message.author.username)) return message.channel.send(alreadyopen);
|
if (message.guild.channels.find(TicketChannel => TicketChannel.name === 'ticket-' + message.author.username)) return message.channel.send(alreadyopen);
|
||||||
message.guild.createChannel(`ticket-${message.author.username}`, 'text').then(TicketChannel => {
|
message.guild.createChannel(`ticket-${message.author.username}`, {
|
||||||
|
type: 'text',
|
||||||
|
}).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 })
|
||||||
@@ -39,23 +47,70 @@ exports.run = async(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 Department_1 = bot.settings.Ticket_Department_1;
|
||||||
|
const Department_2 = bot.settings.Ticket_Department_2;
|
||||||
|
const Department_3 = bot.settings.Ticket_Department_3;
|
||||||
|
|
||||||
|
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()
|
const TicketMessage = new Discord.RichEmbed()
|
||||||
.setDescription(ticketMessage)
|
.setDescription(ticketMessage, true)
|
||||||
.setColor(bot.settings.colour)
|
.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)
|
.setFooter(bot.settings.footer)
|
||||||
TicketChannel.send({embed: TicketMessage});
|
|
||||||
|
|
||||||
if (subject != 'No Subject.') {
|
if (subject != 'No Subject.') {
|
||||||
TicketChannel.setTopic(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.")
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
// 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")
|
||||||
@@ -78,6 +133,19 @@ exports.run = async(bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Ticket_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.Ticket_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.Ticket_Command, true)
|
||||||
|
.addField(`Channel`, message.channel, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
+17
-3
@@ -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)
|
||||||
@@ -31,6 +31,20 @@ exports.run = async(bot, message, args) => {
|
|||||||
|
|
||||||
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.UnLockchat_Command}`)
|
console.log(`\x1b[36m`, `${message.author} has executed ${bot.settings.prefix}${bot.settings.UnLockchat_Command}`)
|
||||||
|
|
||||||
|
const CMDLog = new Discord.RichEmbed()
|
||||||
|
.setTitle(bot.settings.Commands_Log_Title)
|
||||||
|
.addField(`User`, `<@${message.author.id}>`)
|
||||||
|
.addField(`Command`, bot.settings.UnLockchat_Command, true)
|
||||||
|
.addField(`Executed At`, message.createdAt, true)
|
||||||
|
.setColor(bot.settings.colour)
|
||||||
|
.setFooter(bot.settings.footer)
|
||||||
|
|
||||||
|
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```);
|
||||||
|
|
||||||
|
CommandLog.send(CMDLog);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.help = {
|
exports.help = {
|
||||||
|
|||||||
@@ -1,6 +1,13 @@
|
|||||||
|
// ____ _ ____ _
|
||||||
|
// / ___| _ _ _ __ _ __ ___ _ __| |_| __ ) ___ | |_
|
||||||
|
// \___ \| | | | '_ \| '_ \ / _ \| '__| __| _ \ / _ \| __|
|
||||||
|
// ___) | |_| | |_) | |_) | (_) | | | |_| |_) | (_) | |_
|
||||||
|
// |____/ \__,_| .__/| .__/ \___/|_| \__|____/ \___/ \__|
|
||||||
|
// |_| |_|
|
||||||
|
|
||||||
// Resource: SupportBot
|
// Resource: SupportBot
|
||||||
// Developed by Emerald
|
// Developed by Emerald Services
|
||||||
// Version: 3.4
|
// Version: 5.0.0
|
||||||
|
|
||||||
const Discord = require("discord.js");
|
const Discord = require("discord.js");
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
@@ -41,7 +48,13 @@ 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.username}&permissions=8&scope=bot\n\n=== [SupportBot] ===`)
|
console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`)
|
||||||
|
console.log(`\u001b[37m`, `Emerald Services has successfully connected to discord`)
|
||||||
|
console.log(`\u001b[37m`, `Invite your bot with https://discordapp.com/api/oauth2/authorize?client_id=516372960110444574&permissions=8&scope=bot`)
|
||||||
|
console.log(`\u001b[37m`, `© ️SupportBot created by Emerald Services`)
|
||||||
|
console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`)
|
||||||
|
console.log(`\u001b[43;1m \u001b[37m \u001b[1m`, `If you require any assistance you can contact us at discord, https://discord.gg/tNt95Ba`)
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.on("message", async message => {
|
bot.on("message", async message => {
|
||||||
@@ -72,10 +85,11 @@ if(!cmd) return;
|
|||||||
cmd.run(bot, message, args);
|
cmd.run(bot, message, args);
|
||||||
});
|
});
|
||||||
|
|
||||||
// [SupportBot] Welcome Message
|
// [SupportBot] Welcome Message && Auto Join Role
|
||||||
|
|
||||||
bot.on("guildMemberAdd", (member) => {
|
bot.on("guildMemberAdd", (member) => {
|
||||||
let channel = member.guild.channels.find(channel => channel.name === `${bot.settings.Welcome_Channel}`)
|
let channel = member.guild.channels.find(channel => channel.name === `${bot.settings.Welcome_Channel}`)
|
||||||
|
let autorole = member.guild.roles.find(autorole => autorole.name === `${bot.settings.Auto_Role}`)
|
||||||
|
|
||||||
const WelcomeMsg= new Discord.RichEmbed()
|
const WelcomeMsg= new Discord.RichEmbed()
|
||||||
.setColor(bot.settings.colour)
|
.setColor(bot.settings.colour)
|
||||||
@@ -83,6 +97,8 @@ bot.on("guildMemberAdd", (member) => {
|
|||||||
.setDescription(`:wave: ${member.user.username}\n${bot.settings.Welcome_Message}`)
|
.setDescription(`:wave: ${member.user.username}\n${bot.settings.Welcome_Message}`)
|
||||||
|
|
||||||
channel.send(WelcomeMsg);
|
channel.send(WelcomeMsg);
|
||||||
|
member.addRole(autorole).catch(console.error);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// [SupportBot] Leave Message
|
// [SupportBot] Leave Message
|
||||||
|
|||||||
Generated
+5
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name": "SupportBot",
|
||||||
|
"version": "4.0",
|
||||||
|
"lockfileVersion": 1
|
||||||
|
}
|
||||||
+28
-9
@@ -1,18 +1,37 @@
|
|||||||
{
|
{
|
||||||
"name": "supportbot",
|
"name": "SupportBot",
|
||||||
"version": "3.4",
|
"version": "4.0",
|
||||||
"description": "SupportBot",
|
"description": "SupportBot",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"private": "true",
|
||||||
"discord.js": "^11.4.2"
|
|
||||||
},
|
|
||||||
"devDependencies": {},
|
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "!help"
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"start": "node index.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": "12.6.0",
|
||||||
|
"npm": "6.9.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"array-sort": "^1.0.0",
|
||||||
|
"discord.js": "^11.5.1",
|
||||||
|
"table": "^5.4.4"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/EmeraldRusher/SupportBot.git"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"SupportBot"
|
"SupportBot",
|
||||||
|
"Emerald Services"
|
||||||
],
|
],
|
||||||
"author": "Emerald Services",
|
"author": "Emerald Services",
|
||||||
"homepage": "https://discord.gg/hmWgxdF"
|
"bugs": {
|
||||||
|
"url": "https://github.com/EmeraldRusher/SupportBot/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://discord.gg/hmWgxdF",
|
||||||
|
"contributors": [
|
||||||
|
"iJosGCS",
|
||||||
|
"RedstoneGamez"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
+57
-21
@@ -1,25 +1,61 @@
|
|||||||
{
|
{
|
||||||
|
"SupportBot": "v5.0",
|
||||||
|
|
||||||
"SupportBot": "v3.4 / Download addons @ https://itzemerald.tk/",
|
"token": "BOT_TOKEN_HERE",
|
||||||
|
"prefix": "-",
|
||||||
"token": "TOKEN",
|
|
||||||
"prefix": "!",
|
|
||||||
"botname": "SupportBot",
|
"botname": "SupportBot",
|
||||||
"colour": "#42f477",
|
"colour": "#13bd2a",
|
||||||
"footer": "Support Bot, By Emerald",
|
"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",
|
||||||
|
|
||||||
|
"Department_Role_1": "Support",
|
||||||
|
"Department_Role_2": "Security",
|
||||||
|
"Department_Role_3": "Sales",
|
||||||
|
|
||||||
"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",
|
||||||
|
"Default_Ticket_Reason": "No Subject",
|
||||||
|
|
||||||
|
"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",
|
||||||
|
"Command_Log_Channel": "command-logs",
|
||||||
|
|
||||||
"Announcement_Title": "SupportBot Announcement",
|
"Announcement_Title": "SupportBot Announcement",
|
||||||
"Announcement_Channel": "announcements",
|
"Announcement_Channel": "announcements",
|
||||||
|
"Announcement_Tag_Role": "@everyone",
|
||||||
|
|
||||||
"Welcome_Message": "Welcome to the server!",
|
"Welcome_Message": "Welcome to the server!",
|
||||||
"Welcome_Channel": "welcome",
|
"Welcome_Channel": "welcome",
|
||||||
@@ -40,22 +76,22 @@
|
|||||||
"Report_Channel": "reports",
|
"Report_Channel": "reports",
|
||||||
"Report_Title": "SupportBot Report",
|
"Report_Title": "SupportBot Report",
|
||||||
|
|
||||||
"LINK_1_NAME": "Discord",
|
|
||||||
"LINK_2_NAME": "Twitter",
|
|
||||||
"LINK_3_NAME": "Website",
|
|
||||||
|
|
||||||
"LINK_1": "https://dicord.gg/changemeinconfig",
|
|
||||||
"LINK_2": "https://twitter.com/changemeinconfig",
|
|
||||||
"LINK_3": "https://www.example.com/",
|
|
||||||
|
|
||||||
"LINKS_TITLE": "SupportBot Links",
|
"LINKS_TITLE": "SupportBot Links",
|
||||||
|
|
||||||
"Ticket_Command": "ticket",
|
"LINKS": {
|
||||||
"Suggest_Command": "suggest",
|
"Discord": "https://discord.gg/",
|
||||||
|
"Twitter": "https://twitter.com/",
|
||||||
|
"Website": "https://example.com/",
|
||||||
|
"AddMore": "AddMoreIfYouWant"
|
||||||
|
},
|
||||||
|
|
||||||
|
"Announcement_Command": "announce",
|
||||||
"Say_Command": "say",
|
"Say_Command": "say",
|
||||||
|
"Suggest_Command": "suggest",
|
||||||
|
"Ping_Command": "ping",
|
||||||
|
"Ticket_Command": "ticket",
|
||||||
"Remove_Command": "remove",
|
"Remove_Command": "remove",
|
||||||
"Add_Command": "add",
|
"Add_Command": "add",
|
||||||
"Ping_Command": "ping",
|
|
||||||
"Close_Command": "close",
|
"Close_Command": "close",
|
||||||
"Forceclose_Command": "forceclose",
|
"Forceclose_Command": "forceclose",
|
||||||
"Rename_Command": "rename",
|
"Rename_Command": "rename",
|
||||||
@@ -64,6 +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"
|
||||||
}
|
}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
node index.js
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
node index.js
|
||||||
Reference in new issue
Block a user