diff --git a/.DS_Store b/.DS_Store index b89dce8..66b2768 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ccb2c80 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +package-lock.json \ No newline at end of file diff --git a/README.md b/README.md index 466a8de..9978bf0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # open-ticket -This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript. +This is an open-source discord ticket bot, you can configure it and it comes with cool features like transcripts & custom options! -(WARNING: the bot's language is Dutch, there will be an English version soon!) +Open Ticket logo ## features - discord interaction buttons @@ -9,6 +9,8 @@ This is an open-source discord ticket bot, you can configure it and it comes wit - add/remove users from ticket - custom colors & name - has tickets for questions, partners & job applications +- uses discord.js 13 +- configure your own ticket options ## installation You need `node.js 16` to run this project, if you don't want to install `node.js 16` then there is a npm package that can help you. @@ -43,17 +45,23 @@ if there are any errors, you can open an issue on github. - `botperms_role`=> the id from a role that can run admin commands with the bot. - `prefix`=> the bot's prefix. -- `ticket_system/ticket_channel` => the channel where you are gonna put the !ticket msg. -- `ticket_system/ticket_category` => the category for tickets. -- `ticket_system/member_role` => this role doesn't have access to tickets -(WARNING: @everyone does have access to tickets, so make sure all members have a member role!). -- `ticket_system/transcript_channel` => the channel for transcripts. -- `ticket_system/enable_transcripts` => enable transcripts. -- `ticket_system/enable_category` => enable tickets in category. - - `status/type` => PLAYING | STREAMING | LISTENING | WATCHING | CUSTOM | COMPETING - `status/text` => the status text +- `system/ticket_channel` => the channel where you are gonna put the !ticket msg. +- `system/ticket_category` => the category for tickets. +- `system/member_role` => this role doesn't have access to tickets +(WARNING: @everyone does have access to tickets, so make sure all members have a member role!). +- `system/transcript_channel` => the channel for transcripts. +- `system/enable_transcripts` => enable transcripts. +- `system/enable_category` => enable tickets in category. + +- `options/ticket.../enabled` => set this option ON or OFF. +- `options/ticket.../icon` => set an emoji for this ticket option. +- `options/ticket.../description` => set a description for this ticket option. +- `options/ticket.../name` => set a name for this ticket option. +- `options/ticket.../channel_prefix` => this will be the prefix for channel names (empty is disabled!) + ### intents & permissions In the discord developer portal in the "bot" panel you will find 3 switches under the title "Gateaway Intents". The following switches should always be turned on - `SERVER MEMBERS INTENT` @@ -62,8 +70,8 @@ In the discord developer portal in the "bot" panel you will find 3 switches unde The bot needs `ADMINISTRATOR` permissions to work the best. ## credits -the package contains a license, there are also credits in the bot. It is forbidden to extract these licenses and credits from it! +Please don't remove the credits from the bot 😊. -_v1.1.2_ +_v1.2.0_ -Š 2021 - DJdj Development | [website](https://www.dj-dj.be) | [discord](https://discord.com/invite/26vT9wt3n3) \ No newline at end of file +Š 2021 - DJdj Development | [website](https://www.dj-dj.be) \ No newline at end of file diff --git a/commands/database.js b/commands/database.js new file mode 100644 index 0000000..9226304 --- /dev/null +++ b/commands/database.js @@ -0,0 +1,22 @@ +const discord = require('discord.js') +const bot = require('../index') +const client = bot.client +const config = require("../config.json") + + +module.exports = () => { + client.on("message",(msg) => { + var args = msg.content.split(" ") + if (args[0] == config.prefix+"resetdatabase"){ + if (msg.author.id == client.application.owner.id){ + const databaseEmbed = new discord.MessageEmbed() + .setColor(config.main_color) + .setTitle("How to reset the database:") + .setDescription("1: Go to the folder `./storage` in your bot's directory.\n\n2: If posible remove the folders\n`./tickets`, `./transcripts` & `./userTickets`\nfrom the folder `./storage`\n\n3: Restart the bot") + .setFooter("if it doesn't work, create an issue on github or DM me on discord!") + + msg.channel.send({embeds:[databaseEmbed]}) + } + } + }) +} \ No newline at end of file diff --git a/commands/ticket.js b/commands/ticket.js index 875b171..ebf89da 100644 --- a/commands/ticket.js +++ b/commands/ticket.js @@ -3,44 +3,73 @@ const bot = require('../index') const client = bot.client const config = require("../config.json") -var name = require('./ticketExtra').name -var stringDecoder = require('./ticketSystem').stringDecoder - module.exports = () => { client.on("messageCreate", msg => { if (msg.content == config.prefix+"ticket msg"){ if (msg.member.roles.cache.has(config.botperms_role) == false && msg.author.id != "779742674932072469"){ - msg.channel.send({content:"Je hebt geen permissions voor deze command!"}) + msg.channel.send({content:"You don't have permissons for this command!"}) return } var ticketButton = new discord.MessageActionRow() - .addComponents( + + + if (config.options.ticket1.enabled){ + ticketButton.addComponents( new discord.MessageButton() - .setCustomId("newTicketVraag") + .setCustomId("newTicket1") .setDisabled(false) .setStyle("SECONDARY") - .setEmoji("❓") + .setEmoji(config.options.ticket1.icon) ) - .addComponents( + } + + if (config.options.ticket2.enabled){ + ticketButton.addComponents( new discord.MessageButton() - .setCustomId("newTicketSolli") + .setCustomId("newTicket2") .setDisabled(false) .setStyle("SECONDARY") - .setEmoji("📝") + .setEmoji(config.options.ticket2.icon) ) - .addComponents( + } + + if (config.options.ticket3.enabled){ + ticketButton.addComponents( new discord.MessageButton() - .setCustomId("newTicketPartner") + .setCustomId("newTicket3") .setDisabled(false) .setStyle("SECONDARY") - .setEmoji("đŸ’ŧ") + .setEmoji(config.options.ticket3.icon) ) + } + + if (config.options.ticket4.enabled){ + ticketButton.addComponents( + new discord.MessageButton() + .setCustomId("newTicket4") + .setDisabled(false) + .setStyle("SECONDARY") + .setEmoji(config.options.ticket4.icon) + ) + } + + var categorylist = "" + if (config.options.ticket1.enabled){categorylist = "\n\n"+categorylist+config.options.ticket1.icon+": **"+config.options.ticket1.name+"**\n"+config.options.ticket1.description} + + if (config.options.ticket2.enabled){categorylist = "\n\n"+categorylist+config.options.ticket2.icon+": **"+config.options.ticket2.name+"**\n"+config.options.ticket2.description} + + if (config.options.ticket3.enabled){categorylist = "\n\n"+categorylist+config.options.ticket3.icon+": **"+config.options.ticket3.name+"**\n"+config.options.ticket3.description} + + if (config.options.ticket4.enabled){categorylist = "\n\n"+categorylist+config.options.ticket4.icon+": **"+config.options.ticket4.name+"**\n"+config.options.ticket4.description} + + + var ticketEmbed = new discord.MessageEmbed() .setColor(config.main_color) - .setDescription("**Maak een ticket:**\nKlik op een van de onderstaande knoppen om een ticket aan te maken.\n\n__kies een categorie:__\n\n❓: **Vragen**\nOverige vragen.\n\n📝: **Sollicitatie**\nDoe een sollicitatie.\n\nđŸ’ŧ: **Partner**\nWord partner met ons.\n\n**opgepast: **_u kan maar ÊÊn ticket tegelijkertijd aanmaken!_") + .setDescription("**Create a ticket:**\nClick one of the buttons below to create a ticket.\n\n__choose a category:__"+categorylist+"\n\n**watch out:**_You can only create 1 ticket at a time!_") diff --git a/commands/ticketExtra.js b/commands/ticketExtra.js index 4f433b5..ad54721 100644 --- a/commands/ticketExtra.js +++ b/commands/ticketExtra.js @@ -2,50 +2,23 @@ const discord = require('discord.js') const bot = require('../index') const client = bot.client const config = require("../config.json") -var name = "DJdj Development" -exports.name = name -var stringDecoder = require('./ticketSystem').stringDecoder module.exports = () => { - client.on("messageCreate",msg => { - var args = msg.content.split(" ") - if (args[0] == config.prefix+"solli"){ - var SolliMsg = new discord.MessageEmbed() - .setColor(config.main_color) - .setDescription("**Hier is de informatie die wij nodig hebben voor een sollicitatie**\n\n**naam:** Je echte naam.\n**leeftijd:** Je leeftijd.\n**discord naam:** Je discord naam + tag (bv:Wumpus#0001).\n**minecraft naam:** Je minecraft naam.\n**waarom wil je staff worden:** De reden waarom je staff wilt worden.\n**+ punten:** Je plus punten.\n**- punten:** Je min punten.\n**Jou of iemand anders:** Waarom zouden we jou aan moeten nemen en niet een andere sollicitant?\n**ervaring:** Wat is je ervaring met MT servers?\n**andere server:** Ben je op dit moment staff op een andere server?\n**online:** Hoeveel uur per dag/week kan je online zijn?\n**functie:** Voor welke functie solliciteert u?") - .setTitle("Sollicitatie") - - msg.channel.send({embeds:[SolliMsg]}) - } - }) - client.on("messageCreate",msg => { var args = msg.content.split(" ") if (args[0] == config.prefix+"ticket" && (args[1] == undefined ||args[1] == "" ||args[1] == null)){ var TicketHelpMsg = new discord.MessageEmbed() .setColor(config.main_color) - .setDescription("**Ga naar <#"+config.ticket_system.ticket_channel+"> om een ticket te maken!**\n\n`!ticket msg` ➜ _Maak een ticket reageer bericht (staff only)._\n`!ticket rename` ➜ _Rename een ticket (geen spaties)._\n`!ticket close` ➜ _Close een ticket._\n`!ticket add ` ➜ _Voeg een speler toe aan het ticket._\n`!ticket remove ` ➜ _Verwijder een speler van het ticket._\n`!partner` ➜ _De informatie voor partners._\n`!solli` ➜ _De informatie voor solliciteren._") + .setDescription("**Go to <#"+config.system.ticket_channel+"> to create a ticket!**\n\n`!ticket msg` ➜ _Admin command._\n`!ticket rename` ➜ _Rename a ticket (no spaces)._\n`!ticket close` ➜ _Close a ticket._\n`!ticket add ` ➜ _Add a user to the ticket._\n`!ticket remove ` ➜ _Remove a user from the ticket._") .setTitle("Ticket commands") - .setFooter(stringDecoder+name) + .setFooter("OpenTicket by DJdj Development | view on github") msg.channel.send({embeds:[TicketHelpMsg]}) } }) - client.on("messageCreate",msg => { - var args = msg.content.split(" ") - if (args[0] == config.prefix+"partner"){ - var PartnerMsg = new discord.MessageEmbed() - .setColor(config.main_color) - .setDescription("**Hier zijn de doelen die je moet hebben voor een partnership**\n\n**server:** De naam van je server.\n**beschrijving:** Waar gaat je server over?\n**members:** Het aantal members in je server.\n**invite:** Een oneindige invite.\n\n_als wij dit goedkeuren, kan je je 'invite bericht' plaatsen._") - .setTitle("Partnership") - - msg.channel.send({embeds:[PartnerMsg]}) - } - }) - client.on("messageCreate",msg => { var args = msg.content.split(" ") if (args[0] == config.prefix+"ticket" && args[1] == "close"){ @@ -54,16 +27,16 @@ module.exports = () => { var firstmsg = msglist.last() if (firstmsg == undefined){ - msg.channel.send({content:"Ik heb de sluit knop niet gevonden!"}) + msg.channel.send({content:"I didn't find the close button!"}) } if (firstmsg.author.id != client.user.id){ - msg.channel.send({content:"Je bent niet in een ticket!"}) + msg.channel.send({content:"You aren't in a ticket!"}) return } var CloseMsg = new discord.MessageEmbed() .setColor(config.main_color) - .setDescription("klik [hier]("+firstmsg.url+") om het ticket te sluiten.") - .setTitle("Sluit dit ticket:") + .setDescription("Click [here]("+firstmsg.url+") to close this ticket.") + .setTitle("Close this ticket:") msg.channel.send({embeds:[CloseMsg]}) }) @@ -77,7 +50,12 @@ module.exports = () => { if (args[0] == config.prefix+"ticket" && args[1] == "rename"){ if (msg.member.roles.cache.has(config.botperms_role) == false && msg.author.id != "779742674932072469"){ - msg.channel.send({content:"Je hebt geen permissions voor deze command!"}) + msg.channel.send({content:"You don't have permissions for this command!"}) + return + } + + if (args[2] == null || args[2] == undefined || args[2] == "" || args[2] == false){ + msg.channel.send({content:"Not enough parameters!"}) return } @@ -88,7 +66,7 @@ module.exports = () => { rmsg.channel.setName(name) }) }else{ - msg.channel.send({content:"Je bent niet in een ticket!"}) + msg.channel.send({content:"You aren't in a ticket!"}) } }) } @@ -99,18 +77,18 @@ module.exports = () => { if (args[0] == config.prefix+"ticket" && args[1] == "add"){ if (msg.member.roles.cache.has(config.botperms_role) == false && msg.author.id != "779742674932072469"){ - msg.channel.send({content:"Je hebt geen permissions voor deze command!"}) + msg.channel.send({content:"You don't have permissions for this command!"}) return } msg.channel.messages.fetch().then(msglist => { if (msglist.last().author.id != client.user.id){ - msg.channel.send({content:"Je bent niet in een ticket!"}) + msg.channel.send({content:"You aren't in a ticket!"}) return } if (args[2] == null || args[2] == undefined || args[2] == "" || args[2] == false){ - msg.channel.send({content:"Niet genoeg parameters!"}) + msg.channel.send({content:"Not enough parameters!"}) return } var user = msg.mentions.users.first() @@ -129,18 +107,18 @@ module.exports = () => { if (args[0] == config.prefix+"ticket" && args[1] == "remove"){ if (msg.member.roles.cache.has(config.botperms_role) == false && msg.author.id != "779742674932072469"){ - msg.channel.send({content:"Je hebt geen permissions voor deze command!"}) + msg.channel.send({content:"You don't have permissions for this command!"}) return } msg.channel.messages.fetchPinned().then(msglist => { if (msglist.last().author.id != client.user.id){ - msg.channel.send({content:"Je bent niet in een ticket!"}) + msg.channel.send({content:"You aren't in a ticket!"}) return } if (args[2] == null || args[2] == undefined || args[2] == "" || args[2] == false){ - msg.channel.send({content:"Niet genoeg parameters!"}) + msg.channel.send({content:"Not enough parameters!"}) return } var user = msg.mentions.users.first() diff --git a/commands/ticketSystem.js b/commands/ticketSystem.js index 0dae90f..57dcc74 100644 --- a/commands/ticketSystem.js +++ b/commands/ticketSystem.js @@ -7,9 +7,6 @@ const ticketStorage = bot.TicketStorage const userTicketStorage = bot.userTicketStorage const transcriptStorage = bot.transcriptStorage -var stringDecoder = "Created By " -exports.stringDecoder = stringDecoder - module.exports = () => { var closeButton = new discord.MessageActionRow() @@ -18,7 +15,7 @@ module.exports = () => { .setCustomId("closeTicket") .setDisabled(false) .setStyle("SECONDARY") - .setLabel("Sluit Ticket") + .setLabel("Close Ticket") .setEmoji("❌") ) @@ -28,16 +25,16 @@ module.exports = () => { return } - if (interaction.customId == "newTicketVraag"||interaction.customId == "newTicketSolli"||interaction.customId == "newTicketPartner"){ + if (interaction.customId == "newTicket1"||interaction.customId == "newTicket2"||interaction.customId == "newTicket3"||interaction.customId == "newTicket4"){ interaction.deferUpdate() if (ticketStorage.getItem(interaction.member.id) == null ||ticketStorage.getItem(interaction.member.id) == "false"){ try{ - interaction.member.send("**Je ticket is aangemaakt!**") + interaction.member.send("**You created a ticket in our server!**") } - catch{console.log("cant send DM to member")} + catch{console.log("can't send DM to member || member doesn't allow dm's")} @@ -45,12 +42,14 @@ module.exports = () => { var ticketNumber = interaction.member.user.username - if (interaction.customId == "newTicketVraag"){ - var ticketName = "vraag-"+ticketNumber - }else if (interaction.customId == "newTicketSolli"){ - var ticketName = "solli-"+ticketNumber - }else if (interaction.customId == "newTicketPartner"){ - var ticketName = "partner-"+ticketNumber + if (interaction.customId == "newTicket1"){ + var ticketName = config.options.ticket1.channel_prefix+ticketNumber + }else if (interaction.customId == "newTicket2"){ + var ticketName = config.options.ticket2.channel_prefix+ticketNumber + }else if (interaction.customId == "newTicket3"){ + var ticketName = config.options.ticket3.channel_prefix+ticketNumber + }else if (interaction.customId == "newTicket4"){ + var ticketName = config.options.ticket4.channel_prefix+ticketNumber } if (config.ticket_system.enable_category){ @@ -72,7 +71,7 @@ module.exports = () => { allow:["ADD_REACTIONS","ATTACH_FILES","EMBED_LINKS","SEND_MESSAGES","VIEW_CHANNEL"] }, { - id:config.ticket_system.member_role, + id:config.system.member_role, type:"role", deny:["VIEW_CHANNEL"] } @@ -84,13 +83,7 @@ module.exports = () => { var ticketEmbed = new discord.MessageEmbed() .setColor(config.main_color) - if (interaction.customId == "newTicketVraag"){ - ticketEmbed.setDescription("**Ticket gemaakt:**\nJe hebt gekozen voor **overige vragen**, zeg alvast maar je vraag, onze staffleden komen u zo helpen.\n\n_Klik op knop hieronder om dit ticket te sluiten_") - }else if (interaction.customId == "newTicketSolli"){ - ticketEmbed.setDescription("**Ticket gemaakt:**\nJe hebt gekozen voor **sollicitatie**, neem maar tijd om u sollicitatie brief voor te bereiden. Met de `!solli` command kan je zien wat je allemaal moet zeggen.\n\n_Klik op knop hieronder om dit ticket te sluiten_") - }else if (interaction.customId == "newTicketPartner"){ - ticketEmbed.setDescription("**Ticket gemaakt:**\nJe hebt gekozen voor **partner**, neem maar tijd om u partner brief voor te bereiden. Met de `!partner` command kan je zien wat de vereisen zijn.\n\n_Klik op knop hieronder om dit ticket te sluiten_") - } + ticketEmbed.setDescription("You created a ticket!\n\n_Click on the close button below to close this ticket_") tChannel.send({content:"<@"+interaction.member.id+"> <@&"+config.botperms_role+">",embeds:[ticketEmbed],components:[closeButton]}).then(firstmsg => { firstmsg.pin() @@ -101,9 +94,9 @@ module.exports = () => { }else{ try { - interaction.member.send("**Je hebt al een ticket open!**") + interaction.member.send("**You have already created a ticket!**") } - catch{console.log("cant send DM to member")} + catch{console.log("can't send DM to member || member doesn't allow dm's")} } @@ -170,13 +163,13 @@ module.exports = () => { var getuserID = userTicketStorage.getItem(interaction.channel.id) var getusernameStep1 = client.users.cache.find(u => u.id === getuserID) if (getusernameStep1 == null || getusernameStep1 == undefined || getusernameStep1 == false || getusernameStep1 == ""){ - var getuserNAME = ":user niet in database:" + var getuserNAME = ":usernotfound:" }else { var getuserNAME = getusernameStep1.username } - if (config.ticket_system.enable_transcript){ + if (config.system.enable_transcript){ var transcript = transcriptArray.reverse().join("\n") transcriptStorage.setItem(interaction.channel.id,transcript) @@ -189,38 +182,38 @@ module.exports = () => { } var transcriptEmbed = new discord.MessageEmbed() .setColor(config.main_color) - .setAuthor(interaction.channel.name + " - ticket gemaakt door "+getuserNAME) - .setTitle("Er is een nieuw transcript!") + .setAuthor(interaction.channel.name + " - ticket created by "+getuserNAME) + .setTitle("There is a new transcript!") .setDescription(splittedTranscript[0]) - .setFooter("ticket gesloten door "+interaction.member.user.username) + .setFooter("ticket closed by "+interaction.member.user.username) if (transcript.length > 4000){ var transcriptEmbed2 = new discord.MessageEmbed() .setColor(config.main_color) - .setAuthor(interaction.channel.name + " - ticket gemaakt door "+getuserNAME) - .setTitle("Deel 2 van het transcript") + .setAuthor(interaction.channel.name + " - ticket created by "+getuserNAME) + .setTitle("transcript #2") .setDescription(splittedTranscript[1]) - .setFooter("ticket gesloten door "+interaction.member.user.username) + .setFooter("ticket closed by "+interaction.member.user.username) var transcriptEmbed3 = new discord.MessageEmbed() .setColor(config.main_color) - .setAuthor(interaction.channel.name + " - ticket gemaakt door "+getuserNAME) - .setTitle("Deel 3 van het transcript") + .setAuthor(interaction.channel.name + " - ticket created by "+getuserNAME) + .setTitle("transcript #3") .setDescription(splittedTranscript[1]) - .setFooter("ticket gesloten door "+interaction.member.user.username) + .setFooter("ticket closed by "+interaction.member.user.username) - client.channels.cache.find(ch => ch.id == config.ticket_system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2,transcriptEmbed3]}) + client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2,transcriptEmbed3]}) }else if (transcript.length > 2000){ var transcriptEmbed2 = new discord.MessageEmbed() .setColor(config.main_color) - .setAuthor(interaction.channel.name + " - ticket gemaakt door "+getuserNAME) - .setTitle("Deel 2 van het transcript") + .setAuthor(interaction.channel.name + " - ticket created by "+getuserNAME) + .setTitle("transcript #2") .setDescription(splittedTranscript[1]) - .setFooter("ticket gesloten door "+interaction.member.user.username) + .setFooter("ticket closed by "+interaction.member.user.username) - client.channels.cache.find(ch => ch.id == config.ticket_system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2]}) + client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed,transcriptEmbed2]}) }else{ - client.channels.cache.find(ch => ch.id == config.ticket_system.transcript_channel).send({embeds:[transcriptEmbed]}) + client.channels.cache.find(ch => ch.id == config.system.transcript_channel).send({embeds:[transcriptEmbed]}) } } @@ -232,9 +225,9 @@ module.exports = () => { ticketStorage.setItem(getuserID,"false") try { - interaction.member.send("**Je ticket is gesloten door "+interaction.member.user.username+"!**") + interaction.member.send("**your ticket is closed by "+interaction.member.user.username+"!**") } - catch{console.log("cant send DM to member")} + catch{console.log("can't send DM to member || member doesn't allow dm's")} }) diff --git a/config.json b/config.json index aeb1467..5cedc09 100644 --- a/config.json +++ b/config.json @@ -12,7 +12,7 @@ "text":"!ticket" }, - "ticket_system":{ + "system":{ "ticket_channel":"id of the channel with the !ticket msg", "enable_category":false, @@ -22,5 +22,36 @@ "enable_transcript":false, "transcript_channel":"the channel for transcripts" + }, + + "options":{ + "ticket1":{ + "enabled":true, + "icon":"đŸŽĢ", + "description":"Create a general ticket.", + "name":"Ticket", + "channel_prefix":"ticket-" + }, + "ticket2":{ + "enabled":false, + "icon":"đŸ’ŧ", + "description":"Do you want to apply? Then click here!", + "name":"Apply", + "channel_prefix":"apply-" + }, + "ticket3":{ + "enabled":false, + "icon":"❓", + "description":"Click here if you have a question about the server.", + "name":"Question", + "channel_prefix":"question-" + }, + "ticket4":{ + "enabled":false, + "icon":"🛒", + "description":"Buy something in our shop.", + "name":"Shop", + "channel_prefix":"shop-" + } } } \ No newline at end of file diff --git a/index.js b/index.js index b05d85c..b09ef1a 100644 --- a/index.js +++ b/index.js @@ -24,5 +24,8 @@ ticketSystem() var ticketExtra = require("./commands/ticketExtra") ticketExtra() +var database = require('./commands/database') +database() + client.login(config.auth_token) \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 0000000..e3c7fa6 Binary files /dev/null and b/logo.png differ diff --git a/package.json b/package.json index ba14441..336ec32 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "safemt-tickets", "version": "1.0.0", - "description": "", + "description": "This is an open-source discord ticket bot, you can configure it and it comes with cool features like a transcript.", "main": "index.js", "scripts": { "start": "node index.js", @@ -15,5 +15,13 @@ "express": "^4.17.1", "node": "^16.10.0", "node-localstorage": "^2.2.1" - } + }, + "repository": { + "type": "git", + "url": "git+https://github.com/DJj123dj/open-ticket.git" + }, + "bugs": { + "url": "https://github.com/DJj123dj/open-ticket/issues" + }, + "homepage": "https://github.com/DJj123dj/open-ticket#readme" }