ticket-bot
ticket-bot copied to clipboard
discord.js v14 ticket bot w/mongoDB
Thanks to JetBrains for providing me free license for developing this project!
Features
- Multi guild!
- Open tickets by pressing a button
- Add and remove bot moderators
- Manage tickets by buttons or slash commands
- Manage ticket categories
- Send tickets history
- Log ticket actions
- Much more!
Contributing
- Want to contribute? Feel free to make any changes you want
- Fork or clone the repo
- Make any changes you want (You can also see
todofile) - Open a pull request explaining what changes you've made
- I (el bkr) will review it and accept it :D
Installation
Requirements
- Node v16 or higher
Getting the files
- GitHub CLI:
gh repo clone elbkr/ticket-bot - Download and extract the zip
- Open with GitHub Desktop
Creating the application
- Create an application in Discord Developer Portal
- Create a BOT and Copy the BOT token
- Enable all privileged gateway intents
- Go to OAuth2 and copy the client ID
- Paste the token at
TOKENline and the client ID atCLIENT_IDline in.envfile - Change
REPLACE_THISin the URL below with the client ID, and enter the link in your browser
https://discord.com/api/oauth2/authorize?client_id=REPLACE_THIS&permissions=8&scope=applications.commands%20bot
Connecting to mongo DB
- Login or register into Mongo DB
- Create a cluster and complete the configuration
- Get the connection url by pressing on
connect < connect your application - Replace the
passwordwith your database access password - Paste the URL into
.envfile atMONGOline
The URL looks like this: mongodb+srv://username:[email protected]/MyFirstDatabase?retryWrites=true&w=majority
Getting Pastebin API key
- Login or register into Pastebin
- Go to Pastebin API docs
- Slide down to Your Unique Developer API Key section
- Copy the key and paste it into
.envfile atPASTEBIN_API_KEYline
Changing ticket topics
- Go to
src/events/interactions/buttonPress.jsfile - Slide down to the line 127
- Change the objects (See the example below)
- Don't forget to also change the topics in
src/commands/tickets/open.jsfile
Object example:
{
label: "This will show in the dropdown menu",
value: "value",
emoji: "<:emoji:emoji_id>" // or a simple emoji 🔇
}
- For more info on how to get custom emojis ID, check this guide I found ;)
.ENV Output
After the configuration, the .env file should look like this:
TOKEN=SuPerReALToken.BelIeVe_Me_itS_ReaL
MONGO=mongodb+srv://username:[email protected]/MyFirstDatabase?retryWrites=true&w=majority
CLIENT_ID=521311050193436682
Running the BOT
- Open a terminal and run
npm installornpm i - Run
node .
Free hosting
- Local host
After the configuration, run
node .in the terminal (not recommended)- It turns off when you turn off the PC
- Heroku
- After the configuration, add the files to a GitHub repository
- Login or register in Heroku
- Create a new app
- In
deploysection, pressConnect to GitHub - After connecting, search for the repository and press
connect - Press Enable automatic deploys (optional)
- Click Deploy Branch
- Go to
Resourcessection - Disable the
webtype and enableworkertype