🎫 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
- Použijte
/ticket create reason:<důvod> - Vytvoří se soukromý kanál pod nastavenou ticket kategorií
- Kanál vidí pouze tvůrce ticketu a support role
- Pokud je zapnuté auto-přiřazení, je automaticky přiřazen a zmíněn support člen s nejméně aktivními tickety
- Vloží se uvítací embed s tlačítkem Close
Zavření ticketu
- Klikněte na tlačítko Close v uvítacím embedu, nebo
- Použijte
/ticket closev ticket kanálu - Pokud jsou zapnuté přepisy, historie konverzace se uloží a nahraje před smazáním kanálu
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...>
- důvod je jedno slovo (bez mezer)
- zpráva může obsahovat mezery
- Vyžaduje propojený Discord účet (viz Propojení)
- Na Discordu se vytvoří ticket kanál a zpráva se odešle
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:
- Voidium stáhne posledních ~100 zpráv z ticket kanálu
- Zformátuje je jako TXT (plaintext log) nebo JSON (strukturovaná data)
- Nahraje soubor přepisu do ticket kanálu
- 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).