Skip to content

Chat Categories

Chat Categories

Kategorie jsou záložky ve vstupním poli chatu. Každá z nich představuje samostatný kanál s vlastními barvami, štítky, oprávněními, pravidly doručování a identifikačními odznaky. Jsou definovány v shared/config/categories.lua jako config.chatCategories.

Vestavěná záložka Commands

Kategorie command je vždy automaticky vložena jako první záložka při spuštění (ze souboru shared/main.lua) — nemusíte ji definovat sami:

shared/main.lua
table.insert(config.chatCategories, 1, {
    label = "CATEGORY_COMMANDS_LABEL",
    type = "command",
    icon = "terminal",
    placeholder = "CATEGORY_COMMANDS_PLACEHOLDER",
})

Vše, co do této záložky napíšete, se provede jako příkaz. S nastavením config.allowNoSlashCommands = true funguje známý název příkazu s úlomkem i bez úlomku na začátku (napsání me hi spustí /me hi).

Co je zapnuto ve výchozím stavu

Hned po vybalení je v config.chatCategories aktivní pouze kategorie Admin. Připravené příklady pro OOC (Global), OOC (Local/closest), Police, EMS a Gang jsou obsaženy v souboru, ale jsou zakomentované — odkomentujte je a upravte podle potřeby.

Kategorie type Jak je omezen přístup
Commands command Vždy přítomno (automaticky vloženo)
Admin admin ACE oprávnění command / admin / adminchat
OOC (Global) ooc Otevřeno pro každého (příklad)
OOC (Local) oocclosest Proximita — distance v metrech (příklad)
Police pdchat jobs = { police = {...grades} } (příklad)
EMS emschat jobs = { ambulance = true } (příklad)
Gang gang gangs = { ... } (příklad)

Výchozí kategorie

config.defaultChatCategory určuje, která záložka bude aktivní po otevření chatu:

shared/config/general.lua
config.defaultChatCategory = "command"

Příkazy s lomítkem vs. bez lomítka

shared/config/general.lua
--- true  = příkazy fungují S úlomkem i BEZ ÚLOMKU na začátku ("me hi" spustí /me)
--- false = příkazy se spouštějí pouze s úlomkem na začátku ("/me hi")
config.allowNoSlashCommands = true

Parametry kategorií

Každá kategorie podporuje velké množství polí. Zde je zkrácený příklad:

shared/config/categories.lua
{
    label = "CATEGORY_ADMIN_LABEL",  -- překladový klíč pro název záložky
    type = "admin",                  -- unikátní ID pro tuto kategorii
    icon = "shield-alt",             -- FontAwesome ikona
    webhookKey = "chatMessage",      -- Discord log webhook (viz Discord Logging)
    placeholder = "CATEGORY_ADMIN_PLACEHOLDER",
    permissions = { "command", "admin", "adminchat" }, -- vyžadovaná ACE oprávnění
    maxLength = 500,                 -- maximální délka zprávy
    tags = {                         -- pevný/é štítek/štítky zobrazený/é před zprávou
        { tag = "Admin", textColor = { 51, 51, 51 }, bgColor = { 255, 105, 97 } },
    },
    color = { 255, 105, 97 },        -- výchozí barva textu zprávy
    showPlayerName = { active = true, censored = false, showWearingMask = true },
    showPlayerId   = { active = false, type = "serverId" },
    showPlayerJob  = { active = false, showLabel = true, showGrade = false },
    discordTag     = { active = false, maxShow = 1, roles = { ... } },
    showHour       = { active = true },
}

Kompletní přehled polí (všechna jsou nepovinná, pokud není uvedeno jinak):

Pole Typ Popis
label string Překladový klíč pro zobrazovaný název záložky
type string Povinné. Unikátní identifikátor kategorie
icon string Název FontAwesome ikony
webhookKey string Klíč Discord webhooku pro logování zpráv z této kategorie
command string / string[] Chatovací příkaz(y), které směrují do této kategorie
placeholder string Překladový klíč pro placeholder ve vstupním poli
distance number Maximální doručovací vzdálenost v metrech; pro globální vynechte
maxLength number Maximální délka zprávy v znacích
permissions string[] Vyžadovaná ACE oprávnění pro zobrazení/použití kategorie
jobs table Vyžadovaná povolání — true = všechny hodnosti, number[] = konkrétní hodnosti
gangs table Vyžadované gangy — stejná struktura jako jobs
tags table[] Pevné štítky zobrazené před zprávami (tag, textColor, bgColor)
color RGB Výchozí barva textu zprávy { r, g, b }
showPlayerName table active, censored, bgColor, textColor, showWearingMask
showPlayerId table active, type = "serverId", barvy
showPlayerJob table active, showLabel, showGrade, barvy, úpravy pro konkrétní povolání
discordTag table active, maxShow, roles[] (Discord role → štítek)
showHour table active, barvy — připojí čas odeslání zprávy

Cenzura jmen zobrazuje maskované jméno (např. J*** D**). Pokud má hráč na sobě masku, jeho jméno se skryje jako Unknown, pokud není nastaveno showWearingMask = true — kontrola masky se řídí pomocí config.noneMask v souboru general.lua.