ValeTickets
PluginLicenseRef-WolfTailVale-Custom-License-v1.0

ValeTickets

ValeTickets intends to make it easy for players to ask for help and for staff to keep track of it. It’s a small plugin with in‑game commands and a tiny web page for staff. I run this in my spare time, so I try to keep it practical and safe.

40
Downloads
0
Followers
7 months ago
Updated
📦
4
Versions

📖About ValeTickets

ValeTickets - simple ticketing for your server

ValeTickets intends to make it easy for players to ask for help and for staff to keep track of it. It’s a small plugin with in‑game commands and a tiny web page for staff. I run this in my spare time, so I try to keep it practical and safe.

▶️ Quick start

  1. Drop the jar in plugins/ and start the server once.
  2. In‑game (as OP), run /ticketsetup to create the owner account.
  3. Visit http://<server-ip>:<configured-port>/admin and sign in.
  4. Add admins with /ticketadmin add <username>.
  5. Players use /ticket to file tickets and /ticket check to see updates.

If /admin returns 401, the owner account may not exist yet or the credentials are wrong.

📖 What it does

  • Players can open tickets in chat with a short guided flow.
  • Staff can view tickets on a small web dashboard.
  • Optional file uploads (screenshots/logs) with type/size limits.
  • Simple roles: OWNER (can manage accounts) and ADMIN.
  • Basic rate limiting on the public form to reduce spam.
  • In-game notifications when tickets are updated.
  • DiscordSRV integration support planned for future versions.

🎮 Commands

Players

  • /ticket - start a short guided flow to create a ticket
  • /ticket check - view your tickets and their status

Admins

  • /ticketadmin passwd - change your own password

Owner

  • /ticketsetup - create the first owner account (permission: valetickets.setup)
  • /ticketadmin add <username> - add an admin
  • /ticketadmin reset <username> - reset an admin’s password
  • /ticketadmin list - list accounts
  • /ticketreload - reload plugin config and restart the web server (permission: valetickets.reload)

Examples

  • /ticketadmin add alice
  • /ticketadmin reset bob

🌐 Web interface

  • Public form: http://<server-ip>:8765/
  • Admin dashboard: http://<server-ip>:8765/admin
  • Change password: http://<server-ip>:8765/change-password

🔒 Security

  • Passwords are hashed with Argon2id. No plaintext, ever.
  • The plugin ships as a single jar with needed libraries inside.

⚙️ Config

plugins/ValeTickets/config.yml

web:
  enabled: true
  bind: 0.0.0.0
  port: 8765
  # How to show ticket URLs to players
  urlDisplay:
    mode: "ip"                                # "ip", "domain", or "custom"
    domain: "your-server.com"                 # Used when mode is "domain"
    customMessage: "Check our website!"       # Used when mode is "custom"
  uploads:
    enabled: true
    dir: uploads
    maxBytesPerTicket: 104857600   # 100 MB total
    maxBytesPerFile:   10485760    # 10 MB per file
    allowedTypes: ["png", "jpg", "jpeg", "txt"]
  rateLimit:
    windowSeconds: 600
    maxTicketsPerWindow: 3

If anything’s unclear, feel free to open an issue. The plugin is intended to be simple to run on a normal Paper server.

This Plugin was built with the use of GPT-5, Gemini 2.5, and Claude Sonnet 4. As such, profiting off this plugin through redistribution or use in servers with P2W features is prohibited.
Please see license file for more information.