Skip to content

SkyBlock-Nerds/TicketBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ticket Bot

Discord ticket/support system for the SkyBlock Nerds server


Java 21 Docker MongoDB

Issues Pull Requests Last Commit Contributors

A standalone Discord bot for managing a support ticket system. Users create tickets via modal forms, and staff manage them through slash commands and button-based controls across configurable lifecycle statuses.

Features

Ticket Lifecycle

Tickets progress through configurable statuses (Open, In Progress, Awaiting Response, Closed) with button-based controls. Staff can claim, transfer, close, reopen, and change the status of tickets through an interactive control panel.

Categories & Templates

Multiple ticket categories (General, Bug Report, Appeal, etc.) with customizable modal form templates and fields per category.

Commands

Command Description
/ticket setup Post the ticket creation panel
/ticket close Close a ticket
/ticket reopen Reopen a closed ticket
/ticket claim Claim a ticket
/ticket transfer Transfer to another staff member
/ticket status Change ticket status
/ticket find Find tickets for a specific user
/ticket new Create a ticket on behalf of a user
/ticket info View ticket information
/ticket export Export tickets to CSV
/ticket search Search tickets with filters
/ticket stats View ticket statistics
/ticket blacklist-add/remove/list Manage user blacklist

Automation

  • Auto-close tickets after a configurable inactivity period
  • Automatic status transitions based on who replies (user reply -> Open, staff reply -> Awaiting Response)
  • Configurable reminders for inactive tickets
  • Automatic cleanup of old closed tickets

Transcripts

Message history is archived (up to 500 messages with overflow to MongoDB) and transcripts can be generated and uploaded when tickets are closed.

Metrics

Prometheus metrics on a configurable port (default 9191) including created/closed ticket counts, response times, resolution times, staff actions, and active ticket gauges.

Running

Prerequisites: Java 21+, MongoDB, a Discord bot token

mvn clean package
java -Dbot.token=YOUR_TOKEN \
     -Ddb.mongodb.uri=mongodb://localhost:27017/ \
     -Dbot.environment=DEVELOPMENT \
     -Dbot.config=config.json \
     -jar target/TicketBot.jar

Docker

docker build --build-arg BRANCH_NAME=main -t ticket-bot:latest .
docker run -d \
  -p 9191:9191 \
  -v /path/to/config.json:/app/config.json \
  -e "JAVA_OPTS=-Dbot.token=YOUR_TOKEN -Ddb.mongodb.uri=mongodb://mongo:27017/" \
  ticket-bot:latest

Configuration

Configured via a JSON file with ticket categories, status definitions and allowed transitions, reminder thresholds, and auto-close settings. See config.example.json for all available options.

Supporting the Project

Aerh's GitHub Sponsor Profile Aerh's Buy Me A Coffee Profile Aerh's Ko-Fi Profile

About

A ticket management bot for the SkyBlock Nerds Discord server

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors