Compare commits

...
78 Commits
Author SHA1 Message Date
Xiled Emerald 84e0b504ab Delete .DS_Store 2021-06-30 21:33:35 +01:00
Xiled Emerald bedff6832c Update supportbot-config.yml 2021-06-30 21:33:16 +01:00
ItzEmerald 6c29e04de2 7.0 2021-06-30 21:30:41 +01:00
ItzEmerald ba674323e1 Update help.js 2021-06-15 21:05:38 +01:00
ItzEmerald 6d756a161e Update help.js 2021-06-15 21:04:32 +01:00
ItzEmerald 66a5cd95ec Update README.md 2021-06-15 19:56:39 +01:00
ItzEmerald 9f70648264 Update suggest.js 2021-06-15 19:10:17 +01:00
ItzEmerald b975b79691 Update removeUser.js 2021-06-15 19:10:07 +01:00
ItzEmerald 3cab896954 Update purge.js 2021-06-15 19:09:58 +01:00
ItzEmerald b9680e5b35 Update ping.js 2021-06-15 19:09:46 +01:00
ItzEmerald 43a003ca7d Update newticket.js 2021-06-15 19:09:35 +01:00
ItzEmerald fbe1cf2009 Update links.js 2021-06-15 19:09:23 +01:00
ItzEmerald fdee61cc11 Update kick.js 2021-06-15 19:09:06 +01:00
ItzEmerald 8b51200d9c Update help.js 2021-06-15 19:08:56 +01:00
ItzEmerald 0631ab536a Update close.js 2021-06-15 19:08:46 +01:00
ItzEmerald 0d76e76519 Update botSay.js 2021-06-15 19:07:42 +01:00
ItzEmerald 9e9f83d211 Update blacklistUser.js 2021-06-15 19:07:26 +01:00
ItzEmerald 0829d477d9 Update ban.js 2021-06-15 19:07:10 +01:00
ItzEmerald 1b7109fa23 Update announce.js 2021-06-15 19:06:58 +01:00
ItzEmerald 366669ccd8 Update addUser.js 2021-06-15 19:06:40 +01:00
ItzEmerald e05edd89fa Update ready.js 2021-06-15 18:09:24 +01:00
ItzEmerald a405df66c9 Update message.js 2021-06-15 18:09:06 +01:00
ItzEmerald 28a57ead9f Update index.js 2021-06-15 18:08:32 +01:00
ItzEmerald 72bfacae75 Merge pull request #68 from DuAnti7423/master
Boolean Changes, help menu fix, raw Event, ID Support added
2021-05-24 12:48:25 +01:00
DuAnti7423 10f8821b3b Random Stuff
idk why github thinks i changed something
2021-05-23 10:45:00 +02:00
DuAnti7423 92a3745ce1 Update supportbot-config.yml
Added HelpMenu_WithKey Option.
Boolean Changes
2021-05-23 10:44:00 +02:00
DuAnti7423 aff7ff1451 Update ready.js
ID Support, Boolean Changes
2021-05-23 10:41:15 +02:00
DuAnti7423 9e63e0ff09 Create raw.js
Added Raw-Event, probably fixxed the ticketreaction isnt 100% workin
2021-05-23 10:41:05 +02:00
DuAnti7423 2c5ebd8620 Update messageReactionAdd.js
ID Support, Boolean Changes
2021-05-23 10:40:37 +02:00
DuAnti7423 e6d63db3a9 Update guildMemberRemove.js
ID Support, Boolean Changes
2021-05-23 10:40:32 +02:00
DuAnti7423 2cc316aafb Update guildMemberAdd.js
ID Support, Boolean Changes
2021-05-23 10:40:28 +02:00
DuAnti7423 4f25cfa0dd Update suggest.js
ID Support, Boolean Changes
2021-05-23 10:40:20 +02:00
DuAnti7423 0385de3882 Update removeUser.js
ID Support, Boolean Changes
2021-05-23 10:40:16 +02:00
DuAnti7423 2e1253c54e Update purge.js
ID Support, Boolean Changes
2021-05-23 10:40:10 +02:00
DuAnti7423 14df15caeb Update ping.js
ID Support, Boolean Changes
2021-05-23 10:40:03 +02:00
DuAnti7423 af481a2ec8 Update newticket.js
ID Support, Boolean Changes

Fixxed everyone permissions on ticket creation
2021-05-23 10:39:58 +02:00
DuAnti7423 96c1d80844 Update links.js
ID Support, Boolean Changes
2021-05-23 10:39:42 +02:00
DuAnti7423 57ea2e25bd Update kick.js
ID Support, Boolean Changes
2021-05-23 10:39:36 +02:00
DuAnti7423 cd17b0a6d7 Update help.js
ID Support, Boolean Changes
2021-05-23 10:39:31 +02:00
DuAnti7423 c5dd8823f6 Update close.js
ID Support, Boolean Changes
2021-05-23 10:39:24 +02:00
DuAnti7423 c27f16f753 Update botSay.js
ID Support, Boolean Changes
2021-05-23 10:39:18 +02:00
DuAnti7423 4842610229 Update blacklistUser.js
ID Support, Boolean Changes
2021-05-23 10:39:13 +02:00
DuAnti7423 bd33669dba Update ban.js
ID Support, Boolean Changes
2021-05-23 10:39:08 +02:00
DuAnti7423 e81684d322 Update announce.js
ID Support, Boolean Changes
2021-05-23 10:39:03 +02:00
DuAnti7423 8209dfa26c Update addUser.js
ID Support, Boolean Changes
2021-05-23 10:38:55 +02:00
DuAnti7423 0a82c62a4e boolean changes
workin on suggestion #67  from pat2381
2021-05-22 23:41:39 +02:00
DuAnti7423 4399dfe6b8 Fixxed a copy error
replaced reactionUser with user cause reactionUser was defined in the ticket command
2021-05-22 23:38:32 +02:00
DuAnti7423 defd0cc78c Merge branch 'master' of https://github.com/DuAnti7423/SupportBot 2021-05-22 23:13:25 +02:00
DuAnti7423 fd5fc8294c update help.js
Fixxed a bug with staffcommands show
2021-05-22 23:13:16 +02:00
ItzEmerald 10823b416c Update package.json 2021-05-14 15:46:23 +01:00
ItzEmerald 4490920ac6 Update index.js 2021-05-14 15:46:08 +01:00
ItzEmerald e0b8ad4a32 Update supportbot-config.yml 2021-05-14 15:45:49 +01:00
ItzEmerald e11063832b Merge pull request #65 from DuAnti7423/master
Blacklist Command
2021-05-12 15:35:56 +01:00
DuAnti7423 d598fdd753 updated help.js 2021-05-09 00:25:30 +02:00
DuAnti7423 157b93239a Added Logging to Blacklist 2021-05-08 23:55:57 +02:00
DuAnti7423 3d7058dccd Merge branch 'master' of https://github.com/DuAnti7423/SupportBot 2021-05-08 23:44:12 +02:00
DuAnti7423 1ec654d1ea Blacklist Command
Added Blacklist Command
Added configoption
2021-05-08 23:42:35 +02:00
ItzEmerald 8ce2d4269d Merge pull request #62 from DuAnti7423/master
Blacklist Role
2021-05-07 15:09:46 +01:00
DuAnti7423 49e8aa7869 Blacklist Role
Added Blacklist Role, via ID or Name
2021-04-17 22:15:59 +02:00
ItzEmerald 0827f55d43 Update guildMemberAdd.js 2021-03-31 01:21:34 +01:00
ItzEmerald ba6ff8c342 Update node.js.yml 2021-03-31 00:28:35 +01:00
ItzEmerald c0b7dc2737 Create node.js.yml 2021-03-31 00:27:10 +01:00
ItzEmerald ab6abd453b Delete node_modules directory 2021-03-30 20:20:33 +01:00
ItzEmerald 77921aca75 Update ready.js 2021-03-30 20:18:37 +01:00
ItzEmerald a8f91c4814 Update messageReactionAdd.js 2021-03-30 20:12:29 +01:00
ItzEmerald 7780fa792c Updated 2021-03-27 16:58:27 +00:00
ItzEmerald 41e4c376ec Merge branch 'master' of https://github.com/1tzemerald/SupportBot 2021-03-27 16:22:37 +00:00
ItzEmerald 09aad61cfe SB-6.3-BETA 2
Added Moderation
Added Node Modules
2021-03-27 16:22:19 +00:00
ItzEmerald 31ac81428f Update ready.js 2021-03-24 20:56:57 +00:00
ItzEmerald 60daab82d2 Merge branch 'master' of https://github.com/1tzemerald/SupportBot 2021-03-24 16:26:21 +00:00
ItzEmerald e7a0544004 Added Image to ReactionPanel 2021-03-24 16:25:16 +00:00
ItzEmerald ff0364bba8 Update supportbot-config_FR.yml 2021-03-17 16:04:41 +00:00
ItzEmerald a3b64be351 Update supportbot-config_ES.yml 2021-03-17 16:03:52 +00:00
ItzEmerald eae370e346 Update README.md 2021-03-17 14:36:11 +00:00
ItzEmerald 0d86b50a83 Update supportbot-config_ENG.yml 2021-03-17 14:35:45 +00:00
ItzEmerald 543b9028a3 Update supportbot-config_ES.yml 2021-03-17 14:35:15 +00:00
ItzEmerald 867f12d11f Update supportbot-config_FR.yml 2021-03-17 14:33:13 +00:00
ItzEmerald 462781ea6a Update supportbot-config_GER.yml 2021-03-17 14:31:37 +00:00
33 changed files with 1070 additions and 225 deletions

No files matched your search

+32
View File
@@ -0,0 +1,32 @@
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Node.js CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x, 12.x, 14.x, 15.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm ci
- run: npm install discord.js --save
- run: npm install js-yaml
- run: npm run build --if-present
- run: node index.js
+13 -10
View File
@@ -1,10 +1,13 @@
> #### SupportBot ![imgur](https://i.imgur.com/TQj40Mt.png)
>
> - SupportBot is a free to use discord ticket system that is highly customisable to your own brand, ## What is SupportBot?
Why use a branded ticket bot when you have the ability to match your ticket bot with your servers name.
> SupportBot is an open-sourced support system for discord. It's completely free to use with high amounts of customisation to match your own brand.
> - Our Support team is over at [Discord](https://discord.com/invite/jspKFcE) ready to assist with any questions, concerns or setup information regarding SupportBot.
> ## Quick Links
> - [Download via Polymart](https://polymart.org/resource/supportbot-1-discord-ticket-bot.518)
> - [Download via MC-Market](https://www.mc-market.org/resources/8940/) **|** [Discord](https://emeraldsrv.dev/discord) **|**
[Hosting](https://emeraldsrv.dev/hosting) **|**
[Documentation](https://docs.emeraldsrv.dev) **|**
[Download via Polymart](https://polymart.org/resource/supportbot-1-discord-ticket-bot.518) **|**
[Download via MC-Market](https://www.mc-market.org/resources/8940/) **|**
+4 -5
View File
@@ -12,11 +12,10 @@ module.exports = {
description: supportbot.AddUserDesc, description: supportbot.AddUserDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.AddUser}!`);
let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) || message.guild.roles.cache.find(SupportTeam => SupportTeam.id === supportbot.Staff)
let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) || message.guild.roles.cache.find(AdminUser => AdminUser.id === supportbot.Admin)
let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed() const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!") .setTitle("Invalid Permissions!")
+3 -5
View File
@@ -14,11 +14,9 @@ module.exports = {
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
let locateChannel = message.guild.channels.cache.find(AnnouncementChannel => AnnouncementChannel.name === supportbot.AnnouncementChannel); let locateChannel = message.guild.channels.cache.find(AnnouncementChannel => AnnouncementChannel.name === supportbot.AnnouncementChannel) || message.guild.channels.cache.find(AnnouncementChannel => AnnouncementChannel.id === supportbot.AnnouncementChannel)
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.AnnounceCommand}!`);
const errornochannel = new Discord.MessageEmbed() const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel") .setTitle("Invalid Channel")
@@ -27,7 +25,7 @@ module.exports = {
if(!locateChannel) return message.channel.send({ embed: errornochannel }); if(!locateChannel) return message.channel.send({ embed: errornochannel });
let Admins = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin); let Admins = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed() const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!") .setTitle("Invalid Permissions!")
+108
View File
@@ -0,0 +1,108 @@
// SupportBot, Created by Emerald Services
// Say Command
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const { execute } = require("./help");
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = {
name: supportbot.BanUser,
description: supportbot.BanDesc,
execute(message, args, member) {
if (supportbot.DeleteMessages) message.delete();
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!")
.setDescription(`${supportbot.IncorrectPerms}\n\nRole Required: \`${SupportStaff.name}\``)
.setColor(supportbot.WarningColour)
if (!message.member.roles.cache.has(SupportStaff.id))
return message.channel.send({ embed: NoPerms });
let locateChannel = message.guild.channels.cache.find(ModLogChannel => ModLogChannel.name === supportbot.ModLogChannel) || message.guild.channels.cache.find(ModLogChannel => ModLogChannel.id === supportbot.ModLogChannel)
const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel")
.setDescription(`${supportbot.InvalidChannel}\n\nChannel Required: \`${supportbot.ModLogChannel}\``)
.setColor(supportbot.ErrorColour);
if(!locateChannel) return message.channel.send({ embed: errornochannel });
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
const embed1 = new Discord.MessageEmbed()
.setDescription("> :x: Please provide a reason to ban.\n\n`Try Again!`")
.setColor(supportbot.ErrorColour)
if (!args[0]) return message.channel.send({
embed: embed1
});
const embed2 = new Discord.MessageEmbed()
.setDescription("> :detective: **Hmm!** Can\'t seem tp find this user.\n\n`Are they in the server?`")
.setColor(supportbot.EmbedColour)
if (!user) return message.channel.send({
embed: embed2
})
const embed3 = new Discord.MessageEmbed()
.setDescription("> :x: **Err No!** Cannot punish this user!\n\n`Reason: Their permissions and or roles are greater than mine.`")
.setColor(supportbot.EmbedColour)
if(!user.bannable) return message.channel.send({
embed: embed3
});
const embed4 = new Discord.MessageEmbed()
.setDescription("> :joy: **OML!** Did you really just try to ban yourself!")
.setColor(supportbot.EmbedColour)
if(user.id === message.author.id) return message.channel.send({
embed: embed4
});
let reason = args.slice(1).join(" ");
if(!reason) reason = 'No Reason Provided.';
const embed5 = new Discord.MessageEmbed()
.setDescription("> :thinking: **Hmm** Something seems to have gone wrong.\n\n`Check your system for errors!`")
.setColor(supportbot.EmbedColour)
user.ban({ days: supportbot.DaysBannedFor, reason: `${reason}` }).catch(err => {
message.channel.send({ embed: embed5 })
console.log(err)
})
const successEmbed = new Discord.MessageEmbed()
.setDescription(`> :white_check_mark: **OOF!** ${user} has been banned!`)
.setColor(supportbot.SuccessColour)
message.channel.send({
embed: successEmbed
})
const logEmbed = new Discord.MessageEmbed()
.setTitle(supportbot.BanTitle)
.setThumbnail(supportbot.ModThumbnail)
.addField('Banned User:', user)
.addField('Staff Member', message.author)
.addField('Reason:', reason)
.setFooter(supportbot.EmbedFooter)
.setColor(supportbot.BanLogColour)
.setTimestamp()
locateChannel.send({ embed: logEmbed })
}
};
+100
View File
@@ -0,0 +1,100 @@
// SupportBot, Created by Emerald Services
// Blacklist Command
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const { execute } = require("./help");
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = {
name: supportbot.BlacklistUser,
description: supportbot.BlacklistDesc,
execute(message, args) {
if (supportbot.DeleteMessages) message.delete();
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!")
.setDescription(`${supportbot.IncorrectPerms}\n\nRole Required: \`${SupportStaff.name}\``)
.setColor(supportbot.WarningColour)
if (!message.member.roles.cache.has(SupportStaff.id)) {
return message.channel.send({ embed: NoPerms });
}
let locateChannel = message.guild.channels.cache.find(ModLogChannel => ModLogChannel.name === supportbot.ModLogChannel) || message.guild.channels.cache.find(ModLogChannel => ModLogChannel.id === supportbot.ModLogChannel)
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel")
.setDescription(`${supportbot.InvalidChannel}\n\nChannel Required: \`${supportbot.ModLogChannel}\``)
.setColor(supportbot.ErrorColour);
if(!locateChannel) return message.channel.send({ embed: errornochannel });
const embed1 = new Discord.MessageEmbed()
.setDescription("> :x: Please mention or write an ID\n\n`Try Again!`")
.setColor(supportbot.ErrorColour)
if (!args[0]) return message.channel.send({
embed: embed1
});
const embed2 = new Discord.MessageEmbed()
.setDescription("> :detective: **Hmm!** Can\'t seem tp find this user.\n\n`Are they in the server?`")
.setColor(supportbot.EmbedColour)
if (!user) return message.channel.send({
embed: embed2
});
let role = message.guild.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || message.guild.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)
const embed3 = new Discord.MessageEmbed()
.setDescription("> :detective: **Hmm!** Can\'t seem to find the blacklist role.\n\n`Did you created it?")
.setColor(supportbot.ErrorColour)
if (!role) return message.channel.send({
embed: embed3
});
const embed4 = new Discord.MessageEmbed()
.setDescription(`${user} is already blacklisted`)
.setColor(supportbot.ErrorColour)
if(user.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || user.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)) {
return message.channel.send({
embed: embed4
})
};
user.roles.add(role);
const embed5 = new Discord.MessageEmbed()
.setDescription(`Blacklisted ${user} successfully from creating a ticket`)
.setColor(supportbot.EmbedColour)
message.channel.send({
embed: embed5
});
const logEmbed = new Discord.MessageEmbed()
.setTitle(supportbot.BlacklistTitle)
.setThumbnail(supportbot.ModThumbnail)
.addField('Banned User:', user)
.addField('Staff Member', message.author)
.setFooter(supportbot.EmbedFooter)
.setColor(supportbot.BlacklistColour)
.setTimestamp()
locateChannel.send({ embed: logEmbed });
}
};
+2 -4
View File
@@ -13,11 +13,9 @@ module.exports = {
description: supportbot.BotSayDesc, description: supportbot.BotSayDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Staff); let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Staff) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Staff)
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.BotSay}!`);
const NoPerms = new Discord.MessageEmbed() const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!") .setTitle("Invalid Permissions!")
+5 -7
View File
@@ -13,10 +13,8 @@ module.exports = {
description: supportbot.CloseTicketDesc, description: supportbot.CloseTicketDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.CloseTicket}!`);
if (!message.channel.name.startsWith( `${supportbot.TicketChannel}-` )) { if (!message.channel.name.startsWith( `${supportbot.TicketChannel}-` )) {
const Exists = new Discord.MessageEmbed() const Exists = new Discord.MessageEmbed()
.setTitle("No Ticket Found!") .setTitle("No Ticket Found!")
@@ -28,7 +26,7 @@ module.exports = {
} }
if (supportbot.CloseConfirmation === "true") { if (supportbot.CloseConfirmation) {
const CloseTicketRequest = new Discord.MessageEmbed() const CloseTicketRequest = new Discord.MessageEmbed()
.setTitle(`**${supportbot.ClosingTicket}**`) .setTitle(`**${supportbot.ClosingTicket}**`)
.setDescription(`Please confirm by repeating the following word.. \`${supportbot.ClosingConfirmation_Word}\` `) .setDescription(`Please confirm by repeating the following word.. \`${supportbot.ClosingConfirmation_Word}\` `)
@@ -42,7 +40,7 @@ module.exports = {
}).then( collected => { }).then( collected => {
let logChannel = message.guild.channels.cache.find(channel => channel.name === supportbot.TranscriptLog); let logChannel = message.guild.channels.cache.find(channel => channel.name === supportbot.TranscriptLog) || message.guild.channels.cache.find(channel => channel.id === supportbot.TranscriptLog)
let user = message.author; let user = message.author;
let reason = args.join(" ") || "No Reason Provided."; let reason = args.join(" ") || "No Reason Provided.";
@@ -94,9 +92,9 @@ module.exports = {
} }
if (supportbot.CloseConfirmation === "false") { if (!supportbot.CloseConfirmation) {
let logChannel = message.guild.channels.cache.find(channel => channel.name === supportbot.TranscriptLog); let logChannel = message.guild.channels.cache.find(channel => channel.name === supportbot.TranscriptLog) || message.guild.channels.cache.find(channel => channel.id === supportbot.TranscriptLog)
let user = message.author; let user = message.author;
let reason = args.join(" ") || "No Reason Provided."; let reason = args.join(" ") || "No Reason Provided.";
+40 -12
View File
@@ -12,13 +12,15 @@ module.exports = {
description: supportbot.HelpDesc, description: supportbot.HelpDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.HelpCommand}!`);
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Staff) || message.guild.roles.cache.find(staffRole => staffRole.id === supportbot.Staff);
let AdminStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Admin);
if (supportbot.HelpMenu) {
let generalCommands = ""; let generalCommands = "";
generalCommands += `**${supportbot.Prefix}${supportbot.HelpCommand}** ${supportbot.HelpDesc}\n`; generalCommands += `**${supportbot.Prefix}${supportbot.HelpCommand}** ${supportbot.HelpDesc}\n`;
generalCommands += `**${supportbot.Prefix}${supportbot.LinksCommand}** ${supportbot.LinkDesc}\n`; generalCommands += `**${supportbot.Prefix}${supportbot.LinksCommand}** ${supportbot.LinksDesc}\n`;
generalCommands += `**${supportbot.Prefix}${supportbot.SuggestCommand}** ${supportbot.SuggestionDesc}\n`; generalCommands += `**${supportbot.Prefix}${supportbot.SuggestCommand}** ${supportbot.SuggestionDesc}\n`;
generalCommands += `**${supportbot.Prefix}${supportbot.PingCommand}** ${supportbot.PingDesc}\n`; generalCommands += `**${supportbot.Prefix}${supportbot.PingCommand}** ${supportbot.PingDesc}\n`;
@@ -30,26 +32,52 @@ module.exports = {
staffCommands += `**${supportbot.Prefix}${supportbot.AddUser} <user#0000>** ${supportbot.AddUserDesc}\n` staffCommands += `**${supportbot.Prefix}${supportbot.AddUser} <user#0000>** ${supportbot.AddUserDesc}\n`
staffCommands += `**${supportbot.Prefix}${supportbot.RemoveUser} <user#0000>** ${supportbot.RemoveUserDesc}\n` staffCommands += `**${supportbot.Prefix}${supportbot.RemoveUser} <user#0000>** ${supportbot.RemoveUserDesc}\n`
staffCommands += `**${supportbot.Prefix}${supportbot.BotSay}** ${supportbot.BotSayDesc}\n` staffCommands += `**${supportbot.Prefix}${supportbot.BotSay}** ${supportbot.BotSayDesc}\n`
staffCommands += `**${supportbot.Prefix}${supportbot.AnnounceCommand}** ${supportbot.AnnounceDesc}\n` staffCommands += `**${supportbot.Prefix}${supportbot.PurgeMessage}** ${supportbot.PurgeDesc}\n`
let adminCommands = "";
adminCommands += `**${supportbot.Prefix}${supportbot.AnnounceCommand}** ${supportbot.AnnounceDesc} \`Admin Only\`\n`
adminCommands += `**${supportbot.Prefix}${supportbot.BanUser}** ${supportbot.BanDesc} \`Admin Only\` \n`
adminCommands += `**${supportbot.Prefix}${supportbot.KickUser}** ${supportbot.KickDesc} \`Admin Only\` \n`
adminCommands += `**${supportbot.Prefix}${supportbot.BlacklistUser}** ${supportbot.BlacklistDesc} \`Admin Only\` \n`
const HelpCommandEmbed = new Discord.MessageEmbed() const HelpEmbed1 = new Discord.MessageEmbed()
.setTitle(supportbot.Bot_Name) .setTitle(supportbot.Bot_Name)
.setThumbnail(message.author.displayAvatarURL()) .setThumbnail(message.author.displayAvatarURL())
.addFields( .addFields(
{ name: '🖥️ General Commands', value: `${generalCommands}\n`, inline: false }, { name: '🖥️ General Commands\n', value: `${generalCommands}\n`, inline: false },
{ name: '🎫 Support Commands', value: `${supportCommands}\n`, inline: false }, { name: '🎫 Support Commands\n', value: `${supportCommands}\n`, inline: false },
) )
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
.setFooter(supportbot.EmbedFooter, message.author.displayAvatarURL()); .setFooter(supportbot.EmbedFooter, message.author.displayAvatarURL());
if (message.member.roles.cache.some(role => role.name === supportbot.Staff || supportbot.Admin)) { if (message.member.roles.cache.has(SupportStaff.id)) {
HelpCommandEmbed.addFields( HelpEmbed1.addFields(
{ name: '🔐 Staff Commands', value: `${staffCommands}\n`, inline: false }, { name: '🔐 Staff Commands\n', value: `${staffCommands}\n`, inline: false },
)
}
if (message.member.roles.cache.has(AdminStaff.id)) {
HelpEmbed1.addFields(
{ name: '🔐 Admin Commands\n', value: `${adminCommands}\n`, inline: false },
) )
} }
message.channel.send({ embed: HelpCommandEmbed }); if (supportbot.SendHelpPage === "dm") {
message.author.send({
embed: HelpEmbed1
});
}
if (supportbot.SendHelpPage === "channel") {
message.channel.send({
embed: HelpEmbed1
});
}
}
} }
}; };
+109
View File
@@ -0,0 +1,109 @@
// SupportBot, Created by Emerald Services
// Say Command
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const { execute } = require("./help");
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = {
name: supportbot.KickUser,
description: supportbot.KickDesc,
execute(message, args, member) {
if (supportbot.DeleteMessages) message.delete();
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Admin) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!")
.setDescription(`${supportbot.IncorrectPerms}\n\nRole Required: \`${SupportStaff.name}\``)
.setColor(supportbot.WarningColour)
if (!message.member.roles.cache.has(SupportStaff.id))
return message.channel.send({ embed: NoPerms });
let locateChannel = message.guild.channels.cache.find(ModLogChannel => ModLogChannel.name === supportbot.ModLogChannel) || message.guild.channels.cache.find(ModLogChannel => ModLogChannel.id === supportbot.ModLogChannel)
const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel")
.setDescription(`${supportbot.InvalidChannel}\n\nChannel Required: \`${supportbot.ModLogChannel}\``)
.setColor(supportbot.ErrorColour);
if(!locateChannel) return message.channel.send({ embed: errornochannel });
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
const embed1 = new Discord.MessageEmbed()
.setDescription("> :x: Please provide a reason to kick.\n\n`Try Again!`")
.setColor(supportbot.ErrorColour)
if (!args[0]) return message.channel.send({
embed: embed1
});
const embed2 = new Discord.MessageEmbed()
.setDescription("> :detective: **Hmm!** Can\'t seem tp find this user.\n\n`Are they in the server?`")
.setColor(supportbot.EmbedColour)
if (!user) return message.channel.send({
embed: embed2
})
const embed3 = new Discord.MessageEmbed()
.setDescription("> :x: **Err No!** Cannot punish this user!\n\n`Reason: Their permissions and or roles are greater than mine.`")
.setColor(supportbot.EmbedColour)
if(!user.kickable) return message.channel.send({
embed: embed3
});
const embed4 = new Discord.MessageEmbed()
.setDescription("> :joy: **OML!** Did you really just try to kick yourself!")
.setColor(supportbot.EmbedColour)
if(user.id === message.author.id) return message.channel.send({
embed: embed4
});
let reason = args.slice(1).join(" ");
if(!reason) reason = 'No Reason Provided.';
const embed5 = new Discord.MessageEmbed()
.setDescription("> :thinking: **Hmm** Something seems to have gone wrong.\n\n`Check your system for errors!`")
.setColor(supportbot.EmbedColour)
user.kick({ reason: `${reason}` }).catch(err => {
message.channel.send({ embed: embed5 })
console.log(err)
})
const successEmbed = new Discord.MessageEmbed()
.setDescription(`> :white_check_mark: **OOF!** ${user} has been kicked!`)
.setColor(supportbot.SuccessColour)
message.channel.send({
embed: successEmbed
})
const logEmbed = new Discord.MessageEmbed()
.setTitle(supportbot.KickTitle)
.setThumbnail(supportbot.ModThumbnail)
.addField('Kicked User:', user)
.addField('Staff Member', message.author)
.addField('Reason:', reason)
.setFooter(supportbot.EmbedFooter)
.setColor(supportbot.KickLogColour)
.setTimestamp()
locateChannel.send({ embed: logEmbed })
}
};
+1 -3
View File
@@ -13,10 +13,8 @@ module.exports = {
description: supportbot.LinksDesc, description: supportbot.LinksDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.LinksCommand}!`);
const LinksEmbed = new Discord.MessageEmbed() const LinksEmbed = new Discord.MessageEmbed()
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
+43 -34
View File
@@ -18,12 +18,19 @@ module.exports = {
description: supportbot.NewTicketDesc, description: supportbot.NewTicketDesc,
execute(message, args) { execute(message, args) {
if (!message.channel.name === supportbot.ReactionChannel) { if (!message.channel.name === supportbot.ReactionChannel || !message.channel.id === supportbot.ReactionChannel) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
} }
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.NewTicket}!`);
let reactionUser = message.guild.members.cache.get(message.author.id)
if (reactionUser.roles.cache.find(role => role.name === supportbot.TicketBlackListRole) || reactionUser.roles.cache.find(role => role.id === supportbot.TicketBlackListRole)) {
return message.channel.send(`<@${message.author.id}> ${supportbot.TicketBlackListMessage}`).then(msg => {
msg.delete({timeout: 3500})
})
}
// Ticket ID // Ticket ID
let ticketNumberID = TicketNumberID.pad(message.guild.id); let ticketNumberID = TicketNumberID.pad(message.guild.id);
@@ -41,21 +48,21 @@ module.exports = {
message.guild.channels.create(`${supportbot.TicketChannel}-${ticketNumberID}`, { message.guild.channels.create(`${supportbot.TicketChannel}-${ticketNumberID}`, {
type: "text", type: "text",
permissionOverwrites: [
{
id: message.guild.roles.everyone,
deny: ['VIEW_CHANNEL'],
}
]
}).then(SupportTicket => { }).then(SupportTicket => {
let AllUsers = message.guild.roles.cache.find(everyone => everyone.name === '@everyone') let AllUsers = message.guild.roles.cache.find(everyone => everyone.name === '@everyone')
let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) || message.guild.roles.cache.find(SupportTeam => SupportTeam.id === supportbot.Staff)
let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) || message.guild.roles.cache.find(AdminUser => AdminUser.id === supportbot.Admin)
let DeptRole1 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_1}`) let DeptRole1 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_1}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_1}`)
let DeptRole2 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_2}`) let DeptRole2 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_2}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_2}`)
let DeptRole3 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_3}`) let DeptRole3 = message.guild.roles.cache.find(DepartmentRole => DepartmentRole.name === `${supportbot.DepartmentRole_3}`) || message.guild.roles.cache.find(DepartmentRole => DepartmentRole.id === `${supportbot.DepartmentRole_3}`)
SupportTicket.updateOverwrite(AllUsers, {
VIEW_CHANNEL: false,
READ_MESSAGES: false,
SEND_MESSAGES: false,
})
SupportTicket.updateOverwrite(message.author, { SupportTicket.updateOverwrite(message.author, {
VIEW_CHANNEL: true, VIEW_CHANNEL: true,
@@ -75,20 +82,22 @@ module.exports = {
SEND_MESSAGES: true, SEND_MESSAGES: true,
}) })
SupportTicket.updateOverwrite(AllUsers, {
VIEW_CHANNEL: false
})
// Ticket Category // Ticket Category
let TicketCategory = message.guild.channels.cache.find(category => category.name === supportbot.TicketCategory) let TicketCategory = message.guild.channels.cache.find(category => category.name === supportbot.TicketCategory) || message.guild.channels.cache.find(category => category.id === supportbot.TicketCategory)
if (TicketCategory) { if (TicketCategory) {
SupportTicket.setParent(TicketCategory.id) SupportTicket.setParent(TicketCategory.id)
} else {
if (message.guild.channels.cache.get(supportbot.TicketCategory)) {
SupportTicket.setParent(message.guild.channels.cache.get(supportbot.TicketCategory).id);
}
} }
// Ticket Created, Message Sent // Ticket Created, Message Sent
if (supportbot.AllowTicketMentions === "true") { if (supportbot.AllowTicketMentions) {
SupportTicket.send(`<@${message.author.id}>`) SupportTicket.send(`<@${message.author.id}>`)
} }
@@ -113,7 +122,7 @@ module.exports = {
} }
if (supportbot.TicketDepartments === "true") { if (supportbot.TicketDepartments) {
TicketMessage.addFields({ name: 'Departments', value: `${supportbot.DepartmentEmoji_1} **${supportbot.DepartmentTitle_1}**\n${supportbot.DepartmentEmoji_2} **${supportbot.DepartmentTitle_2}**\n${supportbot.DepartmentEmoji_3} **${supportbot.DepartmentTitle_3}**` }) TicketMessage.addFields({ name: 'Departments', value: `${supportbot.DepartmentEmoji_1} **${supportbot.DepartmentTitle_1}**\n${supportbot.DepartmentEmoji_2} **${supportbot.DepartmentTitle_2}**\n${supportbot.DepartmentEmoji_3} **${supportbot.DepartmentTitle_3}**` })
} }
@@ -125,7 +134,7 @@ module.exports = {
reacted[ticketNumberID] = false; reacted[ticketNumberID] = false;
if (supportbot.TicketDepartments === "true") { if (supportbot.TicketDepartments) {
await msg.react(Emoji_1); await msg.react(Emoji_1);
await msg.react(Emoji_2); await msg.react(Emoji_2);
await msg.react(Emoji_3); await msg.react(Emoji_3);
@@ -138,11 +147,11 @@ module.exports = {
SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
SupportTicket.updateOverwrite(DeptRole1, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(DeptRole1, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
if (supportbot.AllowStaff === "true") { if (supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
if (supportbot.AllowStaff === "false") { if (!supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
@@ -151,7 +160,7 @@ module.exports = {
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
SupportTicket.send({ embed: Department1 }); SupportTicket.send({ embed: Department1 });
if (supportbot.AllowTicketMentions === "true") { if (supportbot.AllowTicketMentions) {
SupportTicket.send(`@here`) SupportTicket.send(`@here`)
} }
@@ -162,11 +171,11 @@ module.exports = {
SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(Admins, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
SupportTicket.updateOverwrite(DeptRole2, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(DeptRole2, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
if (supportbot.AllowStaff === "true") { if (supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
if (supportbot.AllowStaff === "false") { if (!supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
@@ -175,7 +184,7 @@ module.exports = {
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
SupportTicket.send({ embed: Department2 }); SupportTicket.send({ embed: Department2 });
if (supportbot.AllowTicketMentions === "true") { if (supportbot.AllowTicketMentions) {
SupportTicket.send(`@here`) SupportTicket.send(`@here`)
} }
@@ -187,11 +196,11 @@ module.exports = {
SupportTicket.updateOverwrite(DeptRole3, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(DeptRole3, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
if (supportbot.AllowStaff === "true") { if (supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: true, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
if (supportbot.AllowStaff === "false") { if (!supportbot.AllowStaff) {
SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, }) SupportTicket.updateOverwrite(SupportStaff, { VIEW_CHANNEL: false, READ_MESSAGES: true, SEND_MESSAGES: true, })
} }
@@ -200,7 +209,7 @@ module.exports = {
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
SupportTicket.send({ embed: Department3 }); SupportTicket.send({ embed: Department3 });
if (supportbot.AllowTicketMentions === "true") { if (supportbot.AllowTicketMentions) {
SupportTicket.send(`@here`) SupportTicket.send(`@here`)
} }
@@ -225,7 +234,7 @@ module.exports = {
}); });
if (message.channel.name === supportbot.ReactionChannel) { if (message.channel.name === supportbot.ReactionChannel || message.channel.id === supportbot.ReactionChannel) {
const CreatedTicket = new Discord.MessageEmbed() const CreatedTicket = new Discord.MessageEmbed()
.setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username)) .setDescription(supportbot.TicketCreatedAlert.replace(/%ticketauthor%/g, message.author.id).replace(/%ticketid%/g, SupportTicket.id).replace(/%ticketusername%/g, message.author.username))
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
@@ -260,7 +269,7 @@ module.exports = {
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
.setFooter(supportbot.EmbedFooter) .setFooter(supportbot.EmbedFooter)
let locateChannel = message.guild.channels.cache.find(LocateChannel => LocateChannel.name === supportbot.TicketLog) let locateChannel = message.guild.channels.cache.find(LocateChannel => LocateChannel.name === supportbot.TicketLog) || message.guild.channels.cache.find(LocateChannel => LocateChannel.id === supportbot.TicketLog)
if(!locateChannel) return message.channel.send({ embed: errornochannel }); if(!locateChannel) return message.channel.send({ embed: errornochannel });
+1 -3
View File
@@ -12,10 +12,8 @@ module.exports = {
description: supportbot.PingDesc, description: supportbot.PingDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.PingCommand}!`)
let ping = Date.now() - message.createdTimestamp + " ms"; let ping = Date.now() - message.createdTimestamp + " ms";
const PingCommandEmbed = new Discord.MessageEmbed() const PingCommandEmbed = new Discord.MessageEmbed()
+80
View File
@@ -0,0 +1,80 @@
// SupportBot, Created by Emerald Services
// Say Command
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const { execute } = require("./help");
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = {
name: supportbot.PurgeMessage,
description: supportbot.PurgeDesc,
execute(message, args, member) {
if (supportbot.DeleteMessages) message.delete();
let SupportStaff = message.guild.roles.cache.find(adminRole => adminRole.name === supportbot.Staff) || message.guild.roles.cache.find(adminRole => adminRole.id === supportbot.Staff)
const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!")
.setDescription(`${supportbot.IncorrectPerms}\n\nRole Required: \`${SupportStaff.name}\``)
.setColor(supportbot.WarningColour)
if (!message.member.roles.cache.has(SupportStaff.id))
return message.channel.send({ embed: NoPerms });
let locateChannel = message.guild.channels.cache.find(ModLogChannel => ModLogChannel.name === supportbot.ModLogChannel) || message.guild.channels.cache.find(ModLogChannel => ModLogChannel.id === supportbot.ModLogChannel)
const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel")
.setDescription(`${supportbot.InvalidChannel}\n\nChannel Required: \`${supportbot.ModLogChannel}\``)
.setColor(supportbot.ErrorColour);
if(!locateChannel) return message.channel.send({ embed: errornochannel });
const embed1 = new Discord.MessageEmbed()
.setDescription(`> :thinking: **Hmm!** Please enter a valid number of message to purge!\n\n\`${supportbot.Prefix}${supportbot.PurgeMessage} <message count>\` `)
.setColor(supportbot.WarningColour)
if (!args[0]) return message.channel.send({
embed: embed1
});
const messagePrune = parseInt(args[0])
const embed2 = new Discord.MessageEmbed()
.setDescription("> :person_facepalming: **Grr!** Can you count? That ain't a number :joy:")
.setColor(supportbot.ErrorColour)
if (isNaN(messagePrune)) return message.reply({
embed: embed2
})
message.channel.bulkDelete(messagePrune).then(() => {
const embed3 = new Discord.MessageEmbed()
.setDescription(`> :recycle: \`${args[0]} messages\` **have been purged!** `)
.setColor(supportbot.ErrorColour)
message.channel.send({
embed: embed3
})
})
const logEmbed = new Discord.MessageEmbed()
.setTitle(supportbot.PruneLogTitle)
.setThumbnail(supportbot.PruneThumbnail)
.addField('Messages Purged', `\`${args[0]} messages\``)
.addField('Staff Member', message.author)
.setFooter(supportbot.EmbedFooter)
.setColor(supportbot.PruneColour)
.setTimestamp()
locateChannel.send({ embed: logEmbed })
}
};
+3 -5
View File
@@ -12,12 +12,10 @@ module.exports = {
description: supportbot.RemoveUserDesc, description: supportbot.RemoveUserDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.RemoveUser}!`); let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff) || message.guild.roles.cache.find(SupportTeam => SupportTeam.id === supportbot.Staff)
let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin) || message.guild.roles.cache.find(AdminUser => AdminUser.id === supportbot.Admin)
let SupportStaff = message.guild.roles.cache.find(SupportTeam => SupportTeam.name === supportbot.Staff)
let Admins = message.guild.roles.cache.find(AdminUser => AdminUser.name === supportbot.Admin)
const NoPerms = new Discord.MessageEmbed() const NoPerms = new Discord.MessageEmbed()
.setTitle("Invalid Permissions!") .setTitle("Invalid Permissions!")
+2 -4
View File
@@ -12,11 +12,9 @@ module.exports = {
description: supportbot.SuggestionDesc, description: supportbot.SuggestionDesc,
execute(message, args) { execute(message, args) {
if (supportbot.DeleteMessages == "true") message.delete(); if (supportbot.DeleteMessages) message.delete();
let locateChannel = message.guild.channels.cache.find(SuggestionChannel => SuggestionChannel.name === supportbot.SuggestionChannel); let locateChannel = message.guild.channels.cache.find(SuggestionChannel => SuggestionChannel.name === supportbot.SuggestionChannel) || message.guild.channels.cache.find(SuggestionChannel => SuggestionChannel.id === supportbot.SuggestionChannel)
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `${message.author.tag} has executed ${supportbot.Prefix}${supportbot.SuggestCommand}!`);
const errornochannel = new Discord.MessageEmbed() const errornochannel = new Discord.MessageEmbed()
.setTitle("Invalid Channel") .setTitle("Invalid Channel")
+6 -5
View File
@@ -9,22 +9,23 @@ const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'))
module.exports = async (bot, member) => { module.exports = async (bot, member) => {
if (supportbot.SystemMessages === "true") { if (supportbot.SystemMessages) {
const SystemChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.SystemMessage_Channel) const SystemChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.SystemMessage_Channel) || member.guild.channels.cache.get(supportbot.SystemMessage_Channel)
if (!SystemChannel) return; if (!SystemChannel) return;
console.log(`[${supportbot.Bot_Name}]: ${member.user.username} has joined ${member.guild.name}!`) console.log(`[${supportbot.Bot_Name}]: ${member.user.username} has joined ${member.guild.name}!`)
console.log(supportbot.AutoRole_Role) console.log(supportbot.AutoRole_Role)
const role = member.guild.roles.cache.find(role => role.name === supportbot.AutoRole_Role) const role = member.guild.roles.cache.find(role => role.name === supportbot.AutoRole_Role) || member.guild.roles.cache.find(role => role.id === supportbot.AutoRole_Role)
member.roles.add(role).catch(console.error); member.roles.add(role).catch(console.error);
if (supportbot.SystemMessage_Type === "embed") { if (supportbot.SystemMessage_Type === "embed") {
const GuildAddMember = new Discord.MessageEmbed() const GuildAddMember = new Discord.MessageEmbed()
.setTitle(supportbot.Welcome_Title) .setTitle(supportbot.Welcome_Title)
.setDescription(supportbot.WelcomeMessage.replace(/%member%/g, member.user.username).replace(/%guildname%/g, member.guild.name)) .setDescription(supportbot.WelcomeMessage.replace(/%member%/g, `<@!${member.user.id}>`).replace(/%guildname%/g, member.guild.name))
.setColor(supportbot.EmbedColour) .setColor(supportbot.EmbedColour)
if (supportbot.SystemMessage_Icon === "BOT") { if (supportbot.SystemMessage_Icon === "BOT") {
@@ -36,7 +37,7 @@ module.exports = async (bot, member) => {
} }
if (supportbot.SystemMessage_EmbedFooter === "true") { if (supportbot.SystemMessage_EmbedFooter) {
GuildAddMember.setFooter(supportbot.EmbedFooter) GuildAddMember.setFooter(supportbot.EmbedFooter)
} }
+2 -2
View File
@@ -9,8 +9,8 @@ const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'))
module.exports = async (bot, member) => { module.exports = async (bot, member) => {
if (supportbot.SystemMessages === "true") { if (supportbot.SystemMessages) {
const SystemChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.SystemMessage_Channel) const SystemChannel = member.guild.channels.cache.find(channel => channel.name === supportbot.SystemMessage_Channel) || member.guild.channels.cache.get(supportbot.SystemMessage_Channel)
if (!SystemChannel) return; if (!SystemChannel) return;
+2
View File
@@ -15,6 +15,8 @@ module.exports = async (bot, message) => {
let messageArray = message.content.split(" "); let messageArray = message.content.split(" ");
const args = message.content.slice(supportbot.Prefix.length).trim().split(/ +/g); const args = message.content.slice(supportbot.Prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase(); const command = args.shift().toLowerCase();
console.log(`\u001b[32m`, `[${supportbot.Bot_Name}]`, `\u001b[36m`, `${message.author.tag}`, `\u001b[33m`, `has executed the command`, `\u001b[36m`,`${supportbot.Prefix}${command}`)
const cmd = bot.commands.get(command); const cmd = bot.commands.get(command);
if(!cmd) return; if(!cmd) return;
+1 -1
View File
@@ -17,7 +17,7 @@ module.exports = async (client, reaction, user) => {
channel: reaction.message.channel channel: reaction.message.channel
} }
if (supportbot.ReactionTickets === "true") { if (supportbot.ReactionTickets) {
if (reaction.message.id === tickets.ReactionMessage_ID) { if (reaction.message.id === tickets.ReactionMessage_ID) {
if (reaction.emoji.name == supportbot.ReactionEmoji || reaction.emoji.id == supportbot.ReactionEmoji) { if (reaction.emoji.name == supportbot.ReactionEmoji || reaction.emoji.id == supportbot.ReactionEmoji) {
await reaction.users.remove(user.id) await reaction.users.remove(user.id)
+26
View File
@@ -0,0 +1,26 @@
const Discord = require("discord.js");
const fs = require("fs");
const yaml = require('js-yaml');
const supportbot = yaml.load(fs.readFileSync('./supportbot-config.yml', 'utf8'));
module.exports = async (bot, message, packet) => {
if (!['MESSAGE_REACTION_ADD', 'MESSAGE_REACTION_REMOVE'].includes(packet.t)) return;
const channel = bot.channels.cache.get(packet.d.channel_id);
if (channel.messages.has(packet.d.message_id)) return;
channel.messages.fetch(packet.d.message_id).then(message => {
const emoji = packet.d.emoji.id ? `${packet.d.emoji.name}:${packet.d.emoji.id}` : packet.d.emoji.name;
const reaction = message.reactions.get(emoji);
if (reaction) reaction.users.set(packet.d.user_id, bot.users.get(packet.d.user_id));
if (packet.t === 'MESSAGE_REACTION_ADD') {
bot.emit('messageReactionAdd', reaction, bot.users.get(packet.d.user_id));
}
if (packet.t === 'MESSAGE_REACTION_REMOVE') {
bot.emit('messageReactionRemove', reaction, bot.users.get(packet.d.user_id));
}
});
}
+28 -6
View File
@@ -16,11 +16,29 @@ module.exports = async (bot) => {
}); });
console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`) console.log(`\u001b[32m`, `┏━━━┓╋╋╋╋╋╋╋╋╋╋╋╋╋┏┓┏━━┓╋╋╋┏┓`)
console.log(`\u001b[37m`, `${supportbot.Bot_Name} has successfully connected to discord`) console.log(`\u001b[32m`, `┃┏━┓┃╋╋╋╋╋╋╋╋╋╋╋╋┏┛┗┫┏┓┃╋╋┏┛┗┓`)
console.log(`\u001b[32m`, `―――――――――――――――――― SupportBot ――――――――――――――――――`) console.log(`\u001b[32m`, `┃┗━━┳┓┏┳━━┳━━┳━━┳┻┓┏┫┗┛┗┳━┻┓┏┛`)
console.log(`\u001b[32m`, `┗━━┓┃┃┃┃┏┓┃┏┓┃┏┓┃┏┫┃┃┏━┓┃┏┓┃┃`)
console.log(`\u001b[32m`, `┃┗━┛┃┗┛┃┗┛┃┗┛┃┗┛┃┃┃┗┫┗━┛┃┗┛┃┗┓`)
console.log(`\u001b[32m`, `┗━━━┻━━┫┏━┫┏━┻━━┻┛┗━┻━━━┻━━┻━┛`)
console.log(`\u001b[32m`, `┗╋╋╋╋╋╋╋┃┃╋┃┃`)
console.log(`\u001b[32m`, `╋╋╋╋╋╋╋┗┛╋┗┛`)
console.log(` `)
console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
console.log(` `)
console.log(`\u001b[33m`, `${supportbot.Bot_Name}`, `\u001b[36m`, `Connected to Discord`)
console.log(`\u001b[33m`, `Documentation:`, `\u001b[36m`, `https://docs.emeraldsrv.dev`)
console.log(`\u001b[33m`, `Discord:`, `\u001b[36m`, `https://emeraldsrv.dev/discord`)
console.log(`\u001b[33m`, `Hosting:`, `\u001b[36m`, `https://emeraldsrv.dev/hosting`)
console.log(` `)
console.log(`\u001b[37m`, `SupportBot proudly created by Emerald Services`)
console.log(` `)
console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
if (supportbot.ReactionTickets === "true") {
if (supportbot.ReactionTickets === true) {
let chan1 = bot.channels.cache.find(channel => channel.name === supportbot.ReactionChannel) let chan1 = bot.channels.cache.find(channel => channel.name === supportbot.ReactionChannel)
if (!chan1) { if (!chan1) {
@@ -34,13 +52,17 @@ module.exports = async (bot) => {
.setColor(supportbot.SuccessColour) .setColor(supportbot.SuccessColour)
.setFooter(supportbot.EmbedFooter); .setFooter(supportbot.EmbedFooter);
if (supportbot.ReactionPanel_Description = true) { if (supportbot.ReactionPanel_Description === true) {
embed.setDescription(supportbot.ReactionDescription) embed.setDescription(supportbot.ReactionDescription)
} }
if (supportbot.ReactionPanel_Thumbnail = true) { if (supportbot.ReactionPanel_Thumbnail === true) {
embed.setThumbnail(supportbot.ReactionThumbnail) embed.setThumbnail(supportbot.ReactionThumbnail)
} }
if (supportbot.ReactionPanel_Image === true) {
embed.setImage(supportbot.ReactionImage)
}
bot.channels.cache.find(channel => channel.name === supportbot.ReactionChannel).send({ bot.channels.cache.find(channel => channel.name === supportbot.ReactionChannel).send({
embed: embed embed: embed
+35 -22
View File
@@ -1,15 +1,13 @@
// _________ __ __________ __ // ___ _ ___ _
// / _____/__ ________ ______ ____________/ |\______ \ _____/ |_ // / __> _ _ ___ ___ ___ _ _ _| |_ | . > ___ _| |_
// \_____ \| | \____ \\____ \ / _ \_ __ \ __\ | _// _ \ __\ // \__ \| | || . \| . \/ . \| '_> | | | . \/ . \ | |
// / \ | / |_> > |_> > <_> ) | \/| | | | ( <_> ) | // <___/`___|| _/| _/\___/|_| |_| |___/\___/ |_|
// /_______ /____/| __/| __/ \____/|__| |__| |______ /\____/|__| // |_| |_|
// \/ |__| |__| \/
// //
// SupportBot version 6.1 // SupportBot created by Emerald Services
// Created by Emerald Services // Installed with MIT License
// Installed with MIT License
// //
// Support Server: discord.gg/jspKFcE // Discord Support: https://emeraldsrv.dev/discord
const Discord = require("discord.js"); const Discord = require("discord.js");
const fs = require("fs"); const fs = require("fs");
@@ -33,23 +31,30 @@ String.prototype.toProperCase = function () {
const init = async () => { const init = async () => {
const evtFiles = await readdir("./events/"); const evtFiles = await readdir("./events/");
console.info(`\u001b[36m`, `➢ SupportBot Events`);
console.info(` `);
evtFiles.forEach((file, i) => { evtFiles.forEach((file, i) => {
const eventName = file.split(".")[0]; const eventName = file.split(".")[0];
const event = require(`./events/${file}`); const event = require(`./events/${file}`);
console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `#${i + 1} Event Loaded: ${eventName.toProperCase()} `);
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[31m`, `#${i + 1} Event Loaded: ${eventName.toProperCase()} `);
bot.on(eventName, event.bind(null, bot)); bot.on(eventName, event.bind(null, bot));
delete require.cache[require.resolve(`./events/${file}`)]; delete require.cache[require.resolve(`./events/${file}`)];
}); });
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `Successfully loaded ${evtFiles.length} events.`); console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `Successfully loaded ${evtFiles.length} events.`);
console.info(`\u001b[37m`, "-----------------------------------------------------------------------------"); console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
console.log(` `)
}; };
init(); init();
fs.readdir("./commands/", (err, files) => { fs.readdir("./commands/", (err, files) => {
console.info(`\u001b[36m`, `➢ SupportBot Commands`);
console.info(` `);
if (err) console.info(err, "error"); if (err) console.info(err, "error");
let jsfiles = files.filter((f) => f.split(".").pop() === "js"); let jsfiles = files.filter((f) => f.split(".").pop() === "js");
@@ -61,32 +66,40 @@ fs.readdir("./commands/", (err, files) => {
jsfiles.forEach((f, i) => { jsfiles.forEach((f, i) => {
let props = require(`./commands/${f}`); let props = require(`./commands/${f}`);
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[31m`, `#${i + 1} Command Loaded: ${props.name.toProperCase()}`);
console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `#${i + 1} Command Loaded: ${props.name.toProperCase()}`);
bot.commands.set(props.name, props); bot.commands.set(props.name, props);
}); });
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `Loaded ${jsfiles.length} commands!`); console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `Loaded ${jsfiles.length} commands!`);
console.info(`\u001b[37m`, "-----------------------------------------------------------------------------"); console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
console.log(` `)
}); });
fs.readdir("./addons/", (err, files) => { fs.readdir("./addons/", (err, files) => {
console.info(`\u001b[36m`, `➢ SupportBot Addons`);
console.info(` `);
if (err) console.info(err, "error"); if (err) console.info(err, "error");
let jsfiles = files.filter((f) => f.split(".").pop() === "js"); let jsfiles = files.filter((f) => f.split(".").pop() === "js");
if (jsfiles.length <= 0) { if (jsfiles.length <= 0) {
console.log(`[${supportbot.Bot_Name}]: No addons found. You can download addons from https://emeraldservices.xyz`); console.log(`[${supportbot.Bot_Name}]: No addons found. You can download addons from https://emeraldsrv.dev`);
return; return;
} }
jsfiles.forEach((f, i) => { jsfiles.forEach((f, i) => {
let props = require(`./addons/${f}`); let props = require(`./addons/${f}`);
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[31m`, `#${i + 1} Command Loaded: ${props.name.toProperCase()}`);
console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `#${i + 1} Addon Loaded: ${props.name.toProperCase()}`);
bot.commands.set(props.name, props); bot.commands.set(props.name, props);
}); });
console.info(`\u001b[37m`, `[${supportbot.Bot_Name}]:`, `\u001b[32m`, `Loaded ${jsfiles.length} commands!`); console.info(`\u001b[32m`, `[${supportbot.Bot_Name}]:`, `\u001b[36m`, `Loaded ${jsfiles.length} addons!`);
console.info(`\u001b[37m`, "-----------------------------------------------------------------------------"); console.log(`\u001b[31m`, `――――――――――――――――――――――――――――――――――――――――――――`)
console.log(` `)
}); });
bot.login(supportbot.Token); bot.login(supportbot.Token);
+6 -1
View File
@@ -1,3 +1,8 @@
SupportBot Language Compatibility SupportBot Language Compatibility
In order to switch languages simple remove the current existig configuration file and replace it with one of the files here renamnig the file to "supportbot-config.yml" from (for example) "supportbot-config_es.yml" to home directory of SupportBot. In order to switch languages simple remove the current existig configuration file and replace it with one of the files here renamnig the file to "supportbot-config.yml" from (for example) "supportbot-config_es.yml" to home directory of SupportBot.
-> Delete the existing supportbot-config.yml file
-> Download the new file for whatever language
-> Upload the file to SupportBot and rename it to supportbot-config.yml
-> Job Done, restart the bot :wink:
+36 -2
View File
@@ -45,6 +45,12 @@ LockdownRole: "@everyone"
Staff: "Staff" Staff: "Staff"
Admin: "Admin" Admin: "Admin"
# Help Configuration
HelpMenu_withKey: "false"
# If set to true, emojis will be used as a key to define the access level of commands.
# Ticket Configuration # Ticket Configuration
TicketChannel: "ticket" TicketChannel: "ticket"
@@ -58,14 +64,19 @@ AllowTicketMentions: "true"
# Set to "true" to allow the ticket to mention the author and the support team. # Set to "true" to allow the ticket to mention the author and the support team.
# Set to "false" to dis-allow mentions within tickets. # Set to "false" to dis-allow mentions within tickets.
# Ticket Panel (Ticket Reaction Create) # Ticket Panel (Ticket Reaction Create)
ReactionTickets: "true" ReactionTickets: true
ReactionMessage: "React with %reaction_emoji% to create a Support Ticket!" ReactionMessage: "React with %reaction_emoji% to create a Support Ticket!"
ReactionPanel_Description: true
ReactionDescription: "Create a support ticket to contact a member of staff."
ReactionChannel: "create-ticket" ReactionChannel: "create-ticket"
ReactionEmoji: "📩" ReactionEmoji: "📩"
# Custom Emojis: <:test:EMOJI_ID> # Custom Emojis: <:test:EMOJI_ID>
ReactionPanel_Thumbnail: true
ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png"
ReactionPanel_Image: true
ReactionImage: "https://wallpapercave.com/wp/wp4462546.jpg"
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png"
Ticket_Title: "Server Support | %ticketusername%" Ticket_Title: "Server Support | %ticketusername%"
@@ -150,6 +161,23 @@ AnnouncementIcon: "https://i.imgur.com/HbkZyB7.png"
AnnouncementStarter: "What would you like to announce?" AnnouncementStarter: "What would you like to announce?"
# Moderation System Configuration
BanTitle: "User Banned!"
DaysBannedFor: 7
BanLogColour: "#D911B4"
KickTitle: "User Kicked!"
KickLogColour: "#D9B111"
ModThumbnail: "https://i.imgur.com/l6P3DF6.png"
ModLogChannel: "mod-logs"
PruneLogTitle: "Bulk Delete"
PruneThumbnail: "https://i.imgur.com/OAgW2vR.png"
PruneColour: "#1BA30C"
# General Command Configuration # General Command Configuration
HelpCommand: "help" HelpCommand: "help"
@@ -168,10 +196,13 @@ RenameTicket: "rename"
# Staff Command Configuration # Staff Command Configuration
BotSay: "say" BotSay: "say"
PurgeMessage: "purge"
# Admin Command Configuration # Admin Command Configuration
AnnounceCommand: "announce" AnnounceCommand: "announce"
BanUser: "ban"
KickUser: "kick"
# Commmand Descriptions # Commmand Descriptions
@@ -185,6 +216,9 @@ RemoveUserDesc: "Remove a user from a support ticket"
AddUserDesc: "Add a user to a support ticket" AddUserDesc: "Add a user to a support ticket"
SuggestionDesc: "Create a server suggestion" SuggestionDesc: "Create a server suggestion"
BotSayDesc: "Say something with the bot" BotSayDesc: "Say something with the bot"
BanDesc: "Ban a member from this server."
KickDesc: "Kick a member from this server."
PurgeDesc: "Purge messages from the chat."
# Error / Warining Messages # Error / Warining Messages
+30 -3
View File
@@ -58,14 +58,19 @@ AllowTicketMentions: "true"
# Establecer en "true" para permitir que el boleto mencione al autor y al equipo de apoyo. # Establecer en "true" para permitir que el boleto mencione al autor y al equipo de apoyo.
# Establecer en "false" para desautorizar las menciones dentro de los boletos. # Establecer en "false" para desautorizar las menciones dentro de los boletos.
# Ticket Panel (Ticket Reaction Create) # Ticket Panel (Ticket Reaction Create)
ReactionTickets: "true" ReactionTickets: "true"
ReactionMessage: "React with %reaction_emoji% to create a Support Ticket!" ReactionMessage: "React with %reaction_emoji% para crear un Ticket de Soporte!"
ReactionChannel: "create-ticket" ReactionChannel: "crear-ticket"
ReactionPanel_Description: "true"
ReactionDescription: "Cree un ticket de soporte para contactar a un miembro del personal."
ReactionEmoji: "📩" ReactionEmoji: "📩"
# Custom Emojis: <:test:EMOJI_ID> # Custom Emojis: <:test:EMOJI_ID>
ReactionPanel_Thumbnail: true
ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png"
ReactionPanel_Image: true
ReactionImage: "https://wallpapercave.com/wp/wp4462546.jpg"
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png"
Ticket_Title: "Server Support | %ticketusername%" Ticket_Title: "Server Support | %ticketusername%"
@@ -150,6 +155,22 @@ AnnouncementIcon: "https://i.imgur.com/HbkZyB7.png"
AnnouncementStarter: "¿Qué te gustaría anunciar?" AnnouncementStarter: "¿Qué te gustaría anunciar?"
# Moderation System Configuration
BanTitle: "User Banned!"
DaysBannedFor: 7
BanLogColour: "#D911B4"
KickTitle: "User Kicked!"
KickLogColour: "#D9B111"
ModThumbnail: "https://i.imgur.com/l6P3DF6.png"
ModLogChannel: "mod-logs"
PruneLogTitle: "Bulk Delete"
PruneThumbnail: "https://i.imgur.com/OAgW2vR.png"
PruneColour: "#1BA30C"
# General Command Configuration # General Command Configuration
HelpCommand: "ayuda" HelpCommand: "ayuda"
@@ -168,10 +189,13 @@ RenameTicket: "renombrar"
# Staff Command Configuration # Staff Command Configuration
BotSay: "decir" BotSay: "decir"
PurgeMessage: "purge"
# Admin Command Configuration # Admin Command Configuration
AnnounceCommand: "anunciar" AnnounceCommand: "anunciar"
BanUser: "ban"
KickUser: "kick"
# Commmand Descriptions # Commmand Descriptions
@@ -185,6 +209,9 @@ RemoveUserDesc: "Eliminar un usuario de un ticket de soporte"
AddUserDesc: "Add un usuario a un ticket de soporte" AddUserDesc: "Add un usuario a un ticket de soporte"
SuggestionDesc: "Crear una sugerencia de servidor" SuggestionDesc: "Crear una sugerencia de servidor"
BotSayDesc: "Di algo con el bot" BotSayDesc: "Di algo con el bot"
BanDesc: "Prohibir a un/una miembro de este servidor."
KickDesc: "Patea a un/una miembro de este servidor."
PurgeDesc: "Purga los mensajes del chat."
# Error / Warining Messages # Error / Warining Messages
+29
View File
@@ -64,8 +64,14 @@ AllowTicketMentions: "true"
ReactionTickets: "true" ReactionTickets: "true"
ReactionMessage: "Réagissez avec %reaction_emoji% pour créer un ticket de support !" ReactionMessage: "Réagissez avec %reaction_emoji% pour créer un ticket de support !"
ReactionChannel: "creer-billet" ReactionChannel: "creer-billet"
ReactionPanel_Description: "true"
ReactionDescription: "Créez un ticket de support pour contacter un membre du personnel."
ReactionEmoji: "📩" ReactionEmoji: "📩"
# Custom Emojis: <:test:EMOJI_ID> # Custom Emojis: <:test:EMOJI_ID>
ReactionPanel_Thumbnail: true
ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png"
ReactionPanel_Image: true
ReactionImage: "https://wallpapercave.com/wp/wp4462546.jpg"
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png"
Ticket_Title: "Prise en charge du serveur | %ticketusername%" Ticket_Title: "Prise en charge du serveur | %ticketusername%"
@@ -150,6 +156,23 @@ AnnouncementIcon: "https://i.imgur.com/HbkZyB7.png"
AnnouncementStarter: "Qu’aimeriez-vous annoncer?" AnnouncementStarter: "Qu’aimeriez-vous annoncer?"
# Moderation System Configuration
BanTitle: "User Banned!"
DaysBannedFor: 7
BanLogColour: "#D911B4"
KickTitle: "User Kicked!"
KickLogColour: "#D9B111"
ModThumbnail: "https://i.imgur.com/l6P3DF6.png"
ModLogChannel: "mod-logs"
PruneLogTitle: "Bulk Delete"
PruneThumbnail: "https://i.imgur.com/OAgW2vR.png"
PruneColour: "#1BA30C"
# General Command Configuration # General Command Configuration
HelpCommand: "aide" HelpCommand: "aide"
@@ -168,10 +191,13 @@ RenameTicket: "renommer"
# Staff Command Configuration # Staff Command Configuration
BotSay: "dire" BotSay: "dire"
PurgeMessage: "purge"
# Admin Command Configuration # Admin Command Configuration
AnnounceCommand: "annoncer" AnnounceCommand: "annoncer"
BanUser: "ban"
KickUser: "kick"
# Commmand Descriptions # Commmand Descriptions
@@ -185,6 +211,9 @@ RemoveUserDesc: "Supprimer un utilisateur d’un ticket de support"
AddUserDesc: "Ajouter un utilisateur à un ticket de support" AddUserDesc: "Ajouter un utilisateur à un ticket de support"
SuggestionDesc: "Créer une suggestion de serveur" SuggestionDesc: "Créer une suggestion de serveur"
BotSayDesc: "Dites quelque chose avec le bot" BotSayDesc: "Dites quelque chose avec le bot"
BanDesc: "Bannir un membre de ce serveur."
KickDesc: "Kick un membre de ce serveur."
PurgeDesc: "Purgez les messages du chat."
# Error / Warining Messages # Error / Warining Messages
+29
View File
@@ -62,9 +62,15 @@ AllowTicketMentions: "true"
ReactionTickets: "true" ReactionTickets: "true"
ReactionMessage: "Reagiere mit %reaction_emoji% um ein Ticket zu erstellen!" ReactionMessage: "Reagiere mit %reaction_emoji% um ein Ticket zu erstellen!"
ReactionPanel_Description: "true"
ReactionDescription: "Erstellen Sie ein Support-Ticket, um einen Mitarbeiter zu kontaktieren."
ReactionChannel: "create-ticket" ReactionChannel: "create-ticket"
ReactionEmoji: "📩" ReactionEmoji: "📩"
# Custom Emojis: <:test:EMOJI_ID> # Custom Emojis: <:test:EMOJI_ID>
ReactionPanel_Thumbnail: true
ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png"
ReactionPanel_Image: true
ReactionImage: "https://wallpapercave.com/wp/wp4462546.jpg"
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png"
Ticket_Title: "Server Support | %ticketusername%" Ticket_Title: "Server Support | %ticketusername%"
@@ -149,6 +155,22 @@ AnnouncementIcon: "https://i.imgur.com/HbkZyB7.png"
AnnouncementStarter: "Was möchtest du ankündigen?" AnnouncementStarter: "Was möchtest du ankündigen?"
# Moderation System Configuration
BanTitle: "User Banned!"
DaysBannedFor: 7
BanLogColour: "#D911B4"
KickTitle: "User Kicked!"
KickLogColour: "#D9B111"
ModThumbnail: "https://i.imgur.com/l6P3DF6.png"
ModLogChannel: "mod-logs"
PruneLogTitle: "Bulk Delete"
PruneThumbnail: "https://i.imgur.com/OAgW2vR.png"
PruneColour: "#1BA30C"
# General Command Konfiguration # General Command Konfiguration
HelpCommand: "help" HelpCommand: "help"
@@ -165,11 +187,15 @@ RemoveUser: "remove"
RenameTicket: "rename" RenameTicket: "rename"
# Staff Command Konfiguration # Staff Command Konfiguration
BotSay: "say" BotSay: "say"
PurgeMessage: "purge"
# Admin Command Konfiguration # Admin Command Konfiguration
AnnounceCommand: "announce" AnnounceCommand: "announce"
BanUser: "ban"
KickUser: "kick"
# Commmand Beschreibungen (help) # Commmand Beschreibungen (help)
@@ -183,6 +209,9 @@ RemoveUserDesc: "Entferne einen Nutzer aus einem Ticket"
AddUserDesc: "Füge einen Nutzer einem Ticket hinzu" AddUserDesc: "Füge einen Nutzer einem Ticket hinzu"
SuggestionDesc: "Erstelle einen Server Vorschlag" SuggestionDesc: "Erstelle einen Server Vorschlag"
BotSayDesc: "Sage etwas mit dem Bot" BotSayDesc: "Sage etwas mit dem Bot"
BanDesc: "Verbannen Sie ein Mitglied von diesem Server."
KickDesc: "Treten Sie ein Mitglied von diesem Server."
PurgeDesc: "Nachrichten aus dem Chat löschen."
# Error / Warning Nachrichten # Error / Warning Nachrichten
+120
View File
@@ -0,0 +1,120 @@
{
"name": "supportbot",
"version": "7.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@discordjs/collection": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz",
"integrity": "sha512-utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="
},
"@discordjs/form-data": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz",
"integrity": "sha512-ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg==",
"requires": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.8",
"mime-types": "^2.1.12"
}
},
"abort-controller": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz",
"integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==",
"requires": {
"event-target-shim": "^5.0.0"
}
},
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"requires": {
"delayed-stream": "~1.0.0"
}
},
"delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"discord.js": {
"version": "12.5.3",
"resolved": "https://registry.npmjs.org/discord.js/-/discord.js-12.5.3.tgz",
"integrity": "sha512-D3nkOa/pCkNyn6jLZnAiJApw2N9XrIsXUAdThf01i7yrEuqUmDGc7/CexVWwEcgbQR97XQ+mcnqJpmJ/92B4Aw==",
"requires": {
"@discordjs/collection": "^0.1.6",
"@discordjs/form-data": "^3.0.1",
"abort-controller": "^3.0.0",
"node-fetch": "^2.6.1",
"prism-media": "^1.2.9",
"setimmediate": "^1.0.5",
"tweetnacl": "^1.0.3",
"ws": "^7.4.4"
}
},
"event-target-shim": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz",
"integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="
},
"js-yaml": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
}
},
"mime-db": {
"version": "1.48.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz",
"integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ=="
},
"mime-types": {
"version": "2.1.31",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz",
"integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==",
"requires": {
"mime-db": "1.48.0"
}
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
"prism-media": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/prism-media/-/prism-media-1.3.1.tgz",
"integrity": "sha512-nyYAa3KB4qteJIqdguKmwxTJgy55xxUtkJ3uRnOvO5jO+frci+9zpRXw6QZVcfDeva3S654fU9+26P2OSTzjHw=="
},
"setimmediate": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
"tweetnacl": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
"integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="
},
"ws": {
"version": "7.5.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.1.tgz",
"integrity": "sha512-2c6faOUH/nhoQN6abwMloF7Iyl0ZS2E9HGtsiLrWn0zOOMWlhtDmdf/uihDt6jnuCxgtwGBNy6Onsoy2s2O2Ow=="
}
}
}
Executable → Regular
+10 -19
View File
@@ -1,27 +1,18 @@
{ {
"name": "supportbot", "name": "supportbot",
"version": "6.1", "version": "7.0.0",
"description": "SupportBot | #1 Self-Hosted Ticket Bot", "description": "SupportBot, a free open-source discord ticket application with ease of use.",
"main": "index.js", "main": "index.js",
"dependencies": {
"discord.js": "^12.5.1",
"javascript-obfuscator": "^2.9.4",
"js-yaml": "^3.14.0"
},
"devDependencies": {
"node-fetch": ">=2.6.1"
},
"scripts": { "scripts": {
"test": "help" "supportbot": "node index.js"
},
"repository": {
"type": "git",
"url": "git+https://github.com/1tzemerald/SupportBot.git"
}, },
"keywords": [
"supportbot"
],
"author": "Emerald Services", "author": "Emerald Services",
"license": "MIT", "license": "MIT",
"bugs": { "dependencies": {
"url": "https://github.com/1tzemerald/SupportBot/issues" "discord.js": "^12.5.3",
}, "js-yaml": "^4.1.0"
"homepage": "https://emeraldsrv.dev" }
} }
+1 -4
View File
@@ -1,4 +1 @@
{ {}
"ticket": "ticket-0012",
"id":419821884431925260
}
+1 -8
View File
@@ -1,8 +1 @@
{ {}
"716992597377286145": {
"id": 65
},
"805909541979029524": {
"id": 13
}
}
+162 -60
View File
@@ -1,98 +1,150 @@
# _________ __ __________ __ # ___ _ ___ _
# / _____/__ ________ ______ ____________/ |\______ \ _____/ |_ # / __> _ _ ___ ___ ___ _ _ _| |_ | . > ___ _| |_
# \_____ \| | \____ \\____ \ / _ \_ __ \ __\ | _// _ \ __\ # \__ \| | || . \| . \/ . \| '_> | | | . \/ . \ | |
# / \ | / |_> > |_> > <_> ) | \/| | | | ( <_> ) | # <___/`___|| _/| _/\___/|_| |_| |___/\___/ |_|
# /_______ /____/| __/| __/ \____/|__| |__| |______ /\____/|__| # |_| |_|
# \/ |__| |__| \/
# #
# SupportBot version 6.1 # SupportBot created by Emerald Services
# Created by Emerald Services # Installed with MIT License
# Installed with MIT License
# #
# Support Server: discord.gg/jspKFcE # Discord Support: https://emeraldsrv.dev/discord
# General Bot Configuration SupportBot Version: "7.0"
Token: "BOT_TOKEN_HERE" # -------------------------
Prefix: "-" # General Configuration
# -------------------------
Token: "TOKEN HERE"
Prefix: "!!"
Bot_Name: "SupportBot" Bot_Name: "SupportBot"
DeleteMessages: true
# Should the bot delete command messages after executed?
# -------------------------
# Activity Configuration
# -------------------------
BotActivity: "-help | SupportBot" BotActivity: "-help | SupportBot"
StreamingURL: "https://www.twitch.tv/YOUR_TWITCH_NAME" StreamingURL: "https://www.twitch.tv/YOUR_TWITCH_NAME"
# Must set ActivityType to STREAMING in order for Streaming URL to work in the bots status. # Set The ActivityType to "STREAMING" for a streaming status!
ActivityType: "PLAYING" ActivityType: "PLAYING"
# Activity status can either be PLAYING, WATCHING, LISTENING or STREAMING. # Activity status can either be PLAYING, WATCHING, LISTENING or STREAMING.
DeleteMessages: "true" # -------------------------
# Embed Configuration
# -------------------------
# Embed Configuration EmbedColour: "#f74343"
EmbedColour: "#04b545"
EmbedFooter: "SupportBot | The #1 Supportive Discord Bot" EmbedFooter: "SupportBot | The #1 Supportive Discord Bot"
ErrorColour: "#d12519" ErrorColour: "#d12519"
SuccessColour: "#04b545" SuccessColour: "#04b545"
WarningColour: "#fca117" WarningColour: "#fca117"
# Role Configuration # -------------------------
# Help Configuration
# -------------------------
AutoRole: "true" HelpMenu: true # Do not change!
# By setting "AutoRole to 'true' the bot will automatically apply the role below when members joins. Set to 'false' to disable this feature. SendHelpPage: "channel" # Set to channel or dm
# -------------------------
# Role Configuration
# -------------------------
AutoRole: true
AutoRole_Role: "Member" AutoRole_Role: "Member"
LockdownRole: "@everyone" LockdownRole: "@everyone"
Staff: "Staff" Staff: "Staff"
Admin: "Admin" Admin: "Admin"
TicketBlackListRole: "Blacklisted"
# Ticket Configuration # -------------------------
# Tickets Configuration
# -------------------------
# --- General Config ---
# --- Start ---
TicketCategory: "Support Tickets"
TicketChannel: "ticket" TicketChannel: "ticket"
TicketCategory: "Tickets"
TicketLog: "ticket-logs" TicketLog: "ticket-logs"
TranscriptLog: "transcripts" TranscriptLog: "transcripts"
TranscriptTitle: "Ticket Transcript"
TicketBlackListMessage: "You are not allowed to open a ticket"
TicketSubject: "description" TicketSubject: "description"
# TicketSubject: "description" means that the subject (reason) of the ticket will be displayed upon the channel description if set to "embed" it will be displayed within the embed. # "description" will displays the ticket reason within the channel description
# "embed" will displays the ticket reason within the ticket embed
AllowTicketMentions: "true" AllowTicketMentions: true
# Set to "true" to allow the ticket to mention the author and the support team. # Set to true to allow the ticket to mention the author and the support team.
# Set to "false" to dis-allow mentions within tickets. # Set to false to dis-allow mentions within tickets.
# --- Panel Config ---
# --- Start ---
# Ticket Panel (Ticket Reaction Create)
ReactionTickets: "true"
ReactionMessage: "React with %reaction_emoji% to create a Support Ticket!"
ReactionPanel_Description: "true"
ReactionDescription: "Create a support ticket to contact a member of staff."
ReactionChannel: "create-ticket" ReactionChannel: "create-ticket"
ReactionEmoji: "📩" ReactionEmoji: "📩"
# Custom Emojis: <:test:EMOJI_ID> # For cusomt emojis: <:emoji_name:EMOJI_ID>
ReactionPanel_Thumbnail: "true"
ReactionTickets: true
ReactionMessage: "React with %reaction_emoji% to create a Support Ticket!"
ReactionPanel_Description: true
ReactionDescription: "Create a support ticket to contact a member of staff."
ReactionPanel_Thumbnail: true
ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png" ReactionThumbnail: "https://hotemoji.com/images/dl/5/ticket-emoji-by-twitter.png"
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png" ReactionPanel_Image: true
ReactionImage: "https://wallpapercave.com/wp/wp4462546.jpg"
# --- Creation Config ---
# --- Start ---
# Available Placeholders:
# %ticketusername% - User who created the ticket.
# <@%ticketauthor%> - Tags the user who created the ticket.
# <#%ticketid%> - Mentions the ticket channel.
Ticket_Title: "Server Support | %ticketusername%" Ticket_Title: "Server Support | %ticketusername%"
TicketMessage: "Hello <@%ticketauthor%>, Thank you for creating a support ticket\nPlease wait patiently whilst a member of our team reaches out to you." TicketMessage: "Hello <@%ticketauthor%>, Thank you for creating a support ticket\nPlease wait patiently whilst a member of our team reaches out to you."
Ticket_Thumbnail: "https://images.emojiterra.com/google/android-pie/512px/1f39f.png"
NoTicketSubject: "No Reason Provided!" NoTicketSubject: "No Reason Provided!"
TicketCreatedAlert: ":ticket: Your support ticket has been created: <#%ticketid%>" TicketCreatedAlert: ":ticket: Your support ticket has been created: <#%ticketid%>"
TranscriptTitle: "Ticket Transcript"
AddedUser: "👍 <@%user%> has been added to this ticket" AddedUser: "👍 <@%user%> has been added to this ticket"
RemovedUser: "👍 <@%user%> has been removed from this ticket" RemovedUser: "👍 <@%user%> has been removed from this ticket"
# --- Closing Config ---
# --- Start ---
ClosingTicket: ":warning: You have requested to close your support ticket." ClosingTicket: ":warning: You have requested to close your support ticket."
ClosingConfirmation_Word: "confirm" ClosingConfirmation_Word: "confirm"
CloseConfirmation: "true" CloseConfirmation: true
# CloseConfirmation to true will make users confirm that they want to close a their ticket, settings to false will just close the ticket.
# Ticket Department Configuration # --- Departments Config ---
# --- Start ---
TicketDepartments: "true" TicketDepartments: true
# This option enable or disable the ticket departments. If set false Ticket Departments will not work
AllowStaff: "true" AllowStaff: true
# AllowStaff is an option to whether or not you want the users with the "Staff" role to be able to view inside tickets. If set false "Staff" will not view tickets. # If set to true users with the "Staff" role will not be able to view tickets
# without a valid department role set below.
# Set to false to allow "Staff" to see tickets whether its a department for them or not.
DepartmentEmoji_1: "🙋" DepartmentEmoji_1: "🙋"
DepartmentEmoji_2: "💸" DepartmentEmoji_2: "💸"
@@ -109,14 +161,23 @@ DepartmentRole_2: "Admin"
DepartmentRole_3: "Support" DepartmentRole_3: "Support"
# Ticket roles are the roles that will be able to gain access to tickets depending on what department has been choosen. # Ticket roles are the roles that will be able to gain access to tickets depending on what department has been choosen.
# System Message Configuration # --------------------------------
# System Messages Configuration
# --------------------------------
SystemMessages: "true" # Available Placeholders:
# %guildname% - This displays the name of the discord server.
SystemMessages: true
SystemMessage_EmbedFooter: false
SystemMessage_Channel: "system-messages" SystemMessage_Channel: "system-messages"
SystemMessage_Type: "embed" SystemMessage_Type: "embed"
# There are 2 types of how you can send system messages, 'normal' or 'embed' # There are 2 types of how you can send system messages, 'normal' or 'embed'
SystemMessage_Icon: "USER" SystemMessage_Icon: "USER"
# USER - This will display the user's icon of who joins.
# BOT - This will display the bot's icon when a someone joins.
Welcome_Title: "User Joined!" Welcome_Title: "User Joined!"
WelcomeMessage: "Hello %member%, Welcome to %guildname%!" WelcomeMessage: "Hello %member%, Welcome to %guildname%!"
@@ -126,27 +187,33 @@ Leave_Title: "User Left!"
LeaveMessage: "Goodbye %member%, Thank you for visting %guildname%!" LeaveMessage: "Goodbye %member%, Thank you for visting %guildname%!"
# %member% define the user who left and %guildnamne% defines the server name. # %member% define the user who left and %guildnamne% defines the server name.
SystemMessage_EmbedFooter: "false" # -------------------------
# Links Configuration
# -------------------------
# LINKS Configuration LinksTitle: "Server Links"
LinksTitle: "Quick Links"
LINKS: LINKS:
"Website": "https://www.example.com" "Website": "https://www.example.com"
"Store": "https://store.example.com" "Store": "https://store.example.com"
"Discord": "https://discord.gg/example" "Discord": "https://discord.gg/example"
# "Twitter": "https://twitter.com/example" # "Twitter": "https://twitter.com/example"
# "Add More": "Just follow this format!"
# Suggestions Configuration # --------------------------
# Suggestion Configuration
# --------------------------
SuggestionChannel: "suggestions" SuggestionChannel: "suggestions"
SuggestionTitle: "Suggestion" SuggestionTitle: "Suggestion"
SuggestionStarter: "What would you like to suggest?" SuggestionStarter: "What would you like to suggest?"
SuggestReact_1: 👍 SuggestReact_1: 👍
SuggestReact_2: 👎 SuggestReact_2: 👎
# Announcement Configuration # ----------------------------
# Announcement Configuration
# ----------------------------
AnnouncementChannel: "announcements" AnnouncementChannel: "announcements"
AnnouncementTitle: "Servername Announcement" AnnouncementTitle: "Servername Announcement"
@@ -154,14 +221,39 @@ AnnouncementIcon: "https://i.imgur.com/HbkZyB7.png"
AnnouncementStarter: "What would you like to announce?" AnnouncementStarter: "What would you like to announce?"
# General Command Configuration # --------------------------
# Moderation Configuration
# --------------------------
BanTitle: "User Banned!"
DaysBannedFor: 7
BanLogColour: "#D911B4"
KickTitle: "User Kicked!"
KickLogColour: "#D9B111"
ModThumbnail: "https://i.imgur.com/l6P3DF6.png"
ModLogChannel: "mod-logs"
PruneLogTitle: "Bulk Delete"
PruneThumbnail: "https://i.imgur.com/OAgW2vR.png"
PruneColour: "#1BA30C"
BlacklistTitle: "Blacklisted User"
BlacklistColour: "#000000"
# --------------------------
# Command Configuration
# --------------------------
# --- User Commands ---
HelpCommand: "help" HelpCommand: "help"
LinksCommand: "links" LinksCommand: "links"
PingCommand: "ping" PingCommand: "ping"
SuggestCommand: "suggest" SuggestCommand: "suggest"
# Support Command Configuration # --- Ticket Commands ---
NewTicket: "ticket" NewTicket: "ticket"
CloseTicket: "close" CloseTicket: "close"
@@ -169,15 +261,21 @@ AddUser: "add"
RemoveUser: "remove" RemoveUser: "remove"
RenameTicket: "rename" RenameTicket: "rename"
# Staff Command Configuration # --- Staff/Admin Commands ---
BotSay: "say" BotSay: "say"
PurgeMessage: "purge"
# Admin Command Configuration
AnnounceCommand: "announce" AnnounceCommand: "announce"
BanUser: "ban"
KickUser: "kick"
BlacklistUser: "blacklist"
# Commmand Descriptions # --------------------------
# Messages Configuration
# --------------------------
# --- Command Messages ---
NewTicketDesc: "Create a new support ticket" NewTicketDesc: "Create a new support ticket"
AnnounceDesc: "Create a server announcement" AnnounceDesc: "Create a server announcement"
@@ -189,8 +287,12 @@ RemoveUserDesc: "Remove a user from a support ticket"
AddUserDesc: "Add a user to a support ticket" AddUserDesc: "Add a user to a support ticket"
SuggestionDesc: "Create a server suggestion" SuggestionDesc: "Create a server suggestion"
BotSayDesc: "Say something with the bot" BotSayDesc: "Say something with the bot"
BanDesc: "Ban a member from this server."
KickDesc: "Kick a member from this server."
PurgeDesc: "Purge messages from the chat."
BlacklistDesc: "Decline a member to open a ticket"
# Error / Warining Messages # Error / Warning Messages
IncorrectPerms: ":x: **Err!** You do not have the correct permissions to use this command." IncorrectPerms: ":x: **Err!** You do not have the correct permissions to use this command."
InvalidChannel: ":x: **Err!** Channel not found. Please create it!" InvalidChannel: ":x: **Err!** Channel not found. Please create it!"