🎫 Ticket systém

Ticket systém umožňuje hráčům vytvářet support tickety z Discordu nebo přímo ze hry. Každý ticket dostane soukromý Discord kanál s generováním přepisu při zavření.

Vyžaduje Discord modul. Zapněte tickety v tickets.json a nastavte ticket kategorii v Discordu.

Rychlá navigace

🤖 Discord flow

Vytvoření ticketu

Zavření ticketu

Rate limiting

Vytváření ticketů má 60sekundový globální cooldown pro prevenci rate limitingu Discord API (chyby 429).

Limity

maxTicketsPerUser kontroluje kolik otevřených ticketů může mít jeden uživatel najednou.

🎮 In-game flow

Vytvoření ticketu z Minecraftu

/ticket <důvod> <zpráva...>

Odpověď na ticket

/reply <zpráva...>

Zprávy se přeposílají z Minecraftu → Discord ticket kanál a naopak. Pokud má hráč Voidium klientský mod, ticket zprávy se zobrazují v dedikované záložce. Na vanilla klientech přijdou jako soukromé chat zprávy.

⚙️ Konfigurace

Soubor: config/voidium/tickets.json

Základní nastavení

Pole Typ Výchozí Popis
enableTickets boolean true Hlavní přepínač
ticketCategoryId string "" ID Discord kategorie pro ticket kanály
supportRoleId string "" ID role, která vidí/spravuje všechny tickety
enableAutoAssign boolean true Automaticky přiřadí nový ticket support členovi s nejméně aktivními tickety
maxTicketsPerUser int 3 Max otevřených ticketů na uživatele

Zprávy (Discord)

Pole Popis
ticketCreatedMessage Odpověď při vytvoření ticketu
ticketWelcomeMessage Uvítací text v ticket embedu
ticketCloseMessage Zpráva při zavření ticketu
noPermissionMessage Když uživatel nemá oprávnění
ticketLimitReachedMessage Když je dosažen max ticketů
ticketAlreadyClosedMessage Když se zavírá už zavřený ticket
ticketChannelTopic Topic kanálu. Placeholdery: %user%, %reason%
assignedMessage Zpráva při auto-přiřazení support člena. Placeholder: %assignee%

Zprávy (in-game)

Pole Popis
mcBotNotConnectedMessage Chyba když je bot offline
mcGuildNotFoundMessage Chyba když guild není nalezen
mcCategoryNotFoundMessage Chyba když kategorie nebyla nalezena
mcTicketCreatedMessage Zpráva o úspěchu v Minecraftu
mcDiscordNotFoundMessage Chyba když hráč není propojený

Přepisy

Pole Typ Výchozí Popis
enableTranscript boolean true Uloží konverzaci při zavření
transcriptFormat string "TXT" TXT nebo JSON
transcriptFilename string "transcript-%user%-%date%" Název souboru. Placeholdery: %user%, %date%, %reason%

📄 Přepisy

Když se ticket zavře se zapnutými přepisy:

  1. Voidium stáhne posledních ~100 zpráv z ticket kanálu
  2. Zformátuje je jako TXT (plaintext log) nebo JSON (strukturovaná data)
  3. Nahraje soubor přepisu do ticket kanálu
  4. Počká pár sekund, pak smaže kanál

Soubor přepisu zůstane přístupný v historii zpráv Discordu (nahraný před smazáním).

Další